ARM: k2g: Add pinmux support for K2G ICE evm
authorCooper Jr., Franklin <fcooper@ti.com>
Fri, 16 Jun 2017 22:25:23 +0000 (17:25 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 10 Jul 2017 18:25:58 +0000 (14:25 -0400)
Add basic pinmux data for new K2G ICE evm. Also add pinmuxing for a
generic K2G evm which includes I2C 0 and 1 used for board detection
purposes.

Since multiple K2G boards are supported that means initially generic
pinmuxing should be used when board detection hasn't ran. Once board
detection runs the proper pinmuxing can be reran to match the board
being ran on.

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
board/ti/ks2_evm/board_k2g.c
board/ti/ks2_evm/mux-k2g.h

index b4765f7939f2c58078709caf72da2cba66942b1f..362231286bdfa24d756cf19f0349df32a9384577 100644 (file)
@@ -274,6 +274,8 @@ int embedded_dtb_select(void)
 
        fdtdec_setup();
 
+       k2g_mux_config();
+
        k2g_reset_mux_config();
 
        /* deassert FLASH_HOLD */
index 773f9b7f0cadc74e842b0c5c8df024490233db85..630103d0ff4fa8ff3c502147a1508e4832dc3c11 100644 (file)
 #include <asm/io.h>
 #include <asm/arch/mux-k2g.h>
 #include <asm/arch/hardware.h>
+#include "board.h"
+
+struct pin_cfg k2g_generic_pin_cfg[] = {
+       /* UART0 */
+       { 115,  MODE(0) },      /* SOC_UART0_RXD */
+       { 116,  MODE(0) },      /* SOC_UART0_TXD */
+
+       /* I2C 0 */
+       { 223,  MODE(0) },      /* SOC_I2C0_SCL */
+       { 224,  MODE(0) },      /* SOC_I2C0_SDA */
+
+       /* I2C 1 */
+       { 225,  MODE(0) },      /* SOC_I2C1_SCL */
+       { 226,  MODE(0) },      /* SOC_I2C1_SDA */
+       { MAX_PIN_N, }
+};
 
 struct pin_cfg k2g_evm_pin_cfg[] = {
        /* GPMC */
@@ -307,7 +323,34 @@ struct pin_cfg k2g_evm_pin_cfg[] = {
        { MAX_PIN_N, }
 };
 
+struct pin_cfg k2g_ice_evm_pin_cfg[] = {
+       /* MMC 1 */
+       { 63, MODE(0) | PIN_PTD },      /* MMC1_DAT3.MMC1_DAT3 */
+       { 64, MODE(0) | PIN_PTU },      /* MMC1_DAT2.MMC1_DAT2 */
+       { 65, MODE(0) | PIN_PTU },      /* MMC1_DAT1.MMC1_DAT1 */
+       { 66, MODE(0) | PIN_PTD },      /* MMC1_DAT0.MMC1_DAT0 */
+       { 67, MODE(0) | PIN_PTD },      /* MMC1_CLK.MMC1_CLK   */
+       { 68, MODE(0) | PIN_PTD },      /* MMC1_CMD.MMC1_CMD   */
+       { 69, MODE(3) | PIN_PTU },      /* MMC1_SDCD.GPIO0_69  */
+       { 70, MODE(0) | PIN_PTU },      /* MMC1_SDWP.MMC1_SDWP */
+       { 71, MODE(0) | PIN_PTD },      /* MMC1_POW.MMC1_POW   */
+
+       /* I2C 0 */
+       { 223,  MODE(0) },              /* SOC_I2C0_SCL */
+       { 224,  MODE(0) },              /* SOC_I2C0_SDA */
+       { MAX_PIN_N, }
+};
+
 void k2g_mux_config(void)
 {
-       configure_pin_mux(k2g_evm_pin_cfg);
+       if (!board_ti_was_eeprom_read()) {
+               configure_pin_mux(k2g_generic_pin_cfg);
+       } else if (board_is_k2g_gp()) {
+               configure_pin_mux(k2g_evm_pin_cfg);
+       } else if (board_is_k2g_ice()) {
+               configure_pin_mux(k2g_ice_evm_pin_cfg);
+       } else {
+               puts("Unknown board, cannot configure pinmux.");
+               hang();
+       }
 }