.enable_rail = _enable, \ .disable_rail = _disable, \ } GREG_INIT(0, pmu_5v15_en, NULL, ENT_TPS80031_GPIO_REGEN1, false, 0, 0, 0, 0); GREG_INIT(1, pmu_3v3_en, "vdd_5v15", ENT_TPS80031_GPIO_REGEN2, false, 0, 0, 0, 0); GREG_INIT(2, pmu_hdmi_5v0_en, "vdd_5v15", ENT_TPS80031_GPIO_SYSEN, false, 0, 0, 0, 0); GREG_INIT(3, vdd_fuse_en, "avdd_usb_hdmi_3v3", TEGRA_GPIO_PM0, false, 0, 0, 0, 0); GREG_INIT(4, sdmmc3_vdd_sel, "vddio_sdmmc_2v85", TEGRA_GPIO_PM1, false, 0, 0, 0, 0); GREG_INIT(5, cam_ldo_2v8_en, NULL, TEGRA_GPIO_PM7, false, 0, 0, 0, 0); GREG_INIT(6, cam_ldo_1v8_en, NULL, TEGRA_GPIO_PF1, false, 0, 0, 0, 0); #define ADD_GPIO_REG(_name) (&gpio_pdata_##_name) static struct gpio_switch_regulator_subdev_data *gswitch_subdevs[] = { ADD_GPIO_REG(pmu_5v15_en), ADD_GPIO_REG(pmu_3v3_en), ADD_GPIO_REG(pmu_hdmi_5v0_en), ADD_GPIO_REG(vdd_fuse_en), ADD_GPIO_REG(sdmmc3_vdd_sel), ADD_GPIO_REG(cam_ldo_2v8_en), ADD_GPIO_REG(cam_ldo_1v8_en), }; static struct gpio_switch_regulator_platform_data gswitch_pdata = { .num_subdevs = ARRAY_SIZE(gswitch_subdevs), .subdevs = gswitch_subdevs, }; static struct platform_device gswitch_regulator_pdata = { .name = "gpio-switch-regulator",
ADD_FIXED_REG(cam_ldo_1v8_en) static struct platform_device *fixed_regs_devices_a02[] = { FIXED_REGS_COMMON, ADD_FIXED_REG(pmu_3v3_en), }; static struct platform_device *fixed_regs_devices_a03[] = { FIXED_REGS_COMMON, ADD_FIXED_REG(vdd_sdmmc3_2v85_en), ADD_FIXED_REG(lcd_1v8_en), }; #define ADD_GPIO_REG(_name) (&gpio_reg_##_name##_dev) static struct platform_device *gpio_regs_devices[] = { ADD_GPIO_REG(sdmmc3_vdd_sel), }; static int __init enterprise_fixed_regulator_init(void) { int i; struct board_info board_info; struct platform_device **fixed_regs_devices; int nfixreg_devs; tegra_get_board_info(&board_info); if (board_info.fab < BOARD_FAB_A03) { fixed_regs_devices = fixed_regs_devices_a02; nfixreg_devs = ARRAY_SIZE(fixed_regs_devices_a02); } else {
GREG_INIT(4, aud_3v3_en, NULL, TEGRA_GPIO_PB2, false, 0, 0, 0, 0); GREG_INIT(5, cam_vcm_2v85_en, NULL, TEGRA_GPIO_PM7, false, 0, 0, 0, 0); GREG_INIT(6, lcm_3v3_en, NULL, TEGRA_GPIO_PE2, false, 1, 0, 0, 0); GREG_INIT(7, lcmio_1v8_en, "vio_1v8", TEGRA_GPIO_PE5, false, 1, 0, 0, 0); GREG_INIT(8, srio_1v8_en, "vio_1v8", TEGRA_GPIO_PY3, false, 1, 0, 0, 0); GREG_INIT(9, cam2_d1v2_en, "vio_1v8", TEGRA_GPIO_PF6, false, 0, 0, 0, 0); GREG_INIT(10, cam_d1v2_en, "vio_1v8", TEGRA_GPIO_PF5, false, 0, 0, 0, 0); GREG_INIT(11, camio_1v8_en, NULL, TEGRA_GPIO_PBB4, false, 0, 0, 0, 0); GREG_INIT(12, cam_a2v85_en, NULL, TEGRA_GPIO_PE3, false, 0, 0, 0, 0); GREG_INIT(13, mhl_1v2_en, NULL, TEGRA_GPIO_PE4, false, 0, 0, 0, 0); GREG_INIT(14, sdmmc_2v85_en, NULL, TEGRA_GPIO_PM3, false, 1, 0, 0, 0); #define ADD_GPIO_REG(_name) (&gpio_pdata_##_name) static struct gpio_switch_regulator_subdev_data *gswitch_subdevs[] = { ADD_GPIO_REG(led_3v3_en), ADD_GPIO_REG(vib_3v_en), ADD_GPIO_REG(srio_1v8_en), ADD_GPIO_REG(aud_a1v8_en), ADD_GPIO_REG(aud_3v3_en), ADD_GPIO_REG(lcmio_1v8_en), ADD_GPIO_REG(lcm_3v3_en), ADD_GPIO_REG(mhl_3v3_en), ADD_GPIO_REG(mhl_1v2_en), ADD_GPIO_REG(cam_vcm_2v85_en), ADD_GPIO_REG(cam2_d1v2_en), ADD_GPIO_REG(cam_d1v2_en), ADD_GPIO_REG(camio_1v8_en), ADD_GPIO_REG(cam_a2v85_en), };
ADD_FIXED_REG(en_ddr_a04), ADD_FIXED_REG(en_3v3_sys_a04), ADD_FIXED_REG(en_3v3_modem), ADD_FIXED_REG(en_vdd_pnl1), ADD_FIXED_REG(cam3_ldo_en), ADD_FIXED_REG(en_vdd_com), ADD_FIXED_REG(en_3v3_fuse), ADD_FIXED_REG(en_3v3_emmc), ADD_FIXED_REG(en_vdd_sdmmc1), ADD_FIXED_REG(en_3v3_pex_hvdd), ADD_FIXED_REG(en_1v8_cam), ADD_FIXED_REG(en_vdd_bl1_a03), ADD_FIXED_REG(en_vdd_bl2_a03), ADD_FIXED_REG(cam1_ldo_en), ADD_FIXED_REG(cam2_ldo_en), ADD_GPIO_REG(en_usb1_vbus_oc_a03), ADD_GPIO_REG(en_usb3_vbus_oc_a03), ADD_GPIO_REG(en_vddio_vid_oc), }; /* Fixed regulator devices for PM269 */ static struct platform_device *fixed_reg_devs_pm269[] = { PM269_FIXED_REG E1247_DISPLAY_FIXED_REG }; /* Fixed regulator devices for PM269 */ static struct platform_device *fixed_reg_devs_pm269_pm313[] = { PM269_FIXED_REG PM313_DISPLAY_FIXED_REG };
REGULATOR_SUPPLY("vlg_1v8_ldo", NULL), }; static int gpio_switch_ldo_sensor_1v8_en_voltages[] = {1800}; static struct regulator_consumer_supply gpio_switch_ldo_vdd_fuse_3v3_en_supply[] = { REGULATOR_SUPPLY("vdd_fuse", NULL), }; static int gpio_switch_ldo_vdd_fuse_3v3_en_voltages[] = {3300}; GREG_INIT(0, ldo_mhl_en, NULL, MHL_LDO_EN, false, 0, 0, 0, 0); GREG_INIT(1, ldo_sensor_3v0_en, NULL, SENSOR_LDO_EN, false, 0, 0, 0, 0); GREG_INIT(2, ldo_sensor_1v8_en, NULL, SENSOR_LDO_EN2, false, 0, 0, 0, 0); GREG_INIT(3, ldo_vdd_fuse_3v3_en, NULL, VFUSE_LDO_EN, false, 0, 0, 0, 0); static struct gpio_switch_regulator_subdev_data *gswitch_subdevs[] = { ADD_GPIO_REG(ldo_mhl_en), ADD_GPIO_REG(ldo_sensor_3v0_en), ADD_GPIO_REG(ldo_sensor_1v8_en), ADD_GPIO_REG(ldo_vdd_fuse_3v3_en), }; static struct gpio_switch_regulator_platform_data gswitch_pdata = { .num_subdevs = ARRAY_SIZE(gswitch_subdevs), .subdevs = gswitch_subdevs, }; static struct platform_device gswitch_regulator_pdata = { .name = "gpio-switch-regulator", .id = -1, .dev = { .platform_data = &gswitch_pdata,
/* Gpio switch regulator platform data for E1186/E1187/E1256*/ static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e118x_pm313[] = { E118x_GPIO_REG PM313_DISPLAY_GPIO_REG }; /* Gpio switch regulator platform data for E1198 and E1291*/ static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e1198_base[] = { COMMON_GPIO_REG E1291_1198_A00_GPIO_REG E1198_GPIO_REG }; static struct gpio_switch_regulator_subdev_data *gswitch_subdevs_e1198_a02[] = { ADD_GPIO_REG(en_5v_cp), ADD_GPIO_REG(en_5v0), ADD_GPIO_REG(en_ddr_a04), ADD_GPIO_REG(en_3v3_sys_a04), ADD_GPIO_REG(en_3v3_modem), ADD_GPIO_REG(en_vdd_pnl1), ADD_GPIO_REG(cam3_ldo_en), ADD_GPIO_REG(en_vdd_com), ADD_GPIO_REG(en_3v3_fuse), ADD_GPIO_REG(en_3v3_emmc), ADD_GPIO_REG(en_vdd_sdmmc1), ADD_GPIO_REG(en_3v3_pex_hvdd), ADD_GPIO_REG(en_1v8_cam), ADD_GPIO_REG(en_usb1_vbus_oc_a03), ADD_GPIO_REG(en_usb3_vbus_oc_a03), ADD_GPIO_REG(en_vdd_bl1_a03),