Lines Matching +full:dvs +full:- +full:default +full:- +full:state
1 // SPDX-License-Identifier: GPL-2.0-only
89 /* Default DVS Mode */
93 /* dump registers in regmap-debugfs */
161 ret = regmap_read(lp->regmap, addr, &val); in lp872x_read_byte()
163 dev_err(lp->dev, "failed to read 0x%.2x\n", addr); in lp872x_read_byte()
173 return regmap_write(lp->regmap, addr, data); in lp872x_write_byte()
179 return regmap_update_bits(lp->regmap, addr, mask, data); in lp872x_update_bits()
184 enum lp872x_id chip = lp->chipid; in lp872x_get_timestep_usec()
203 default: in lp872x_get_timestep_usec()
204 return -EINVAL; in lp872x_get_timestep_usec()
213 return -EINVAL; in lp872x_get_timestep_usec()
234 addr = LP872X_LDO1_VOUT + rid - LP8725_ID_BASE; in lp872x_regulator_enable_time()
239 default: in lp872x_regulator_enable_time()
240 return -EINVAL; in lp872x_regulator_enable_time()
255 enum lp872x_dvs_state state; in lp872x_set_dvs() local
257 state = dvs_sel == SEL_V1 ? DVS_HIGH : DVS_LOW; in lp872x_set_dvs()
258 gpio_set_value(gpio, state); in lp872x_set_dvs()
259 lp->dvs_pin = state; in lp872x_set_dvs()
273 addr = (lp->dvs_pin == DVS_HIGH) ? in lp872x_select_buck_vout_addr()
287 addr = (lp->dvs_pin == DVS_HIGH) ? in lp872x_select_buck_vout_addr()
294 default: in lp872x_select_buck_vout_addr()
311 default: in lp872x_is_valid_buck_addr()
322 struct lp872x_dvs *dvs = lp->pdata ? lp->pdata->dvs : NULL; in lp872x_buck_set_voltage_sel() local
324 if (dvs && gpio_is_valid(dvs->gpio)) in lp872x_buck_set_voltage_sel()
325 lp872x_set_dvs(lp, dvs->vsel, dvs->gpio); in lp872x_buck_set_voltage_sel()
329 return -EINVAL; in lp872x_buck_set_voltage_sel()
343 return -EINVAL; in lp872x_buck_get_voltage_sel()
374 default: in lp872x_buck_set_mode()
375 return -EINVAL; in lp872x_buck_set_mode()
383 return -EINVAL; in lp872x_buck_set_mode()
408 default: in lp872x_buck_get_mode()
409 return -EINVAL; in lp872x_buck_get_mode()
679 struct lp872x_dvs *dvs = lp->pdata ? lp->pdata->dvs : NULL; in lp872x_init_dvs() local
684 if (!dvs) in lp872x_init_dvs()
687 gpio = dvs->gpio; in lp872x_init_dvs()
691 pinstate = dvs->init_state; in lp872x_init_dvs()
692 ret = devm_gpio_request_one(lp->dev, gpio, pinstate, "LP872X DVS"); in lp872x_init_dvs()
694 dev_err(lp->dev, "gpio request err: %d\n", ret); in lp872x_init_dvs()
698 lp->dvs_pin = pinstate; in lp872x_init_dvs()
703 return lp872x_update_bits(lp, LP872X_GENERAL_CFG, mask[lp->chipid], in lp872x_init_dvs()
704 default_dvs_mode[lp->chipid]); in lp872x_init_dvs()
711 if (!lp->pdata) in lp872x_hw_enable()
712 return -EINVAL; in lp872x_hw_enable()
714 gpio = lp->pdata->enable_gpio; in lp872x_hw_enable()
719 ret = devm_gpio_request_one(lp->dev, gpio, GPIOF_OUT_INIT_HIGH, "LP872X EN"); in lp872x_hw_enable()
721 dev_err(lp->dev, "gpio request err: %d\n", ret); in lp872x_hw_enable()
726 if (lp->chipid == LP8720) in lp872x_hw_enable()
736 struct lp872x_platform_data *pdata = lp->pdata; in lp872x_config()
739 if (!pdata || !pdata->update_config) in lp872x_config()
742 ret = lp872x_write_byte(lp, LP872X_GENERAL_CFG, pdata->general_config); in lp872x_config()
753 struct lp872x_platform_data *pdata = lp->pdata; in lp872x_find_regulator_init_data()
759 for (i = 0; i < lp->num_regulators; i++) { in lp872x_find_regulator_init_data()
760 if (pdata->regulator_data[i].id == id) in lp872x_find_regulator_init_data()
761 return pdata->regulator_data[i].init_data; in lp872x_find_regulator_init_data()
774 for (i = 0; i < lp->num_regulators; i++) { in lp872x_regulator_register()
775 desc = (lp->chipid == LP8720) ? &lp8720_regulator_desc[i] : in lp872x_regulator_register()
778 cfg.dev = lp->dev; in lp872x_regulator_register()
779 cfg.init_data = lp872x_find_regulator_init_data(desc->id, lp); in lp872x_regulator_register()
781 cfg.regmap = lp->regmap; in lp872x_regulator_register()
783 rdev = devm_regulator_register(lp->dev, desc, &cfg); in lp872x_regulator_register()
785 dev_err(lp->dev, "regulator register err"); in lp872x_regulator_register()
827 struct device_node *np = dev->of_node; in lp872x_populate_pdata_from_dt()
837 return ERR_PTR(-ENOMEM); in lp872x_populate_pdata_from_dt()
839 of_property_read_u8(np, "ti,general-config", &pdata->general_config); in lp872x_populate_pdata_from_dt()
840 if (of_find_property(np, "ti,update-config", NULL)) in lp872x_populate_pdata_from_dt()
841 pdata->update_config = true; in lp872x_populate_pdata_from_dt()
843 pdata->dvs = devm_kzalloc(dev, sizeof(struct lp872x_dvs), GFP_KERNEL); in lp872x_populate_pdata_from_dt()
844 if (!pdata->dvs) in lp872x_populate_pdata_from_dt()
845 return ERR_PTR(-ENOMEM); in lp872x_populate_pdata_from_dt()
847 pdata->dvs->gpio = of_get_named_gpio(np, "ti,dvs-gpio", 0); in lp872x_populate_pdata_from_dt()
848 of_property_read_u8(np, "ti,dvs-vsel", (u8 *)&pdata->dvs->vsel); in lp872x_populate_pdata_from_dt()
849 of_property_read_u8(np, "ti,dvs-state", &dvs_state); in lp872x_populate_pdata_from_dt()
850 pdata->dvs->init_state = dvs_state ? DVS_HIGH : DVS_LOW; in lp872x_populate_pdata_from_dt()
852 pdata->enable_gpio = of_get_named_gpio(np, "enable-gpios", 0); in lp872x_populate_pdata_from_dt()
866 default: in lp872x_populate_pdata_from_dt()
875 pdata->regulator_data[i].id = in lp872x_populate_pdata_from_dt()
877 pdata->regulator_data[i].init_data = match[i].init_data; in lp872x_populate_pdata_from_dt()
900 if (cl->dev.of_node) { in lp872x_probe()
901 pdata = lp872x_populate_pdata_from_dt(&cl->dev, in lp872x_probe()
902 (enum lp872x_id)id->driver_data); in lp872x_probe()
906 pdata = dev_get_platdata(&cl->dev); in lp872x_probe()
909 lp = devm_kzalloc(&cl->dev, sizeof(struct lp872x), GFP_KERNEL); in lp872x_probe()
911 return -ENOMEM; in lp872x_probe()
913 lp->num_regulators = lp872x_num_regulators[id->driver_data]; in lp872x_probe()
915 lp->regmap = devm_regmap_init_i2c(cl, &lp872x_regmap_config); in lp872x_probe()
916 if (IS_ERR(lp->regmap)) { in lp872x_probe()
917 ret = PTR_ERR(lp->regmap); in lp872x_probe()
918 dev_err(&cl->dev, "regmap init i2c err: %d\n", ret); in lp872x_probe()
922 lp->dev = &cl->dev; in lp872x_probe()
923 lp->pdata = pdata; in lp872x_probe()
924 lp->chipid = id->driver_data; in lp872x_probe()