void __init *mrfl_pmic_ccsm_platform_data(void *info) { struct sfi_device_table_entry *entry = info; static struct pmic_platform_data pmic_pdata; struct platform_device *pdev = NULL; int ret; pdev = platform_device_alloc(entry->name, -1); if (!pdev) { pr_err("Out of memory for SFI platform dev %s\n", entry->name); goto out; } pdev->dev.platform_data = &pmic_pdata; ret = platform_device_add(pdev); if (ret) { pr_err("Failed to add adc platform device\n"); platform_device_put(pdev); goto out; } install_irq_resource(pdev, entry->irq); #ifdef CONFIG_BQ24261_CHARGER pmic_pdata.cc_to_reg = bq24261_cc_to_reg; pmic_pdata.cv_to_reg = bq24261_cv_to_reg; #endif register_rpmsg_service("rpmsg_pmic_ccsm", RPROC_SCU, RP_PMIC_CCSM); out: return &pmic_pdata; }
void __init *mrfl_thermal_platform_data(void *info) { struct platform_device *pdev; struct sfi_device_table_entry *entry = info; pr_err("inside mrfl_thermal_platform_data\n"); pdev = platform_device_alloc(MRFL_THERM_DEV_NAME, -1); if (!pdev) { pr_err("out of memory for SFI platform dev %s\n", MRFL_THERM_DEV_NAME); return NULL; } if (platform_device_add(pdev)) { pr_err("failed to add thermal platform device\n"); platform_device_put(pdev); return NULL; } install_irq_resource(pdev, entry->irq); register_rpmsg_service("rpmsg_mrfl_thermal", RPROC_SCU, RP_BCOVE_THERMAL); return 0; }
void __init *mrfl_ocd_platform_data(void *info) { struct sfi_device_table_entry *entry = info; struct platform_device *pdev; pdev = platform_device_alloc(MRFL_OCD_DEV_NAME, -1); if (!pdev) { pr_err("out of memory for SFI platform dev %s\n", MRFL_OCD_DEV_NAME); return NULL; } if (platform_device_add(pdev)) { pr_err("failed to add merrifield ocd platform device\n"); platform_device_put(pdev); return NULL; } install_irq_resource(pdev, entry->irq); ocd_data.bcu_config_data = &get_bcu_config; pdev->dev.platform_data = &ocd_data; register_rpmsg_service("rpmsg_mrfl_ocd", RPROC_SCU, RP_MRFL_OCD); return &ocd_data; }
void __init *bcove_adc_platform_data(void *info) { struct platform_device *pdev = NULL; struct sfi_device_table_entry *entry = info; int ret; pdev = platform_device_alloc(BCOVE_ADC_DEV_NAME, -1); if (!pdev) { pr_err("out of memory for SFI platform dev %s\n", BCOVE_ADC_DEV_NAME); goto out; } if (INTEL_MID_BOARD(1, PHONE, MRFL) || INTEL_MID_BOARD(1, TABLET, MRFL)) { bcove_adc_pdata.channel_num = BCOVE_GPADC_CH_NUM; bcove_adc_pdata.intr = GPADC_SRAM_INTR_ADDR; bcove_adc_pdata.intr_mask = MBATTEMP | MSYSTEMP | MBATT | MVIBATT | MCCTICK; bcove_adc_pdata.gpadc_iio_maps = basincove_iio_maps; bcove_adc_pdata.gpadc_regmaps = basincove_gpadc_regmaps; bcove_adc_pdata.gpadc_regs = &basincove_gpadc_regs; bcove_adc_pdata.gpadc_channels = basincove_adc_channels; } else if (INTEL_MID_BOARD(1, PHONE, MOFD) || INTEL_MID_BOARD(1, TABLET, MOFD)) { bcove_adc_pdata.channel_num = SCOVE_GPADC_CH_NUM; bcove_adc_pdata.intr = GPADC_SRAM_INTR_ADDR; bcove_adc_pdata.intr_mask = MUSBID | MPEAK | MBATTEMP | MSYSTEMP | MBATT | MVIBATT | MGPMEAS | MCCTICK; bcove_adc_pdata.gpadc_iio_maps = shadycove_iio_maps; bcove_adc_pdata.gpadc_regmaps = shadycove_gpadc_regmaps; bcove_adc_pdata.gpadc_regs = &shadycove_gpadc_regs; bcove_adc_pdata.gpadc_channels = shadycove_adc_channels; } pdev->dev.platform_data = &bcove_adc_pdata; ret = platform_device_add(pdev); if (ret) { pr_err("failed to add bcove adc platform device\n"); platform_device_put(pdev); goto out; } install_irq_resource(pdev, entry->irq); register_rpmsg_service("rpmsg_bcove_adc", RPROC_SCU, RP_BCOVE_ADC); out: return &bcove_adc_pdata; }