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>
This commit is contained in:
		
							parent
							
								
									194eded14c
								
							
						
					
					
						commit
						fc47cf9d05
					
				|  | @ -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 | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
|  | @ -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; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
|  | @ -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); | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
| /*
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue