void __init msm8974_init(void) { struct of_dev_auxdata *adata = msm8974_auxdata_lookup; if (socinfo_init() < 0) pr_err("%s: socinfo_init() failed\n", __func__); msm_8974_init_gpiomux(); regulator_has_full_constraints(); board_dt_populate(adata); msm8974_add_drivers(); #ifndef CONFIG_PANTECH_SNS_PIXART_VLED_PWR_CONTROLED_BY_DDF { #define PWR_IRMOTION_3P3 102 static unsigned irmotion_i2c_gpio_table[] = { GPIO_CFG(PWR_IRMOTION_3P3,0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA), }; int ret=0, i=0; printk("%s (%d) : gpio and pwr setting.\n", __func__, __LINE__); for(i=0; i<ARRAY_SIZE(irmotion_i2c_gpio_table); i++) { ret = gpio_tlmm_config(irmotion_i2c_gpio_table[i], GPIO_CFG_ENABLE); if(ret) { pr_err("%s:Failed irmotion_i2c_gpio_table gpio_tlmm_config(%d) = %d\n", __func__, i, ret); return; } } gpio_set_value(PWR_IRMOTION_3P3, 1); } #endif }
/* Init power management unit of Tegra2 */ int __init shuttle_power_register_devices(void) { int err; void __iomem *pmc = IO_ADDRESS(TEGRA_PMC_BASE); u32 pmc_ctrl; /* configure the power management controller to trigger PMU * interrupts when low */ pmc_ctrl = readl(pmc + PMC_CTRL); writel(pmc_ctrl | PMC_CTRL_INTR_LOW, pmc + PMC_CTRL); err = i2c_register_board_info(4, shuttle_regulators, 1); if (err < 0) pr_warning("Unable to initialize regulator\n"); /* register the poweroff callback */ pm_power_off = shuttle_power_off; /* And the restart callback */ tegra_setup_reboot(); /* signal that power regulators have fully specified constraints */ regulator_has_full_constraints(); /* register all pm devices - This must come AFTER the registration of the TPS i2c interfase, as we need the GPIO definitions exported by that driver */ return platform_add_devices(shuttle_power_devices, ARRAY_SIZE(shuttle_power_devices)); }
static void __init spitz_init(void) { init_gpio_reset(SPITZ_GPIO_ON_RESET, 1, 0); pm_power_off = spitz_poweroff; PMCR = 0x00; /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */ PCFR |= PCFR_OPDE; pxa2xx_mfp_config(ARRAY_AND_SIZE(spitz_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); spitz_spi_init(); spitz_scoop_init(); spitz_mkp_init(); spitz_keys_init(); spitz_leds_init(); spitz_mmc_init(); spitz_pcmcia_init(); spitz_irda_init(); spitz_uhc_init(); spitz_lcd_init(); spitz_nor_init(); spitz_nand_init(); spitz_i2c_init(); spitz_audio_init(); regulator_has_full_constraints(); }
static void __init mop500_init_machine(void) { struct device *parent = NULL; int i2c0_devs; int i; mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; mop500_pinmaps_init(); parent = u8500_init_devices(&ab8500_platdata); for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) mop500_platform_devs[i]->dev.parent = parent; platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); mop500_i2c_init(parent); mop500_sdi_init(parent); mop500_spi_init(parent); mop500_audio_init(parent); mop500_uart_init(parent); u8500_cryp1_hash1_init(parent); i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); i2c_register_board_info(2, mop500_i2c2_devices, ARRAY_SIZE(mop500_i2c2_devices)); /* This board has full regulator constraints */ regulator_has_full_constraints(); }
static void __init cm_x300_init(void) { cm_x300_init_mfp(); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); if (cpu_is_pxa300()) pxa_set_ffuart_info(NULL); cm_x300_init_da9030(); cm_x300_init_dm9000(); cm_x300_init_lcd(); cm_x300_init_u2d(); cm_x300_init_ohci(); cm_x300_init_mmc(); cm_x300_init_nand(); cm_x300_init_leds(); cm_x300_init_i2c(); cm_x300_init_spi(); cm_x300_init_rtc(); cm_x300_init_ac97(); cm_x300_init_wi2wi(); cm_x300_init_bl(); regulator_has_full_constraints(); }
static void __init snowball_init_machine(void) { struct device *parent = NULL; int i; platform_device_register(&db8500_prcmu_device); sdi0_reg_info.enable_gpio = SNOWBALL_SDMMC_EN_GPIO; sdi0_reg_info.gpios[0].gpio = SNOWBALL_SDMMC_1V8_3V_GPIO; snowball_pinmaps_init(); parent = u8500_init_devices(); for (i = 0; i < ARRAY_SIZE(snowball_platform_devs); i++) snowball_platform_devs[i]->dev.parent = parent; platform_add_devices(snowball_platform_devs, ARRAY_SIZE(snowball_platform_devs)); mop500_i2c_init(parent); snowball_sdi_init(parent); mop500_spi_init(parent); mop500_audio_init(parent); mop500_uart_init(parent); u8500_cryp1_hash1_init(parent); /* This board has full regulator constraints */ regulator_has_full_constraints(); }
static int d2083_regulator_probe(struct platform_device *pdev) { struct regulator_dev *rdev; //struct d2083 *d2083 = dev_get_drvdata(&pdev->dev); // platform_get_drvdata(pdev); if (pdev->id < D2083_BUCK_1 || pdev->id >= D2083_NUMBER_OF_REGULATORS) return -ENODEV; /* register regulator */ rdev = regulator_register(&d2083_reg[pdev->id], &pdev->dev, pdev->dev.platform_data, dev_get_drvdata(&pdev->dev)); if (IS_ERR(rdev)) { dev_err(&pdev->dev, "failed to register %s\n", d2083_reg[pdev->id].name); return PTR_ERR(rdev); } d2083_rdev[pdev->id] = rdev; /* rdev required for IOCTL support */ regulator_has_full_constraints(); return 0; }
static void __init hrefv60_init_machine(void) { struct device *parent = NULL; int i; platform_device_register(&db8500_prcmu_device); /* * The HREFv60 board removed a GPIO expander and routed * all these GPIO pins to the internal GPIO controller * instead. */ mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; sdi0_reg_info.enable_gpio = HREFV60_SDMMC_EN_GPIO; sdi0_reg_info.gpios[0].gpio = HREFV60_SDMMC_1V8_3V_GPIO; hrefv60_pinmaps_init(); parent = u8500_init_devices(); for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) mop500_platform_devs[i]->dev.parent = parent; platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); mop500_i2c_init(parent); hrefv60_sdi_init(parent); mop500_spi_init(parent); mop500_audio_init(parent); mop500_uart_init(parent); /* This board has full regulator constraints */ regulator_has_full_constraints(); }
int __init n1_regulator_init(void) { void __iomem *pmc = IO_ADDRESS(TEGRA_PMC_BASE); u32 pmc_ctrl; /* configure the power management controller to trigger PMU * interrupts when low */ pmc_ctrl = readl(pmc + PMC_CTRL); writel(pmc_ctrl | PMC_CTRL_INTR_LOW, pmc + PMC_CTRL); i2c_register_board_info(4, n1_regulators, ARRAY_SIZE(n1_regulators)); #ifdef CONFIG_SAMSUNG_LPM_MODE extern int charging_mode_from_boot; if (!charging_mode_from_boot) { n1_suspend_data.wake_enb |= (TEGRA_WAKE_GPIO_PW2 | TEGRA_WAKE_GPIO_PV2 | TEGRA_WAKE_GPIO_PW3 | TEGRA_WAKE_GPIO_PV3); n1_suspend_data.wake_low |= TEGRA_WAKE_GPIO_PW2; n1_suspend_data.wake_any |= (TEGRA_WAKE_GPIO_PV2 | TEGRA_WAKE_GPIO_PW3 | TEGRA_WAKE_GPIO_PV3); } #else n1_suspend_data.wake_enb |= (TEGRA_WAKE_GPIO_PW2 | TEGRA_WAKE_GPIO_PV2 | TEGRA_WAKE_GPIO_PW3 | TEGRA_WAKE_GPIO_PV3); n1_suspend_data.wake_low |= TEGRA_WAKE_GPIO_PW2; n1_suspend_data.wake_any |= (TEGRA_WAKE_GPIO_PV2 | TEGRA_WAKE_GPIO_PW3 | TEGRA_WAKE_GPIO_PV3); #endif regulator_has_full_constraints(); tegra_init_suspend(&n1_suspend_data); return 0; }
static void __init hx4700_init(void) { int ret; PCFR = PCFR_GPR_EN | PCFR_OPDE; pxa2xx_mfp_config(ARRAY_AND_SIZE(hx4700_pin_config)); gpio_set_wake(GPIO12_HX4700_ASIC3_IRQ, 1); ret = gpio_request_array(ARRAY_AND_SIZE(global_gpios)); if (ret) pr_err ("hx4700: Failed to request GPIOs.\n"); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_add_devices(devices, ARRAY_SIZE(devices)); pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup)); pxa_set_ficp_info(&ficp_info); pxa27x_set_i2c_power_info(NULL); pxa_set_i2c_info(NULL); i2c_register_board_info(0, ARRAY_AND_SIZE(i2c_board_info)); i2c_register_board_info(1, ARRAY_AND_SIZE(pi2c_board_info)); pxa2xx_set_spi_info(2, &pxa_ssp2_master_info); spi_register_board_info(ARRAY_AND_SIZE(tsc2046_board_info)); gpio_set_value(GPIO71_HX4700_ASIC3_nRESET, 0); mdelay(10); gpio_set_value(GPIO71_HX4700_ASIC3_nRESET, 1); mdelay(10); regulator_has_full_constraints(); }
static void __init snowball_init_machine(void) { struct device *parent = NULL; int i2c0_devs; int i; parent = u8500_init_devices(); snowball_pins_init(); for (i = 0; i < ARRAY_SIZE(snowball_platform_devs); i++) snowball_platform_devs[i]->dev.parent = parent; platform_add_devices(snowball_platform_devs, ARRAY_SIZE(snowball_platform_devs)); mop500_i2c_init(parent); snowball_sdi_init(parent); mop500_spi_init(parent); mop500_uart_init(parent); i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); i2c_register_board_info(2, mop500_i2c2_devices, ARRAY_SIZE(mop500_i2c2_devices)); /* This board has full regulator constraints */ regulator_has_full_constraints(); }
void __init htc_8974_init(void) { struct of_dev_auxdata *adata = htc_8974_auxdata_lookup; if (socinfo_init() < 0) pr_err("%s: socinfo_init() failed\n", __func__); pr_info("%s: pid=%d, pcbid=%d, socver=0x%x\n", __func__ , of_machine_pid(), of_machine_pcbid(), of_machine_socver()); msm_htc_8974_init_gpiomux(); regulator_has_full_constraints(); board_dt_populate(adata); htc_8974_add_drivers(); #ifdef CONFIG_HTC_BUILD_EDIAG platform_device_register(&android_pmem_ediag_device); platform_device_register(&android_pmem_ediag1_device); platform_device_register(&android_pmem_ediag2_device); platform_device_register(&android_pmem_ediag3_device); #endif #ifdef CONFIG_BT bt_export_bd_address(); #endif #ifdef CONFIG_PERFLOCK platform_device_register(&msm8974_device_perf_lock); #endif #ifdef CONFIG_HTC_POWER_DEBUG htc_monitor_init(); #endif }
static void __init poodle_init(void) { int ret = 0; pm_power_off = poodle_poweroff; PCFR |= PCFR_OPDE; pxa2xx_mfp_config(ARRAY_AND_SIZE(poodle_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_scoop_config = &poodle_pcmcia_config; ret = platform_add_devices(devices, ARRAY_SIZE(devices)); if (ret) pr_warning("poodle: Unable to register LoCoMo device\n"); pxa_set_fb_info(&poodle_locomo_device.dev, &poodle_fb_info); pxa_set_udc_info(&udc_info); pxa_set_mci_info(&poodle_mci_platform_data); pxa_set_ficp_info(&poodle_ficp_platform_data); pxa_set_i2c_info(NULL); i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices)); poodle_init_spi(); regulator_has_full_constraints(); }
static void __init hrefv60_init_machine(void) { int i2c0_devs; /* * The HREFv60 board removed a GPIO expander and routed * all these GPIO pins to the internal GPIO controller * instead. */ mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; u8500_init_devices(); hrefv60_pins_init(); platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); mop500_i2c_init(); hrefv60_sdi_init(); mop500_spi_init(); mop500_uart_init(); i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); i2c_register_board_info(2, mop500_i2c2_devices, ARRAY_SIZE(mop500_i2c2_devices)); /* This board has full regulator constraints */ regulator_has_full_constraints(); }
static void __init mop500_init_machine(void) { int i2c0_devs; mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; u8500_init_devices(); mop500_pins_init(); platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); mop500_i2c_init(); mop500_sdi_init(); mop500_spi_init(); mop500_uart_init(); i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); i2c_register_board_info(2, mop500_i2c2_devices, ARRAY_SIZE(mop500_i2c2_devices)); /* This board has full regulator constraints */ regulator_has_full_constraints(); }
void __init omap4_kona_pmic_init(void) { unsigned int gpio_sys_drm_msec = omap_muxtbl_get_gpio_by_name("SYS_DRM_MSEC"); /* Update oscillator information */ omap_pm_set_osc_lp_time(15000, 1); /* * This will allow unused regulator to be shutdown. This flag * should be set in the board file. Before regulators are registered. */ regulator_has_full_constraints(); platform_add_devices(kona_pmic_devices, ARRAY_SIZE(kona_pmic_devices)); i2c_register_board_info(1, kona_twl6034_i2c1_board_info, ARRAY_SIZE(kona_twl6034_i2c1_board_info)); /* * Drive MSECURE high for TWL6034 write access. */ gpio_request(gpio_sys_drm_msec, "SYS_DRM_MSEC"); gpio_direction_output(gpio_sys_drm_msec, 1); if (enable_sr) omap_enable_smartreflex_on_init(); /*enable off-mode*/ omap_pm_enable_off_mode(); }
void __init msm8974_init(void) { struct of_dev_auxdata *adata = msm8974_auxdata_lookup; #ifdef CONFIG_SEC_DEBUG sec_debug_init(); #endif #ifdef CONFIG_PROC_AVC sec_avc_log_init(); #endif if (socinfo_init() < 0) pr_err("%s: socinfo_init() failed\n", __func__); msm_8974_init_gpiomux(); regulator_has_full_constraints(); board_dt_populate(adata); samsung_sys_class_init(); #ifdef CONFIG_SEC_FACTORY samsung_proc_ddrsize_init(); #endif msm8974_add_drivers(); platform_add_devices(common_devices, ARRAY_SIZE(common_devices)); register_i2c_devices(); #ifdef CONFIG_SENSORS_SSP sensor_hub_init(); #endif #if defined(CONFIG_KEYBOARD_MATRIX) && defined(CONFIG_MACH_MONTBLANC) platform_device_register(&folder_keypad_device); #ifdef CONFIG_INPUT_FLIP flip_init_hw(); platform_device_register(&sec_flip_device); #endif #endif #if defined(CONFIG_BATTERY_SAMSUNG) samsung_init_battery(); #endif #if defined(CONFIG_BT_BCM4335) || defined(CONFIG_BT_BCM4339) msm8974_bt_init(); #endif #if defined(CONFIG_BCM4335) || defined(CONFIG_BCM4335_MODULE) || defined(CONFIG_BCM4339) || defined(CONFIG_BCM4339_MODULE) brcm_wlan_init(); #endif #if defined(CONFIG_SAMSUNG_LPM_MODE) if(poweroff_charging) { modem_power_off(); } #endif #if defined (CONFIG_MOTOR_DRV_ISA1400) vienna_motor_init(); #endif }
void __init msm_8974_init(struct of_dev_auxdata **adata) { msm_8974_init_gpiomux(); *adata = msm_8974_auxdata_lookup; regulator_has_full_constraints(); }
static int __init omap4_i2c_init(void) { int i2c_bus_devices = 0; omap_i2c_hwspinlock_init(1, 0, &mapphone_i2c_1_bus_pdata); omap_i2c_hwspinlock_init(2, 1, &mapphone_i2c_2_bus_pdata); omap_i2c_hwspinlock_init(3, 2, &mapphone_i2c_3_bus_pdata); omap_i2c_hwspinlock_init(4, 3, &mapphone_i2c_4_bus_pdata); omap_register_i2c_bus_board_data(1, &mapphone_i2c_1_bus_pdata); omap_register_i2c_bus_board_data(2, &mapphone_i2c_2_bus_pdata); omap_register_i2c_bus_board_data(3, &mapphone_i2c_3_bus_pdata); omap_register_i2c_bus_board_data(4, &mapphone_i2c_4_bus_pdata); /* Populate I2C bus 1 devices */ i2c_bus_devices = initialize_i2c_bus_info( 1, mapphone_i2c_bus1_board_info, I2C_BUS_MAX_DEVICES, mapphone_i2c_1_boardinfo, ARRAY_SIZE(mapphone_i2c_1_boardinfo)); omap_register_i2c_bus(1, 400, mapphone_i2c_bus1_board_info, i2c_bus_devices); /* Populate I2C bus 2 devices */ i2c_bus_devices = initialize_i2c_bus_info( 2, mapphone_i2c_bus2_board_info, I2C_BUS_MAX_DEVICES, mapphone_i2c_2_boardinfo, ARRAY_SIZE(mapphone_i2c_2_boardinfo)); omap_register_i2c_bus(2, 400, mapphone_i2c_bus2_board_info, i2c_bus_devices); /* Populate I2C bus 3 devices */ i2c_bus_devices = initialize_i2c_bus_info( 3, mapphone_i2c_bus3_board_info, I2C_BUS_MAX_DEVICES, mapphone_i2c_3_boardinfo, ARRAY_SIZE(mapphone_i2c_3_boardinfo)); omap_register_i2c_bus(3, 400, mapphone_i2c_bus3_board_info, i2c_bus_devices); /* Populate I2C bus 4 devices */ i2c_bus_devices = initialize_i2c_bus_info( 4, mapphone_i2c_bus4_board_info, I2C_BUS_MAX_DEVICES, mapphone_i2c_4_boardinfo, ARRAY_SIZE(mapphone_i2c_4_boardinfo)); omap_register_i2c_bus(4, 400, mapphone_i2c_bus4_board_info, i2c_bus_devices); /* * This will allow unused regulator to be shutdown. This flag * should be set in the board file. Before regulators are registered. */ regulator_has_full_constraints(); return 0; }
static int mc34708_regulator_init(struct mc34708 *mc34708) { unsigned int value, register_mask; pmic_read_reg(REG_MC34708_IDENTIFICATION, &value, 0xffffff); pr_info("PMIC MC34708 ID:0x%x\n", value); /* enable standby controll for mode0 regulators */ pmic_read_reg(REG_MC34708_MODE_0, &value, 0xffffff); value &= ~(REG_MODE_0_ALL_MASK | USB_EN_MASK); value |= REG_MODE_0_ALL_MASK; pmic_write_reg(REG_MC34708_MODE_0, value, 0xffffff); /* enable standby controll for mode0 regulators */ pmic_read_reg(REG_MC34708_SW_1_2_OP, &value, 0xffffff); value &= ~REG_SW_1_2_MASK; value |= REG_SW_1_2_VALUE; pmic_write_reg(REG_MC34708_SW_1_2_OP, value, 0xffffff); /* enable standby controll for mode0 regulators */ pmic_read_reg(REG_MC34708_SW_3_4_5_OP, &value, 0xffffff); value &= ~REG_SW_3_4_5_MASK; value |= REG_SW_3_4_5_VALUE; pmic_write_reg(REG_MC34708_SW_3_4_5_OP, value, 0xffffff); /* enable standby controll for mode0 regulators */ pmic_read_reg(REG_MC34708_SWBST, &value, 0xffffff); value &= ~REG_SWBST_MODE_MASK; value |= REG_SWBST_MODE_VALUE; pmic_write_reg(REG_MC34708_SWBST, value, 0xffffff); /* clear SWHOLD bit to enable USB MUX */ pmic_read_reg(REG_MC34708_USB_CONTROL, &value, 0xffffff); value &= ~SWHOLD_MASK; pmic_write_reg(REG_MC34708_USB_CONTROL, value, 0xffffff); pr_info("Initializing mc34708 regulators for mx50 rdp.\n"); mc34708_register_regulator(mc34708, MC34708_SW1A, &sw1a_init); mc34708_register_regulator(mc34708, MC34708_SW1B, &sw1b_init); mc34708_register_regulator(mc34708, MC34708_SW2, &sw2_init); mc34708_register_regulator(mc34708, MC34708_SW3, &sw3_init); mc34708_register_regulator(mc34708, MC34708_SW4A, &sw4a_init); mc34708_register_regulator(mc34708, MC34708_SW4B, &sw4b_init); mc34708_register_regulator(mc34708, MC34708_SW5, &sw5_init); mc34708_register_regulator(mc34708, MC34708_SWBST, &swbst_init); mc34708_register_regulator(mc34708, MC34708_VPLL, &vpll_init); mc34708_register_regulator(mc34708, MC34708_VREFDDR, &vrefddr_init); mc34708_register_regulator(mc34708, MC34708_VDAC, &vdac_init); mc34708_register_regulator(mc34708, MC34708_VUSB, &vusb_init); mc34708_register_regulator(mc34708, MC34708_VUSB2, &vusb2_init); mc34708_register_regulator(mc34708, MC34708_VGEN1, &vgen1_init); mc34708_register_regulator(mc34708, MC34708_VGEN2, &vgen2_init); regulator_has_full_constraints(); return 0; }
void __init msm8974_init(void) { #ifdef CONFIG_VENDOR_EDIT /* OPPO 2013.07.09 hewei add begin for FTM */ int rc = 0; /* OPPO 2013.07.09 hewei add end for FTM */ #endif //CONFIG_VENDOR_EDIT struct of_dev_auxdata *adata = msm8974_auxdata_lookup; if (socinfo_init() < 0) pr_err("%s: socinfo_init() failed\n", __func__); #ifdef CONFIG_VENDOR_EDIT /* OPPO 2013.07.09 hewei add begin for factory mode*/ board_mfg_mode_init(); /* OPPO 2013.07.09 hewei add end */ #endif //CONFIG_VENDOR_EDIT #ifdef CONFIG_VENDOR_EDIT /* OPPO 2013-09-03 zhanglong add for add interface start reason and boot_mode begin */ start_reason_init(); boot_mode_init(); /* OPPO 2013-09-03 zhanglong add for add interface start reason and boot_mode end */ #endif //CONFIG_VENDOR_EDIT msm_8974_init_gpiomux(); regulator_has_full_constraints(); board_dt_populate(adata); msm8974_add_drivers(); /*OPPO yuyi 2013-07-15 add begin for version */ #ifdef VENDOR_EDIT board_pcb_verison_init(); board_rf_version_init(); #endif /*OPPO yuyi 2013-07-15 add end for version*/ #ifdef VENDOR_EDIT /* Xiaori.Yuan@Mobile Phone Software Dept.Driver, 2014/04/12 Add for gamma correction */ board_gamma_index_init(); #endif /*VENDOR_EDIT*/ #ifdef VENDOR_EDIT /* Xiaori.Yuan@Mobile Phone Software Dept.Driver, 2014/04/15 Add for find7s swap port */ board_LCD_id_index_init(); #endif /*VENDOR_EDIT*/ #ifdef CONFIG_VENDOR_EDIT /* OPPO 2013.07.09 hewei add begin for factory mode*/ systeminfo_kobj = kobject_create_and_add("systeminfo", NULL); printk("songxh create systeminto node suscess!\n"); if (systeminfo_kobj) rc = sysfs_create_group(systeminfo_kobj, &attr_group); /* OPPO 2013.07.09 hewei add end */ #endif //CONFIG_VENDOR_EDIT }
void __init msm8974_init(void) { struct of_dev_auxdata *adata = msm8974_auxdata_lookup; msm_8974_init_gpiomux(); regulator_has_full_constraints(); of_platform_populate(NULL, of_default_bus_match_table, adata, NULL); msm8974_add_drivers(); }
static void __init icontrol_init(void) { mxm_8x10_barebones_init(); mxm_8x10_usb_host_init(); mxm_8x10_mmc_init(); icontrol_can_init(); regulator_has_full_constraints(); }
static int mc34708_regulator_init(struct mc34708 *mc34708) { unsigned int value; pmic_read_reg(REG_MC34708_IDENTIFICATION, &value, 0xffffff); pr_info("PMIC MC34708 ID:0x%x\n", value); /* setting switch operating mode for SW1/2 regulators */ pmic_read_reg(REG_MC34708_SW_1_2_OP, &value, 0xffffff); value &= ~REG_SW_1_2_MASK; value |= REG_SW_1_2_VALUE; pmic_write_reg(REG_MC34708_SW_1_2_OP, value, 0xffffff); /* setting switch operating mode for SW3/4/5 regulators */ pmic_read_reg(REG_MC34708_SW_3_4_5_OP, &value, 0xffffff); value &= ~REG_SW_3_4_5_MASK; value |= REG_SW_3_4_5_VALUE; pmic_write_reg(REG_MC34708_SW_3_4_5_OP, value, 0xffffff); /* setting switch operating mode for SWBST regulators */ pmic_read_reg(REG_MC34708_SWBST, &value, 0xffffff); value &= ~REG_SWBST_MODE_MASK; value |= REG_SWBST_MODE_VALUE; pmic_write_reg(REG_MC34708_SWBST, value, 0xffffff); /* clear SWHOLD bit to enable USB MUX */ pmic_read_reg(REG_MC34708_USB_CONTROL, &value, 0xffffff); value &= ~SWHOLD_MASK; pmic_write_reg(REG_MC34708_USB_CONTROL, value, 0xffffff); /* enable WDI reset*/ pmic_read_reg(REG_MC34708_POWER_CTL2, &value, 0xffffff); value |= 0x1000; pmic_write_reg(REG_MC34708_POWER_CTL2, value, 0xffffff); mc34708_register_regulator(mc34708, MC34708_SW1A, &sw1a_init); mc34708_register_regulator(mc34708, MC34708_SW1B, &sw1b_init); mc34708_register_regulator(mc34708, MC34708_SW2, &sw2_init); mc34708_register_regulator(mc34708, MC34708_SW3, &sw3_init); mc34708_register_regulator(mc34708, MC34708_SW4A, &sw4a_init); mc34708_register_regulator(mc34708, MC34708_SW4B, &sw4b_init); mc34708_register_regulator(mc34708, MC34708_SW5, &sw5_init); mc34708_register_regulator(mc34708, MC34708_SWBST, &swbst_init); mc34708_register_regulator(mc34708, MC34708_VPLL, &vpll_init); mc34708_register_regulator(mc34708, MC34708_VREFDDR, &vrefddr_init); mc34708_register_regulator(mc34708, MC34708_VDAC, &vdac_init); mc34708_register_regulator(mc34708, MC34708_VUSB, &vusb_init); mc34708_register_regulator(mc34708, MC34708_VUSB2, &vusb2_init); mc34708_register_regulator(mc34708, MC34708_VGEN1, &vgen1_init); mc34708_register_regulator(mc34708, MC34708_VGEN2, &vgen2_init); regulator_has_full_constraints(); return 0; }
static void __init u8500_init_machine(void) { struct device *parent = NULL; int i2c0_devs; int i; /* Pinmaps must be in place before devices register */ if (of_machine_is_compatible("st-ericsson,mop500")) mop500_pinmaps_init(); else if (of_machine_is_compatible("calaosystems,snowball-a9500")) snowball_pinmaps_init(); else if (of_machine_is_compatible("st-ericsson,hrefv60+")) hrefv60_pinmaps_init(); parent = u8500_of_init_devices(); for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) mop500_platform_devs[i]->dev.parent = parent; /* automatically probe child nodes of db8500 device */ of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent); if (of_machine_is_compatible("st-ericsson,mop500")) { mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); mop500_sdi_init(parent); mop500_audio_init(parent); i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); i2c_register_board_info(2, mop500_i2c2_devices, ARRAY_SIZE(mop500_i2c2_devices)); mop500_uib_init(); } else if (of_machine_is_compatible("calaosystems,snowball-a9500")) { mop500_of_audio_init(parent); } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) { /* * The HREFv60 board removed a GPIO expander and routed * all these GPIO pins to the internal GPIO controller * instead. */ mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; platform_add_devices(mop500_platform_devs, ARRAY_SIZE(mop500_platform_devs)); mop500_uib_init(); } /* This board has full regulator constraints */ regulator_has_full_constraints(); }
static int __init sa1100_init(void) { pm_power_off = sa1100_power_off; if (sa11x0pcmcia_legacy) platform_device_register(&sa11x0pcmcia_device); regulator_has_full_constraints(); return platform_add_devices(sa11x0_devices, ARRAY_SIZE(sa11x0_devices)); }
static void __init jasper_init(void) { mfp_config(ARRAY_AND_SIZE(jasper_pin_config)); /* on-chip devices */ mmp2_add_uart(1); mmp2_add_uart(3); mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(jasper_twsi1_info)); regulator_has_full_constraints(); }
void __init u300_i2c_register_board_devices(void) { i2c_register_board_info(0, bus0_i2c_board_info, ARRAY_SIZE(bus0_i2c_board_info)); /* * This makes the core shut down all unused regulators * after all the initcalls have completed. */ regulator_has_full_constraints(); i2c_register_board_info(1, bus1_i2c_board_info, ARRAY_SIZE(bus1_i2c_board_info)); }
void __init msm8974_init(void) { struct of_dev_auxdata *adata = msm8974_auxdata_lookup; if (socinfo_init() < 0) pr_err("%s: socinfo_init() failed\n", __func__); msm_8974_init_gpiomux(); regulator_has_full_constraints(); board_dt_populate(adata); msm8974_add_drivers(); }
static void __init jasper_init(void) { mfp_config(ARRAY_AND_SIZE(jasper_pin_config)); /* on-chip devices */ mmp2_add_uart(1); mmp2_add_uart(3); mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(jasper_twsi1_info)); mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */ regulator_has_full_constraints(); }