diff options
author | Hayden Du <haydend@nvidia.com> | 2013-08-22 16:58:04 +0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 13:43:12 -0700 |
commit | 84122d228ea75a1f26991c8b364480ac744c19e8 (patch) | |
tree | f4a3d93e096dd043d4b14467854cf3c67caf6076 /arch/arm/mach-tegra/board-tn8-power.c | |
parent | fa04b24c897403d1ce639efb031d4c5453d27094 (diff) |
arm: t124: tn8: Enable VBUS regulator for TN8 USB OTG
Bug 1353788
Change-Id: I467a148768d61f96c71687fa4f6504f784bf4a04
Signed-off-by: Hayden Du <haydend@nvidia.com>
Reviewed-on: http://git-master/r/264783
GVS: Gerrit_Virtual_Submit
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-tn8-power.c')
-rw-r--r-- | arch/arm/mach-tegra/board-tn8-power.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-tn8-power.c b/arch/arm/mach-tegra/board-tn8-power.c index 1c567bf7db25..da6c1bb9d417 100644 --- a/arch/arm/mach-tegra/board-tn8-power.c +++ b/arch/arm/mach-tegra/board-tn8-power.c @@ -26,6 +26,10 @@ #include <linux/regulator/machine.h> #include <linux/irq.h> +#include <linux/gpio.h> +#include <linux/power/bq2419x-charger.h> +#include <linux/max17048_battery.h> + #include <mach/irqs.h> #include <mach/hardware.h> @@ -45,6 +49,34 @@ #define PMC_CTRL 0x0 #define PMC_CTRL_INTR_LOW (1 << 17) +/* BQ2419X VBUS regulator */ +static struct regulator_consumer_supply bq2419x_vbus_supply[] = { + REGULATOR_SUPPLY("usb_vbus", "tegra-ehci.0"), + REGULATOR_SUPPLY("usb_vbus", "tegra-otg"), +}; + +static struct regulator_consumer_supply bq2419x_batt_supply[] = { + REGULATOR_SUPPLY("usb_bat_chg", "tegra-udc.0"), +}; + +static struct bq2419x_vbus_platform_data bq2419x_vbus_pdata = { + .gpio_otg_iusb = TEGRA_GPIO_PI4, + .num_consumer_supplies = ARRAY_SIZE(bq2419x_vbus_supply), + .consumer_supplies = bq2419x_vbus_supply, +}; + +struct bq2419x_platform_data tn8_bq2419x_pdata = { + .vbus_pdata = &bq2419x_vbus_pdata, +}; + +static struct i2c_board_info __initdata bq2419x_boardinfo[] = { + { + I2C_BOARD_INFO("bq2419x", 0x6b), + .platform_data = &tn8_bq2419x_pdata, + }, +}; + + static struct regulator_consumer_supply palmas_smps123_supply[] = { REGULATOR_SUPPLY("vdd_cpu", NULL), }; @@ -415,6 +447,10 @@ int __init tn8_regulator_init(void) pmic_platform.reg_init[i] = tn8_reg_init[i]; } + bq2419x_boardinfo[0].irq = gpio_to_irq(TEGRA_GPIO_PJ0); + i2c_register_board_info(0, bq2419x_boardinfo, + ARRAY_SIZE(bq2419x_boardinfo)); + /* Tracking configuration */ /* TODO reg_init_data_ldo8.config_flags = |