static int __devinit axp_regulator_probe(struct platform_device *pdev) { struct axp_regulator_info *ri = NULL; struct regulator_dev *rdev; int ret; ri = find_regulator_info(pdev->id); if (ri == NULL) { dev_err(&pdev->dev, "invalid regulator ID specified\n"); return -EINVAL; } if (ri->desc.id == AXP15_ID_LDO4 || ri->desc.id == AXP15_ID_LDO5 \ ||ri->desc.id == AXP15_ID_DCDC2 \ ||ri->desc.id == AXP15_ID_DCDC3 ||ri->desc.id == AXP15_ID_DCDC4 \ ||ri->desc.id == AXP15_ID_LDO1 ||ri->desc.id == AXP15_ID_LDOIO0) { ri->desc.ops = &axp15_ops; printk("Register AXP15_OPS sucess!\n"); } if(ri->desc.id == AXP15_ID_LDO0) { ri->desc.ops = &axp15_ldo0_ops; printk("Register AXP15_ldo0_OPS finish!\n"); } if(ri->desc.id == AXP15_ID_LDO3 || ri->desc.id == AXP15_ID_LDO2) { ri->desc.ops = &axp15_aldo12_ops; printk("Register AXP15_aldo12_OPS finish!\n"); } if(ri->desc.id == AXP15_ID_DCDC1) { ri->desc.ops = &axp15_dcdc1_ops; printk("Register AXP15_dcdc1_OPS finish!\n"); } rdev = regulator_register(&ri->desc, &pdev->dev, pdev->dev.platform_data, ri, NULL); if (IS_ERR(rdev)) { dev_err(&pdev->dev, "failed to register regulator %s\n", ri->desc.name); return PTR_ERR(rdev); } platform_set_drvdata(pdev, rdev); if(ri->desc.id == AXP15_ID_DCDC1 ||ri->desc.id == AXP15_ID_DCDC2 \ ||ri->desc.id == AXP15_ID_DCDC3 ||ri->desc.id == AXP15_ID_DCDC4){ ret = axp_regu_create_attrs(pdev); if(ret){ return ret; } } return 0; }
static int __devinit axp_regulator_probe(struct platform_device *pdev) { struct axp_regulator_info *ri = NULL; struct regulator_dev *rdev; int ret; struct regulator_config config; ri = find_regulator_info(pdev->id); if (ri == NULL) { dev_err(&pdev->dev, "invalid regulator ID specified\n"); return -EINVAL; } if (ri->desc.id == AXP20_ID_LDO1 || ri->desc.id == AXP20_ID_LDO2 \ || ri->desc.id == AXP20_ID_LDO3 || ri->desc.id == AXP20_ID_BUCK2 \ ||ri->desc.id == AXP20_ID_BUCK3) ri->desc.ops = &axp20_ops; if(ri->desc.id == AXP20_ID_LDO4) ri->desc.ops = &axp20_ldo4_ops; if(ri->desc.id == AXP20_ID_LDOIO0) ri->desc.ops = &axp20_ldoio0_ops; config.dev = &pdev->dev; config.init_data = pdev->dev.platform_data; config.driver_data = dev_get_drvdata(&pdev->dev); config.regmap = NULL; rdev = regulator_register(&ri->desc, &config); if (IS_ERR(rdev)) { dev_err(&pdev->dev, "failed to register regulator %s\n", ri->desc.name); return PTR_ERR(rdev); } platform_set_drvdata(pdev, rdev); if(ri->desc.id == AXP20_ID_BUCK2 ||ri->desc.id == AXP20_ID_BUCK3) { ret = axp_regu_create_attrs(pdev); if(ret) { return ret; } } return 0; }
static int __devinit axp_regulator_probe(struct platform_device *pdev) { struct axp_regulator_info *ri = NULL; struct regulator_dev *rdev; int ret; ri = find_regulator_info(pdev->id); if (ri == NULL) { dev_err(&pdev->dev, "invalid regulator ID specified\n"); return -EINVAL; } if (ri->desc.id == AXP18_ID_LDO1 || ri->desc.id == AXP18_ID_LDO2 \ || ri->desc.id == AXP18_ID_LDO3 || ri->desc.id == AXP18_ID_LDO4 \ || ri->desc.id == AXP18_ID_LDO5 || ri->desc.id == AXP18_ID_BUCK1 \ || ri->desc.id == AXP18_ID_BUCK2 || ri->desc.id == AXP18_ID_BUCK3 \ || ri->desc.id == AXP18_ID_SW1 || ri->desc.id == AXP18_ID_SW2) ri->desc.ops = &axp18_ops; if(ri->desc.id == AXP18_ID_LDO5) ri->desc.n_voltages = ARRAY_SIZE(axp18_ldo5_data); rdev = regulator_register(&ri->desc, &pdev->dev, pdev->dev.platform_data, ri); if (IS_ERR(rdev)) { dev_err(&pdev->dev, "failed to register regulator %s\n", ri->desc.name); return PTR_ERR(rdev); } platform_set_drvdata(pdev, rdev); if(ri->desc.id == AXP18_ID_BUCK1 || ri->desc.id == AXP18_ID_BUCK2 \ ||ri->desc.id == AXP18_ID_BUCK3) { ret = axp_regu_create_attrs(pdev); if(ret) { return ret; } } return 0; }
static int __devinit axp_regulator_probe(struct platform_device *pdev) { struct regulator_dev *rdev; struct axp_reg_init * platform_data = (struct axp_reg_init *)(pdev->dev.platform_data); struct axp_regulator_info *info = platform_data->info; int ret; rdev = regulator_register(&info->desc, &pdev->dev, &(platform_data->axp_reg_init_data), info, NULL); if (IS_ERR(rdev)) { dev_err(&pdev->dev, "failed to register regulator %s\n", info->desc.name); return PTR_ERR(rdev); } platform_set_drvdata(pdev, rdev); if(info->desc.id == AXP20_ID_DCDC2 ||info->desc.id == AXP20_ID_DCDC3){ ret = axp_regu_create_attrs(pdev); if(ret){ return ret; } } return 0; }