Commit 1459f696 authored by Yuri Tikhonov's avatar Yuri Tikhonov
Browse files

RT72064. stm32f2 gpio: use enums for PORTs and PINs


Signed-off-by: default avatarYuri Tikhonov <yur@emcraft.com>
parent 1c8f0669
......@@ -53,19 +53,59 @@ DECLARE_GLOBAL_DATA_PTR;
* D0..D15, A0..A23, NE2/1, NOE, NWE, NBL1/0, CLK, NL, NWAIT
*/
static struct stm32f2_gpio_dsc fsmc_gpio[] = {
/* Port B: */
{1, 7},
/* Port D: */
{3, 0}, {3, 1}, {3, 3}, {3, 4}, {3, 5}, {3, 6}, {3, 7}, {3, 8},
{3, 9}, {3, 10}, {3, 11}, {3, 12}, {3, 13}, {3, 14}, {3, 15},
/* Port E: */
{4, 0}, {4, 1}, {4, 2}, {4, 3}, {4, 4}, {4, 5}, {4, 6}, {4, 7},
{4, 8}, {4, 9}, {4, 10}, {4, 11}, {4, 12}, {4, 13}, {4, 14}, {4, 15},
/* Port F: */
{5, 0}, {5, 1}, {5, 2}, {5, 3}, {5, 4}, {5, 5}, {5, 12}, {5, 13},
{5, 14}, {5, 15},
/* Port G: */
{6, 0}, {6, 1}, {6, 2}, {6, 3}, {6, 4}, {6, 5}, {6, 9}
{STM32F2_GPIO_PORT_B, STM32F2_GPIO_PIN_7},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_0},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_1},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_3},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_4},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_5},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_6},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_7},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_8},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_9},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_10},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_11},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_12},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_13},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_14},
{STM32F2_GPIO_PORT_D, STM32F2_GPIO_PIN_15},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_0},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_1},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_2},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_3},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_4},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_5},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_6},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_7},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_8},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_9},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_10},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_11},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_12},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_13},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_14},
{STM32F2_GPIO_PORT_E, STM32F2_GPIO_PIN_15},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_0},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_1},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_2},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_3},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_4},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_5},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_12},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_13},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_14},
{STM32F2_GPIO_PORT_F, STM32F2_GPIO_PIN_15},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_0},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_1},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_2},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_3},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_4},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_5},
{STM32F2_GPIO_PORT_G, STM32F2_GPIO_PIN_9}
};
#endif
......@@ -146,7 +186,8 @@ int dram_init(void)
int rv = 0;
#if (CONFIG_NR_DRAM_BANKS > 0)
static struct stm32f2_gpio_dsc ctrl_gpio = {8, 8};
static struct stm32f2_gpio_dsc ctrl_gpio = {STM32F2_GPIO_PORT_I,
STM32F2_GPIO_PIN_8};
int i;
/*
......
......@@ -336,12 +336,29 @@ struct stm_mac_gpio {
* ETH_MII_RX_ER --------------------> PI10
*/
static struct stm32f2_gpio_dsc mac_gpio[] = {
{0, 1}, {0, 2}, {0, 7},
{1, 5}, {1, 8},
{2, 1}, {2, 2}, {2, 3}, {2, 4}, {2, 5},
{6, 11}, {6, 13}, {6, 14},
{7, 2}, {7, 3}, {7, 6}, {7, 7},
{8, 10}
{STM32F2_GPIO_PORT_A, 1},
{STM32F2_GPIO_PORT_A, 2},
{STM32F2_GPIO_PORT_A, 7},
{STM32F2_GPIO_PORT_B, 5},
{STM32F2_GPIO_PORT_B, 8},
{STM32F2_GPIO_PORT_C, 1},
{STM32F2_GPIO_PORT_C, 2},
{STM32F2_GPIO_PORT_C, 3},
{STM32F2_GPIO_PORT_C, 4},
{STM32F2_GPIO_PORT_C, 5},
{STM32F2_GPIO_PORT_G, 11},
{STM32F2_GPIO_PORT_G, 13},
{STM32F2_GPIO_PORT_G, 14},
{STM32F2_GPIO_PORT_H, 2},
{STM32F2_GPIO_PORT_H, 3},
{STM32F2_GPIO_PORT_H, 6},
{STM32F2_GPIO_PORT_H, 7},
{STM32F2_GPIO_PORT_I, 10}
};
/*
......
......@@ -22,11 +22,48 @@
#ifndef _STM32F2_GPIO_H_
#define _STM32F2_GPIO_H_
/*
* GPIO ports
*/
enum stm32f2_gpio_port {
STM32F2_GPIO_PORT_A = 0,
STM32F2_GPIO_PORT_B,
STM32F2_GPIO_PORT_C,
STM32F2_GPIO_PORT_D,
STM32F2_GPIO_PORT_E,
STM32F2_GPIO_PORT_F,
STM32F2_GPIO_PORT_G,
STM32F2_GPIO_PORT_H,
STM32F2_GPIO_PORT_I
};
/*
* GPIO port pins
*/
enum stm32f2_gpio_pin {
STM32F2_GPIO_PIN_0 = 0,
STM32F2_GPIO_PIN_1,
STM32F2_GPIO_PIN_2,
STM32F2_GPIO_PIN_3,
STM32F2_GPIO_PIN_4,
STM32F2_GPIO_PIN_5,
STM32F2_GPIO_PIN_6,
STM32F2_GPIO_PIN_7,
STM32F2_GPIO_PIN_8,
STM32F2_GPIO_PIN_9,
STM32F2_GPIO_PIN_10,
STM32F2_GPIO_PIN_11,
STM32F2_GPIO_PIN_12,
STM32F2_GPIO_PIN_13,
STM32F2_GPIO_PIN_14,
STM32F2_GPIO_PIN_15
};
/*
* GPIO roles (alternative functions); role determines by whom GPIO is used
*/
enum stm32f2_gpio_role {
STM32F2_GPIO_ROLE_USART1, /* USART1 */
STM32F2_GPIO_ROLE_USART1 = 0, /* USART1 */
STM32F2_GPIO_ROLE_USART2, /* USART2 */
STM32F2_GPIO_ROLE_USART3, /* USART3 */
STM32F2_GPIO_ROLE_USART4, /* USART4 */
......@@ -44,8 +81,8 @@ enum stm32f2_gpio_role {
* GPIO descriptor
*/
struct stm32f2_gpio_dsc {
u32 port; /* GPIO port */
u32 pin; /* GPIO pin */
enum stm32f2_gpio_port port; /* GPIO port */
enum stm32f2_gpio_pin pin; /* GPIO pin */
};
/*
......@@ -57,6 +94,6 @@ int stm32f2_gpio_config(struct stm32f2_gpio_dsc *gpio_dsc,
/*
* Set GPOUT to the state specified (1, 0)
*/
int stm32f2_gpout_set(struct stm32f2_gpio_dsc *dsc, int state);
int stm32f2_gpout_set(struct stm32f2_gpio_dsc *gpio_dsc, int state);
#endif /* _STM32F2_GPIO_H_ */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment