Esempio n. 1
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 == 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;
}
Esempio n. 2
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;
}
Esempio n. 4
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;
}