diff options
| author | Simon Glass <sjg@chromium.org> | 2016-11-23 06:34:40 -0700 | 
|---|---|---|
| committer | Heiko Schocher <hs@denx.de> | 2016-12-05 13:27:15 +0100 | 
| commit | fc47cf9d054b79299274f4386cfb867a80af8c7b (patch) | |
| tree | c9d4ed67714637899c4f8c18253f6f90133bc939 | |
| parent | 194eded14ccb40af18e1a9fb8ab85903ee0803ef (diff) | |
arm: exynos: i2c: Convert exynos boards to use DM_I2C
Three boards are still not converting to use DM_I2C. They are also using
the old PMIC framework. Rather than removing them, add #ifdefs to allow
them to continue to build. This will give the maintainers a little more
time to decide whether to convert them or not.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
| -rw-r--r-- | arch/arm/Kconfig | 1 | ||||
| -rw-r--r-- | board/samsung/common/misc.c | 4 | ||||
| -rw-r--r-- | board/samsung/trats/trats.c | 20 | ||||
| -rw-r--r-- | board/samsung/trats2/trats2.c | 18 | ||||
| -rw-r--r-- | board/samsung/universal_c210/universal.c | 22 | ||||
| -rw-r--r-- | configs/origen_defconfig | 1 | ||||
| -rw-r--r-- | include/configs/s5pc210_universal.h | 19 | ||||
| -rw-r--r-- | include/configs/trats.h | 30 | ||||
| -rw-r--r-- | include/configs/trats2.h | 33 | 
9 files changed, 54 insertions, 94 deletions
| diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index cead0401cdf..f0110266bc0 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -406,6 +406,7 @@ config TARGET_BCMNSP  config ARCH_EXYNOS  	bool "Samsung EXYNOS"  	select DM +	select DM_I2C  	select DM_SPI_FLASH  	select DM_SERIAL  	select DM_SPI diff --git a/board/samsung/common/misc.c b/board/samsung/common/misc.c index 77d0a4e837f..203136fb970 100644 --- a/board/samsung/common/misc.c +++ b/board/samsung/common/misc.c @@ -101,6 +101,7 @@ void set_board_info(void)  #ifdef CONFIG_LCD_MENU  static int power_key_pressed(u32 reg)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	struct pmic *pmic;  	u32 status;  	u32 mask; @@ -123,6 +124,9 @@ static int power_key_pressed(u32 reg)  		return 0;  	return !!(status & mask); +#else +	return 0; +#endif  }  static int key_pressed(int key) diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c index 66a54d436de..7200c2ee0b1 100644 --- a/board/samsung/trats/trats.c +++ b/board/samsung/trats/trats.c @@ -53,6 +53,7 @@ int exynos_init(void)  void i2c_init_board(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int err;  	/* I2C_5 -> PMIC */ @@ -67,8 +68,10 @@ void i2c_init_board(void)  	gpio_request(EXYNOS4_GPIO_Y41, "i2c_data");  	gpio_direction_output(EXYNOS4_GPIO_Y40, 1);  	gpio_direction_output(EXYNOS4_GPIO_Y41, 1); +#endif  } +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  static void trats_low_power_mode(void)  {  	struct exynos4_clock *clk = @@ -273,11 +276,14 @@ static int pmic_init_max8997(void)  		puts("MAX8997 PMIC setting error!\n");  		return -1;  	} +  	return 0;  } +#endif  int exynos_power_init(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int chrg, ret;  	struct power_battery *pb;  	struct pmic *p_fg, *p_chrg, *p_muic, *p_bat; @@ -341,6 +347,7 @@ int exynos_power_init(void)  	if (pb->bat->state == CHARGE && chrg == CHARGER_USB)  		puts("CHARGE Battery !\n"); +#endif  	return 0;  } @@ -384,6 +391,7 @@ static void check_hw_revision(void)  #ifdef CONFIG_USB_GADGET  static int s5pc210_phy_control(int on)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret = 0;  	u32 val = 0;  	struct pmic *p = pmic_get("MAX8997_PMIC"); @@ -415,6 +423,7 @@ static int s5pc210_phy_control(int on)  		puts("MAX8997 LDO setting error!\n");  		return -1;  	} +#endif  	return 0;  } @@ -435,11 +444,16 @@ int board_usb_init(int index, enum usb_init_type init)  int g_dnl_board_usb_cable_connected(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	struct pmic *muic = pmic_get("MAX8997_MUIC");  	if (!muic)  		return 0;  	return !!muic->chrg->chrg_type(muic); +#else +	return false; +#endif +  }  #endif @@ -552,6 +566,7 @@ void exynos_reset_lcd(void)  int lcd_power(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret = 0;  	struct pmic *p = pmic_get("MAX8997_PMIC");  	if (!p) @@ -569,12 +584,13 @@ int lcd_power(void)  		puts("MAX8997 LDO setting error!\n");  		return -1;  	} - +#endif  	return 0;  }  int mipi_power(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret = 0;  	struct pmic *p = pmic_get("MAX8997_PMIC");  	if (!p) @@ -592,7 +608,7 @@ int mipi_power(void)  		puts("MAX8997 LDO setting error!\n");  		return -1;  	} - +#endif  	return 0;  } diff --git a/board/samsung/trats2/trats2.c b/board/samsung/trats2/trats2.c index 7b28ae8cc72..150503ec158 100644 --- a/board/samsung/trats2/trats2.c +++ b/board/samsung/trats2/trats2.c @@ -151,8 +151,6 @@ int exynos_early_init_f(void)  	return 0;  } -static int pmic_init_max77686(void); -  int exynos_init(void)  {  	struct exynos4_power *pwr = @@ -176,6 +174,7 @@ int exynos_init(void)  int exynos_power_init(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int chrg;  	struct power_battery *pb;  	struct pmic *p_chrg, *p_muic, *p_fg, *p_bat; @@ -236,13 +235,14 @@ int exynos_power_init(void)  	if (pb->bat->state == CHARGE && chrg == CHARGER_USB)  		puts("CHARGE Battery !\n"); - +#endif  	return 0;  }  #ifdef CONFIG_USB_GADGET  static int s5pc210_phy_control(int on)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret = 0;  	unsigned int val;  	struct pmic *p, *p_pmic, *p_muic; @@ -299,7 +299,7 @@ static int s5pc210_phy_control(int on)  	if (ret)  		return -1; - +#endif  	return 0;  } @@ -319,14 +319,19 @@ int board_usb_init(int index, enum usb_init_type init)  int g_dnl_board_usb_cable_connected(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	struct pmic *muic = pmic_get("MAX77693_MUIC");  	if (!muic)  		return 0;  	return !!muic->chrg->chrg_type(muic); +#else +	return false; +#endif  }  #endif +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  static int pmic_init_max77686(void)  {  	struct pmic *p = pmic_get("MAX77686_PMIC"); @@ -379,6 +384,7 @@ static int pmic_init_max77686(void)  	return 0;  } +#endif  /*   * LCD @@ -387,18 +393,21 @@ static int pmic_init_max77686(void)  #ifdef CONFIG_LCD  int mipi_power(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	struct pmic *p = pmic_get("MAX77686_PMIC");  	/* LDO8 VMIPI_1.0V_AP */  	max77686_set_ldo_mode(p, 8, OPMODE_ON);  	/* LDO10 VMIPI_1.8V_AP */  	max77686_set_ldo_mode(p, 10, OPMODE_ON); +#endif  	return 0;  }  void exynos_lcd_power_on(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	struct pmic *p = pmic_get("MAX77686_PMIC");  	/* LCD_2.2V_EN: GPC0[1] */ @@ -410,6 +419,7 @@ void exynos_lcd_power_on(void)  	pmic_probe(p);  	max77686_set_ldo_voltage(p, 25, 3100000);  	max77686_set_ldo_mode(p, 25, OPMODE_LPM); +#endif  }  void exynos_reset_lcd(void) diff --git a/board/samsung/universal_c210/universal.c b/board/samsung/universal_c210/universal.c index 81e35b6f759..c3946ee8910 100644 --- a/board/samsung/universal_c210/universal.c +++ b/board/samsung/universal_c210/universal.c @@ -38,10 +38,9 @@ static int get_hwrev(void)  	return board_rev & 0xFF;  } -static void init_pmic_lcd(void); -  int exynos_power_init(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret;  	/* @@ -53,7 +52,7 @@ int exynos_power_init(void)  		return ret;  	init_pmic_lcd(); - +#endif  	return 0;  } @@ -84,6 +83,7 @@ static unsigned short get_adc_value(int channel)  static int adc_power_control(int on)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret;  	struct pmic *p = pmic_get("MAX8998_PMIC");  	if (!p) @@ -97,6 +97,9 @@ static int adc_power_control(int on)  			      MAX8998_LDO4, !!on);  	return ret; +#else +	return 0; +#endif  }  static unsigned int get_hw_revision(void) @@ -144,6 +147,7 @@ static void check_hw_revision(void)  #ifdef CONFIG_USB_GADGET  static int s5pc210_phy_control(int on)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	int ret = 0;  	struct pmic *p = pmic_get("MAX8998_PMIC");  	if (!p) @@ -175,7 +179,7 @@ static int s5pc210_phy_control(int on)  		puts("MAX8998 LDO setting error!\n");  		return -1;  	} - +#endif  	return 0;  } @@ -201,6 +205,7 @@ int exynos_early_init_f(void)  	return 0;  } +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  static void init_pmic_lcd(void)  {  	unsigned char val; @@ -248,6 +253,7 @@ static void init_pmic_lcd(void)  	if (ret)  		puts("LCD pmic initialisation error!\n");  } +#endif  void exynos_cfg_lcd_gpio(void)  { @@ -304,6 +310,7 @@ void exynos_reset_lcd(void)  void exynos_lcd_power_on(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	struct pmic *p = pmic_get("MAX8998_PMIC");  	if (!p) @@ -314,6 +321,7 @@ void exynos_lcd_power_on(void)  	pmic_set_output(p, MAX8998_REG_ONOFF3, MAX8998_LDO17, LDO_ON);  	pmic_set_output(p, MAX8998_REG_ONOFF2, MAX8998_LDO7, LDO_ON); +#endif  }  void exynos_cfg_ldo(void) @@ -328,8 +336,9 @@ void exynos_enable_ldo(unsigned int onoff)  int exynos_init(void)  { +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	char buf[16]; - +#endif  	gd->bd->bi_arch_number = MACH_TYPE_UNIVERSAL_C210;  	switch (get_hwrev()) { @@ -354,13 +363,14 @@ int exynos_init(void)  		break;  	} +#ifndef CONFIG_DM_I2C /* TODO(maintainer): Convert to driver model */  	/* Request soft I2C gpios */  	strcpy(buf, "soft_i2c_scl");  	gpio_request(CONFIG_SOFT_I2C_GPIO_SCL, buf);  	strcpy(buf, "soft_i2c_sda");  	gpio_request(CONFIG_SOFT_I2C_GPIO_SDA, buf); - +#endif  	check_hw_revision();  	printf("HW Revision:\t0x%x\n", board_rev); diff --git a/configs/origen_defconfig b/configs/origen_defconfig index 0d91ec1c4d3..7b9826ad61d 100644 --- a/configs/origen_defconfig +++ b/configs/origen_defconfig @@ -37,3 +37,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y  CONFIG_G_DNL_MANUFACTURER="Samsung"  CONFIG_G_DNL_VENDOR_NUM=0x04e8  CONFIG_G_DNL_PRODUCT_NUM=0x6601 +CONFIG_DM_I2C=y diff --git a/include/configs/s5pc210_universal.h b/include/configs/s5pc210_universal.h index 0210c5bb72c..1bfefe9dff3 100644 --- a/include/configs/s5pc210_universal.h +++ b/include/configs/s5pc210_universal.h @@ -153,25 +153,6 @@  #define CONFIG_SAMSUNG_ONENAND  #define CONFIG_SYS_ONENAND_BASE		0x0C000000 -#include <asm/arch/gpio.h> -/* - * I2C Settings - */ -#define CONFIG_SOFT_I2C_GPIO_SCL EXYNOS4_GPIO_B7 -#define CONFIG_SOFT_I2C_GPIO_SDA EXYNOS4_GPIO_B6 - -#define CONFIG_SYS_I2C -#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ -#define CONFIG_SYS_I2C_SOFT_SPEED	50000 -#define CONFIG_SYS_I2C_SOFT_SLAVE	0 -#define CONFIG_SOFT_I2C_READ_REPEATED_START -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_SYS_MAX_I2C_BUS	7 - -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_MAX8998 -  #define CONFIG_USB_GADGET_DWC2_OTG_PHY  /* diff --git a/include/configs/trats.h b/include/configs/trats.h index a26d6632f27..a771ddb27c5 100644 --- a/include/configs/trats.h +++ b/include/configs/trats.h @@ -178,36 +178,6 @@  /* GPT */  #define CONFIG_RANDOM_UUID -/* I2C */ -#include <asm/arch/gpio.h> - -#define CONFIG_SYS_I2C -#define CONFIG_SYS_I2C_S3C24X0 -#define CONFIG_SYS_I2C_S3C24X0_SPEED	100000 -#define CONFIG_SYS_I2C_S3C24X0_SLAVE	0xFE -#define CONFIG_MAX_I2C_NUM		8 -#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ -#define CONFIG_SYS_I2C_SOFT_SPEED	50000 -#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F -#define CONFIG_SOFT_I2C_READ_REPEATED_START -#define CONFIG_SYS_I2C_INIT_BOARD - -/* I2C FG */ -#define CONFIG_SOFT_I2C_GPIO_SCL EXYNOS4_GPIO_Y41 -#define CONFIG_SOFT_I2C_GPIO_SDA EXYNOS4_GPIO_Y40 - -/* POWER */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_MAX8997 - -#define CONFIG_POWER_FG -#define CONFIG_POWER_FG_MAX17042 -#define CONFIG_POWER_MUIC -#define CONFIG_POWER_MUIC_MAX8997 -#define CONFIG_POWER_BATTERY -#define CONFIG_POWER_BATTERY_TRATS -  /* Security subsystem - enable hw_rand() */  #define CONFIG_EXYNOS_ACE_SHA  #define CONFIG_LIB_HW_RAND diff --git a/include/configs/trats2.h b/include/configs/trats2.h index 1633c67dd1a..1cd3e142353 100644 --- a/include/configs/trats2.h +++ b/include/configs/trats2.h @@ -155,39 +155,6 @@  /* GPT */  #define CONFIG_RANDOM_UUID -/* I2C */ -#include <asm/arch/gpio.h> - -#define CONFIG_SYS_I2C -#define CONFIG_SYS_I2C_S3C24X0 -#define CONFIG_SYS_I2C_S3C24X0_SPEED	100000 -#define CONFIG_SYS_I2C_S3C24X0_SLAVE	0 -#define CONFIG_MAX_I2C_NUM		8 -#define CONFIG_SYS_I2C_SOFT -#define CONFIG_SYS_I2C_SOFT_SPEED	50000 -#define CONFIG_SYS_I2C_SOFT_SLAVE	0x00 -#define I2C_SOFT_DECLARATIONS2 -#define CONFIG_SYS_I2C_SOFT_SPEED_2     50000 -#define CONFIG_SYS_I2C_SOFT_SLAVE_2     0x00 -#define CONFIG_SOFT_I2C_READ_REPEATED_START -#define CONFIG_SYS_I2C_INIT_BOARD - -#ifndef __ASSEMBLY__ -int get_soft_i2c_scl_pin(void); -int get_soft_i2c_sda_pin(void); -#endif -#define CONFIG_SOFT_I2C_GPIO_SCL	get_soft_i2c_scl_pin() -#define CONFIG_SOFT_I2C_GPIO_SDA	get_soft_i2c_sda_pin() - -/* POWER */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_MAX77686 -#define CONFIG_POWER_PMIC_MAX77693 -#define CONFIG_POWER_MUIC_MAX77693 -#define CONFIG_POWER_FG_MAX77693 -#define CONFIG_POWER_BATTERY_TRATS2 -  /* Security subsystem - enable hw_rand() */  #define CONFIG_EXYNOS_ACE_SHA  #define CONFIG_LIB_HW_RAND | 
