Loading drivers/regulator/arizona-ldo1.c +24 −3 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ struct arizona_ldo1 { struct regulator_consumer_supply supply; struct regulator_init_data init_data; struct gpio_desc *ena_gpiod; }; static int arizona_ldo1_hc_list_voltage(struct regulator_dev *rdev, Loading Loading @@ -253,12 +255,17 @@ static int arizona_ldo1_common_init(struct platform_device *pdev, } } /* We assume that high output = regulator off */ config.ena_gpiod = devm_gpiod_get_optional(&pdev->dev, "wlf,ldoena", GPIOD_OUT_HIGH); /* We assume that high output = regulator off * Don't use devm, since we need to get against the parent device * so clean up would happen at the wrong time */ config.ena_gpiod = gpiod_get_optional(parent_dev, "wlf,ldoena", GPIOD_OUT_LOW); if (IS_ERR(config.ena_gpiod)) return PTR_ERR(config.ena_gpiod); ldo1->ena_gpiod = config.ena_gpiod; if (pdata->init_data) config.init_data = pdata->init_data; else Loading @@ -276,6 +283,9 @@ static int arizona_ldo1_common_init(struct platform_device *pdev, of_node_put(config.of_node); if (IS_ERR(ldo1->regulator)) { if (config.ena_gpiod) gpiod_put(config.ena_gpiod); ret = PTR_ERR(ldo1->regulator); dev_err(&pdev->dev, "Failed to register LDO1 supply: %d\n", ret); Loading Loading @@ -334,8 +344,19 @@ static int arizona_ldo1_probe(struct platform_device *pdev) return ret; } static int arizona_ldo1_remove(struct platform_device *pdev) { struct arizona_ldo1 *ldo1 = platform_get_drvdata(pdev); if (ldo1->ena_gpiod) gpiod_put(ldo1->ena_gpiod); return 0; } static struct platform_driver arizona_ldo1_driver = { .probe = arizona_ldo1_probe, .remove = arizona_ldo1_remove, .driver = { .name = "arizona-ldo1", }, Loading Loading
drivers/regulator/arizona-ldo1.c +24 −3 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ struct arizona_ldo1 { struct regulator_consumer_supply supply; struct regulator_init_data init_data; struct gpio_desc *ena_gpiod; }; static int arizona_ldo1_hc_list_voltage(struct regulator_dev *rdev, Loading Loading @@ -253,12 +255,17 @@ static int arizona_ldo1_common_init(struct platform_device *pdev, } } /* We assume that high output = regulator off */ config.ena_gpiod = devm_gpiod_get_optional(&pdev->dev, "wlf,ldoena", GPIOD_OUT_HIGH); /* We assume that high output = regulator off * Don't use devm, since we need to get against the parent device * so clean up would happen at the wrong time */ config.ena_gpiod = gpiod_get_optional(parent_dev, "wlf,ldoena", GPIOD_OUT_LOW); if (IS_ERR(config.ena_gpiod)) return PTR_ERR(config.ena_gpiod); ldo1->ena_gpiod = config.ena_gpiod; if (pdata->init_data) config.init_data = pdata->init_data; else Loading @@ -276,6 +283,9 @@ static int arizona_ldo1_common_init(struct platform_device *pdev, of_node_put(config.of_node); if (IS_ERR(ldo1->regulator)) { if (config.ena_gpiod) gpiod_put(config.ena_gpiod); ret = PTR_ERR(ldo1->regulator); dev_err(&pdev->dev, "Failed to register LDO1 supply: %d\n", ret); Loading Loading @@ -334,8 +344,19 @@ static int arizona_ldo1_probe(struct platform_device *pdev) return ret; } static int arizona_ldo1_remove(struct platform_device *pdev) { struct arizona_ldo1 *ldo1 = platform_get_drvdata(pdev); if (ldo1->ena_gpiod) gpiod_put(ldo1->ena_gpiod); return 0; } static struct platform_driver arizona_ldo1_driver = { .probe = arizona_ldo1_probe, .remove = arizona_ldo1_remove, .driver = { .name = "arizona-ldo1", }, Loading