hw25: cleaned up board and mux
This commit is contained in:
parent
2bc5815cb6
commit
14cbc05115
|
|
@ -46,48 +46,62 @@ extern int console_init_f(void);
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CPU GPIOs
|
* CPU GPIOs
|
||||||
*
|
*
|
||||||
* (A17) GPIO0_2: RST_GNSS~
|
* (J18) GPIO0_16: RST_PHY~
|
||||||
* (A16) GPIO0_5: EXTINT_GNSS
|
* (U10) GPIO0_22: SEL_RS232/RS485~
|
||||||
* (C15) GPIO0_6: TIMEPULSE_GNSS
|
* (T10) GPIO0_23: EN_RS485_TERM~
|
||||||
*
|
* (T11) GPIO0_26: IO_OUT1
|
||||||
* (J18) GPIO0_16: RST_PHY~
|
* (U12) GPIO0_27: IO_OUT2
|
||||||
* (U12) GPIO0_27: RST_SHIELD~
|
*
|
||||||
*
|
* (T12) GPIO1_12: IO_IN0
|
||||||
* (R14) GPIO1_20: BT_EN
|
* (T13) GPIO1_13: IO_IN1
|
||||||
* (V15) GPIO1_21: GSM_PWR_EN
|
* (T14) GPIO1_14: IO_IN2
|
||||||
* (U16) GPIO1_25: RST_GSM
|
* (T15) GPIO1_15: IO_IN3
|
||||||
* (T16) GPIO1_26: WLAN_EN
|
*
|
||||||
* (V17) GPIO1_27: WLAN_IRQ
|
* (T13) GPIO2_0: RST_SDCARD~
|
||||||
*
|
* (L17) GPIO2_18: GSM_PWR_EN
|
||||||
* (C12) GPIO3_17: SIM_SEL
|
* (L16) GPIO2_19: RST_GSM
|
||||||
*/
|
*
|
||||||
|
* (K18) GPIO3_9: WLAN_IRQ
|
||||||
|
* (L18) GPIO3_10: WLAN_EN
|
||||||
|
* (C12) GPIO3_17: SIM_SEL
|
||||||
|
*/
|
||||||
|
|
||||||
#define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))
|
#define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))
|
||||||
|
|
||||||
#define GPIO_RST_GSM GPIO_TO_PIN(1, 25)
|
|
||||||
#define GPIO_PWR_GSM GPIO_TO_PIN(1, 21)
|
|
||||||
|
|
||||||
#define GPIO_WLAN_EN GPIO_TO_PIN(1, 26)
|
|
||||||
#define GPIO_BT_EN GPIO_TO_PIN(1, 20)
|
|
||||||
#define GPIO_RST_GNSS GPIO_TO_PIN(0, 2)
|
|
||||||
|
|
||||||
#define GPIO_RST_ETH_N GPIO_TO_PIN(0, 16)
|
#define GPIO_RST_ETH_N GPIO_TO_PIN(0, 16)
|
||||||
|
|
||||||
|
#define GPIO_RST_GSM GPIO_TO_PIN(2, 19)
|
||||||
|
#define GPIO_PWR_GSM GPIO_TO_PIN(2, 18)
|
||||||
|
|
||||||
|
#define GPIO_WLAN_EN GPIO_TO_PIN(3, 10)
|
||||||
|
|
||||||
#define GPIO_SIM_SEL GPIO_TO_PIN(3, 17)
|
#define GPIO_SIM_SEL GPIO_TO_PIN(3, 17)
|
||||||
|
|
||||||
|
#define GPIO_RST_SDCARD_N GPIO_TO_PIN(2, 0)
|
||||||
|
|
||||||
|
#define GPIO_SERIAL_SEL GPIO_TO_PIN(0, 22)
|
||||||
|
#define GPIO_RS485_TERM_EN GPIO_TO_PIN(0, 23)
|
||||||
|
|
||||||
|
#define GPIO_OUT1 GPIO_TO_PIN(0, 26)
|
||||||
|
#define GPIO_OUT2 GPIO_TO_PIN(0, 27)
|
||||||
|
|
||||||
|
#define GPIO_IN0 GPIO_TO_PIN(1, 12)
|
||||||
|
#define GPIO_IN1 GPIO_TO_PIN(1, 13)
|
||||||
|
#define GPIO_IN2 GPIO_TO_PIN(1, 14)
|
||||||
|
#define GPIO_IN3 GPIO_TO_PIN(1, 15)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PMIC GPIOs
|
* PMIC GPIOs
|
||||||
*
|
*
|
||||||
* GPIO_7: EN_SUPPLY_GSM
|
* GPIO_7: EN_SUPPLY_GSM
|
||||||
* GPIO_8: EN_SUPPLY_WIFI
|
|
||||||
* GPIO_10: LED.LWR
|
* GPIO_10: LED.LWR
|
||||||
* GPIO_11: LED.UPR
|
* GPIO_11: LED.UPR
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PMIC_GSM_SUPPLY_EN_IO 7
|
#define PMIC_GSM_SUPPLY_EN_IO 7
|
||||||
#define PMIC_WIFI_SUPPLY_EN_IO 8
|
|
||||||
#define PMIC_LED0 10 /* Lower */
|
#define PMIC_LED0 10 /* Lower */
|
||||||
#define PMIC_LED1 11 /* Upper */
|
#define PMIC_LED1 11 /* Upper */
|
||||||
|
|
||||||
|
|
@ -243,7 +257,7 @@ struct serial_device *default_serial_console(void)
|
||||||
* Mux pins for selected UART properly.
|
* Mux pins for selected UART properly.
|
||||||
* Note: UART indexes start at 0 while eserial indexes start at 1.
|
* Note: UART indexes start at 0 while eserial indexes start at 1.
|
||||||
*
|
*
|
||||||
* Provide console on internal UART1 regardless of boot mode.
|
* Provide console on internal UART0 regardless of boot mode.
|
||||||
* This only has a side effect when using X-Modem boot
|
* This only has a side effect when using X-Modem boot
|
||||||
*/
|
*/
|
||||||
if (spl_boot_device() == BOOT_DEVICE_UART) {
|
if (spl_boot_device() == BOOT_DEVICE_UART) {
|
||||||
|
|
@ -251,8 +265,8 @@ struct serial_device *default_serial_console(void)
|
||||||
enable_uart0_pin_mux();
|
enable_uart0_pin_mux();
|
||||||
return &eserial1_device;
|
return &eserial1_device;
|
||||||
} else {
|
} else {
|
||||||
/* Regular and JTAG boot use internal UART1 */
|
/* Regular and JTAG boot use internal UART0 */
|
||||||
enable_uart1_pin_mux();
|
enable_uart0_pin_mux();
|
||||||
return &eserial2_device;
|
return &eserial2_device;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -325,10 +339,6 @@ static void init_pmic_spl(void)
|
||||||
|
|
||||||
bus = da9063_claim_i2c_bus();
|
bus = da9063_claim_i2c_bus();
|
||||||
|
|
||||||
/* Enable +3V3_GNSS (LDO6) */
|
|
||||||
(void)da9063_set_reg(PMIC_REG_LDO6_CONT, PMIC_LDOx_EN_MASK);
|
|
||||||
mdelay(2);
|
|
||||||
|
|
||||||
pmic_ignition_gate_on();
|
pmic_ignition_gate_on();
|
||||||
|
|
||||||
/* Enable charging of RTC backup capacitor (1mA, 3.1V) */
|
/* Enable charging of RTC backup capacitor (1mA, 3.1V) */
|
||||||
|
|
@ -438,7 +448,6 @@ const struct dpll_params *get_dpll_ddr_params(void)
|
||||||
void set_uart_mux_conf(void)
|
void set_uart_mux_conf(void)
|
||||||
{
|
{
|
||||||
enable_uart0_pin_mux();
|
enable_uart0_pin_mux();
|
||||||
enable_uart1_pin_mux();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_mux_conf_regs(void)
|
void set_mux_conf_regs(void)
|
||||||
|
|
@ -592,24 +601,7 @@ static void init_gsm(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_gnss(void)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Release GNSS reset line, so that module starts up early
|
|
||||||
*/
|
|
||||||
REQUEST_AND_SET_GPIO(GPIO_RST_GNSS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO: Double Check - WiFi is enabled by sequencer already */
|
|
||||||
static void init_wifi(void)
|
|
||||||
{
|
|
||||||
int bus;
|
|
||||||
|
|
||||||
/* Enable WiFi power supply */
|
|
||||||
bus = da9063_claim_i2c_bus();
|
|
||||||
da9063_set_gpio(PMIC_WIFI_SUPPLY_EN_IO, 1);
|
|
||||||
da9063_release_i2c_bus(bus);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* !defined(CONFIG_SPL_BUILD) */
|
#endif /* !defined(CONFIG_SPL_BUILD) */
|
||||||
|
|
||||||
|
|
@ -899,13 +891,10 @@ int board_late_init(void)
|
||||||
|
|
||||||
/* Initialize pins */
|
/* Initialize pins */
|
||||||
REQUEST_AND_CLEAR_GPIO(GPIO_WLAN_EN);
|
REQUEST_AND_CLEAR_GPIO(GPIO_WLAN_EN);
|
||||||
REQUEST_AND_CLEAR_GPIO(GPIO_BT_EN);
|
|
||||||
|
|
||||||
init_ethernet();
|
init_ethernet();
|
||||||
init_sim_mux();
|
init_sim_mux();
|
||||||
init_gsm();
|
init_gsm();
|
||||||
init_gnss();
|
|
||||||
init_wifi();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if a user action is requested
|
* Check if a user action is requested
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ static struct module_pin_mux i2c2_pin_mux[] = {
|
||||||
static struct module_pin_mux rmii1_pin_mux[] = {
|
static struct module_pin_mux rmii1_pin_mux[] = {
|
||||||
/* RMII */
|
/* RMII */
|
||||||
{OFFSET(mii1_crs), MODE(1) | PULLUDDIS | RXACTIVE}, /* (H17) rmii1_crs */
|
{OFFSET(mii1_crs), MODE(1) | PULLUDDIS | RXACTIVE}, /* (H17) rmii1_crs */
|
||||||
{OFFSET(mii1_rxerr), MODE(7) | PULLUDEN | PULLDOWN_EN | RXACTIVE}, /* (J15) gpio */
|
{OFFSET(mii1_rxerr), MODE(7) | PULLUDEN | PULLDOWN_EN | RXACTIVE}, /* (J15) gpio (rxerr) */
|
||||||
{OFFSET(mii1_rxd0), MODE(1) | PULLUDDIS | RXACTIVE}, /* (M16) rmii1_rxd0 */
|
{OFFSET(mii1_rxd0), MODE(1) | PULLUDDIS | RXACTIVE}, /* (M16) rmii1_rxd0 */
|
||||||
{OFFSET(mii1_rxd1), MODE(1) | PULLUDDIS | RXACTIVE}, /* (L15) rmii1_rxd1 */
|
{OFFSET(mii1_rxd1), MODE(1) | PULLUDDIS | RXACTIVE}, /* (L15) rmii1_rxd1 */
|
||||||
{OFFSET(mii1_txen), MODE(1) | PULLUDDIS}, /* (J16) rmii1_txen */
|
{OFFSET(mii1_txen), MODE(1) | PULLUDDIS}, /* (J16) rmii1_txen */
|
||||||
|
|
@ -122,6 +122,20 @@ static struct module_pin_mux rmii1_pin_mux[] = {
|
||||||
{-1}
|
{-1}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* RMII2: Ethernet */
|
||||||
|
static struct module_pin_mux rmii2_pin_mux[] = {
|
||||||
|
/* RMII */
|
||||||
|
{OFFSET(gpmc_a9), MODE(3) | PULLUDDIS | RXACTIVE}, /* (U16) rmii2_crs */
|
||||||
|
{OFFSET(gpmc_wpn), MODE(7) | PULLUDEN | PULLDOWN_EN | RXACTIVE}, /* (U17) gpio (rxerr) */
|
||||||
|
{OFFSET(gpmc_a11), MODE(3) | PULLUDDIS | RXACTIVE}, /* (V17) rmii2_rxd0 */
|
||||||
|
{OFFSET(gpmc_a10), MODE(3) | PULLUDDIS | RXACTIVE}, /* (T16) rmii2_rxd1 */
|
||||||
|
{OFFSET(gpmc_a0), MODE(3) | PULLUDDIS}, /* (R13) rmii2_txen */
|
||||||
|
{OFFSET(gpmc_a5), MODE(3) | PULLUDDIS}, /* (V15) rmii2_txd0 */
|
||||||
|
{OFFSET(gpmc_a4), MODE(3) | PULLUDDIS}, /* (R14) rmii2_txd1 */
|
||||||
|
{OFFSET(mii1_col), MODE(1) | PULLUDDIS | RXACTIVE}, /* (H16) rmii2_refclk */
|
||||||
|
{-1},
|
||||||
|
};
|
||||||
|
|
||||||
/* MMC0: WiFi */
|
/* MMC0: WiFi */
|
||||||
static struct module_pin_mux mmc0_sdio_pin_mux[] = {
|
static struct module_pin_mux mmc0_sdio_pin_mux[] = {
|
||||||
{OFFSET(mmc0_clk), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (G17) MMC0_CLK */
|
{OFFSET(mmc0_clk), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (G17) MMC0_CLK */
|
||||||
|
|
@ -162,29 +176,12 @@ static struct module_pin_mux uart0_pin_mux[] = {
|
||||||
{-1},
|
{-1},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* UART0: RS232/RS485 shield mode */
|
|
||||||
static struct module_pin_mux uart0_pin_mux[] = {
|
|
||||||
{OFFSET(uart0_rxd), (MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (E15) UART0_RXD */
|
|
||||||
{OFFSET(uart0_txd), (MODE(0) | PULLUDEN | PULLUP_EN | SLEWCTRL)}, /* (E16) UART0_TXD */
|
|
||||||
{-1},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* UART5: RS232/RS485 */
|
|
||||||
/* Leave UART5 unconfigured because we want to configure it as needed by Linux (serial) */
|
|
||||||
/* Mode 7 = GPIO */
|
|
||||||
static struct module_pin_mux uart0_disabled_pin_mux[] = {
|
|
||||||
{OFFSET(lcd_data9), (MODE(7) | PULLUDDIS | RXACTIVE)}, /* (E15) GPIO1_10 */
|
|
||||||
{OFFSET(lcd_data8), (MODE(7) | PULLUDDIS | RXACTIVE)}, /* (E16) GPIO1_11 */
|
|
||||||
{OFFSET(lcd_data14), (MODE(7) | PULLUDDIS | RXACTIVE)}, /* (E18) GPIO1_8 */
|
|
||||||
{OFFSET(lcd_data15), (MODE(7) | PULLUDEN | PULLUP_EN)}, /* (E17) GPIO1_9 */
|
|
||||||
{-1},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* UART5: RS232/RS485 */
|
/* UART5: RS232/RS485 */
|
||||||
|
/* CTS is unused - set to GPIO mode */
|
||||||
static struct module_pin_mux uart5_pin_mux[] = {
|
static struct module_pin_mux uart5_pin_mux[] = {
|
||||||
{OFFSET(lcd_data9), (MODE(4) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (U2) UART5_RXD */
|
{OFFSET(lcd_data9), (MODE(4) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (U2) UART5_RXD */
|
||||||
{OFFSET(lcd_data8), (MODE(4) | PULLUDEN | PULLUP_EN)}, /* (U1) UART5_TXD */
|
{OFFSET(lcd_data8), (MODE(4) | PULLUDEN | PULLUP_EN)}, /* (U1) UART5_TXD */
|
||||||
{OFFSET(lcd_data14), (MODE(6) | PULLUDEN | PULLUP_EN | RXACTIVE)}, /* (V4) uart5_ctsn */
|
{OFFSET(lcd_data14), (MODE(7) | PULLUDEN | PULLDOWN_EN)}, /* (V4) uart5_ctsn */
|
||||||
{OFFSET(lcd_data15), (MODE(6) | PULLUDEN | PULLUP_EN)}, /* (T5) uart5_rtsn */
|
{OFFSET(lcd_data15), (MODE(6) | PULLUDEN | PULLUP_EN)}, /* (T5) uart5_rtsn */
|
||||||
{-1}
|
{-1}
|
||||||
};
|
};
|
||||||
|
|
@ -207,7 +204,7 @@ void enable_board_pin_mux(void)
|
||||||
configure_module_pin_mux(gpio_pin_mux);
|
configure_module_pin_mux(gpio_pin_mux);
|
||||||
|
|
||||||
configure_module_pin_mux(rmii1_pin_mux);
|
configure_module_pin_mux(rmii1_pin_mux);
|
||||||
//configure_module_pin_mux(rmii1_pin_mux);
|
configure_module_pin_mux(rmii2_pin_mux);
|
||||||
configure_module_pin_mux(mmc0_sdio_pin_mux);
|
configure_module_pin_mux(mmc0_sdio_pin_mux);
|
||||||
configure_module_pin_mux(mmc1_emmc_pin_mux);
|
configure_module_pin_mux(mmc1_emmc_pin_mux);
|
||||||
configure_module_pin_mux(usb_pin_mux);
|
configure_module_pin_mux(usb_pin_mux);
|
||||||
|
|
@ -215,7 +212,6 @@ void enable_board_pin_mux(void)
|
||||||
configure_module_pin_mux(i2c0_pin_mux);
|
configure_module_pin_mux(i2c0_pin_mux);
|
||||||
configure_module_pin_mux(i2c2_pin_mux);
|
configure_module_pin_mux(i2c2_pin_mux);
|
||||||
|
|
||||||
//configure_module_pin_mux(uart3_pin_mux);
|
|
||||||
configure_module_pin_mux(uart5_pin_mux);
|
configure_module_pin_mux(uart5_pin_mux);
|
||||||
|
|
||||||
configure_module_pin_mux(unused_pin_mux);
|
configure_module_pin_mux(unused_pin_mux);
|
||||||
|
|
@ -226,8 +222,3 @@ void enable_uart0_pin_mux(void)
|
||||||
configure_module_pin_mux(uart0_pin_mux);
|
configure_module_pin_mux(uart0_pin_mux);
|
||||||
}
|
}
|
||||||
|
|
||||||
void disable_uart0_pin_mux(void)
|
|
||||||
{
|
|
||||||
configure_module_pin_mux(uart0_disabled_pin_mux);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue