]> git.sur5r.net Git - u-boot/blobdiff - board/samsung/goni/goni.c
arm: samsung: Convert s5p_goni and smdkc100 to DM_I2C
[u-boot] / board / samsung / goni / goni.c
index eb0f9bffae0e4a3b925b570af2ab4f1337aa2f60..b066832e5fa0425191d47744392c43f505d30f00 100644 (file)
@@ -7,10 +7,10 @@
  */
 
 #include <common.h>
-#include <asm/arch/gpio.h>
+#include <asm/gpio.h>
 #include <asm/arch/mmc.h>
 #include <power/pmic.h>
-#include <usb/s3c_udc.h>
+#include <usb/dwc2_udc.h>
 #include <asm/arch/cpu.h>
 #include <power/max8998_pmic.h>
 #include <samsung/misc.h>
@@ -33,19 +33,27 @@ int board_init(void)
        return 0;
 }
 
-int power_init_board(void)
+#ifdef CONFIG_SYS_I2C_INIT_BOARD
+void i2c_init_board(void)
 {
-       int ret;
+       gpio_request(S5PC110_GPIO_J43, "i2c_clk");
+       gpio_request(S5PC110_GPIO_J40, "i2c_data");
+       gpio_direction_output(S5PC110_GPIO_J43, 1);
+       gpio_direction_output(S5PC110_GPIO_J40, 1);
+}
+#endif
 
+int power_init_board(void)
+{
+#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */
        /*
         * For PMIC the I2C bus is named as I2C5, but it is connected
         * to logical I2C adapter 0
         */
-       ret = pmic_init(I2C_0);
-       if (ret)
-               return ret;
-
+       return pmic_init(I2C_0);
+#else
        return 0;
+#endif
 }
 
 int dram_init(void)
@@ -80,6 +88,7 @@ int board_mmc_init(bd_t *bis)
        int i, ret, ret_sd = 0;
 
        /* MASSMEMORY_EN: XMSMDATA7: GPJ2[7] output high */
+       gpio_request(S5PC110_GPIO_J27, "massmemory_en");
        gpio_direction_output(S5PC110_GPIO_J27, 1);
 
        /*
@@ -108,6 +117,7 @@ int board_mmc_init(bd_t *bis)
         * SD card (T_FLASH) detect and init
         * T_FLASH_DETECT: EINT28: GPH3[4] input mode
         */
+       gpio_request(S5PC110_GPIO_H34, "t_flash_detect");
        gpio_cfg_pin(S5PC110_GPIO_H34, S5P_GPIO_INPUT);
        gpio_set_pull(S5PC110_GPIO_H34, S5P_GPIO_PULL_UP);
 
@@ -136,6 +146,7 @@ int board_mmc_init(bd_t *bis)
 #ifdef CONFIG_USB_GADGET
 static int s5pc1xx_phy_control(int on)
 {
+#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */
        int ret;
        static int status;
        struct pmic *p = pmic_get("MAX8998_PMIC");
@@ -167,11 +178,11 @@ static int s5pc1xx_phy_control(int on)
                status = 0;
        }
        udelay(10000);
-
+#endif
        return 0;
 }
 
-struct s3c_plat_otg_data s5pc110_otg_data = {
+struct dwc2_plat_otg_data s5pc110_otg_data = {
        .phy_control = s5pc1xx_phy_control,
        .regs_phy = S5PC110_PHY_BASE,
        .regs_otg = S5PC110_OTG_BASE,
@@ -181,7 +192,7 @@ struct s3c_plat_otg_data s5pc110_otg_data = {
 int board_usb_init(int index, enum usb_init_type init)
 {
        debug("USB_udc_probe\n");
-       return s3c_udc_probe(&s5pc110_otg_data);
+       return dwc2_udc_probe(&s5pc110_otg_data);
 }
 #endif
 
@@ -194,3 +205,8 @@ int misc_init_r(void)
        return 0;
 }
 #endif
+
+int board_usb_cleanup(int index, enum usb_init_type init)
+{
+       return 0;
+}