Merge branch 'master' of git://git.denx.de/u-boot-i2c
[oweals/u-boot.git] / board / ti / am335x / mux.c
index 8afa5f9b4052b1a374ff1873fe222fc6ce1bed54..04f4b8e69347d49e7fde115f9339b4cb35835a49 100644 (file)
@@ -329,12 +329,23 @@ static unsigned short detect_daughter_board_profile(void)
 {
        unsigned short val;
 
+#ifndef CONFIG_DM_I2C
        if (i2c_probe(I2C_CPLD_ADDR))
                return PROFILE_NONE;
 
        if (i2c_read(I2C_CPLD_ADDR, CFG_REG, 1, (unsigned char *)(&val), 2))
                return PROFILE_NONE;
+#else
+       struct udevice *dev = NULL;
+       int rc;
 
+       rc = i2c_get_chip_for_busnum(0, I2C_CPLD_ADDR, 1, &dev);
+       if (rc)
+               return PROFILE_NONE;
+       rc = dm_i2c_read(dev, CFG_REG, (unsigned char *)(&val), 2);
+       if (rc)
+               return PROFILE_NONE;
+#endif
        return (1 << (val & PROFILE_MASK));
 }
 
@@ -380,6 +391,13 @@ void enable_board_pin_mux(void)
                configure_module_pin_mux(rgmii1_pin_mux);
                configure_module_pin_mux(mmc0_pin_mux_sk_evm);
        } else if (board_is_bone_lt()) {
+               if (board_is_bben()) {
+                       /* SanCloud Beaglebone LT Enhanced pinmux */
+                       configure_module_pin_mux(rgmii1_pin_mux);
+               } else {
+                       /* Beaglebone LT pinmux */
+                       configure_module_pin_mux(mii1_pin_mux);
+               }
                /* Beaglebone LT pinmux */
                configure_module_pin_mux(mii1_pin_mux);
                configure_module_pin_mux(mmc0_pin_mux);
@@ -390,6 +408,9 @@ void enable_board_pin_mux(void)
 #else
                configure_module_pin_mux(mmc1_pin_mux);
 #endif
+       } else if (board_is_pb()) {
+               configure_module_pin_mux(mii1_pin_mux);
+               configure_module_pin_mux(mmc0_pin_mux);
        } else if (board_is_icev2()) {
                configure_module_pin_mux(mmc0_pin_mux);
                configure_module_pin_mux(gpio0_18_pin_mux);
@@ -397,7 +418,7 @@ void enable_board_pin_mux(void)
                configure_module_pin_mux(rmii1_pin_mux);
                configure_module_pin_mux(spi0_pin_mux);
        } else {
-               puts("Unknown board, cannot configure pinmux.");
-               hang();
+               /* Unknown board. We might still be able to boot. */
+               puts("Bad EEPROM or unknown board, cannot configure pinmux.");
        }
 }