[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250905-chirpy-utopian-platypus-bea05f@kuoka>
Date: Fri, 5 Sep 2025 09:47:01 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Woodrow Douglass <wdouglass@...negierobotics.com>
Cc: Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, linux-kernel@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [PATCH v6 2/2] regulator: pf530x: Add a driver for the NXP
PF5300 Regulator
On Thu, Sep 04, 2025 at 04:44:36PM -0400, Woodrow Douglass wrote:
> +
> +static const struct regulator_ops pf530x_regulator_ops = {
> + .enable = regulator_enable_regmap,
> + .disable = regulator_disable_regmap,
> + .is_enabled = regulator_is_enabled_regmap,
> + .map_voltage = regulator_map_voltage_linear_range,
> + .list_voltage = regulator_list_voltage_linear_range,
> + .set_voltage_sel = regulator_set_voltage_sel_regmap,
> + .get_voltage_sel = regulator_get_voltage_sel_regmap,
> + .get_status = pf530x_get_status,
> + .get_error_flags = pf530x_get_error_flags,
> + .set_bypass = regulator_set_bypass_regmap,
> + .get_bypass = regulator_get_bypass_regmap,
> +};
> +
> +static struct linear_range vrange = REGULATOR_LINEAR_RANGE(500000, 0, 140, 5000);
This looks like could be const
> +
> +static struct regulator_desc pf530x_reg_desc = {
This as well (unless I missed something)
> + .name = "SW1",
> + .ops = &pf530x_regulator_ops,
> + .linear_ranges = &vrange,
> + .n_linear_ranges = 1,
> + .type = REGULATOR_VOLTAGE,
> + .id = 0,
> + .owner = THIS_MODULE,
> + .vsel_reg = PF530X_SW1_VOLT,
> + .vsel_mask = 0xFF,
> + .bypass_reg = PF530X_SW1_CTRL2,
> + .bypass_mask = 0x07,
> + .bypass_val_on = 0x07,
> + .bypass_val_off = 0x00,
> + .enable_reg = PF530X_SW1_CTRL1,
> + .enable_mask = GENMASK(5, 2),
> + .enable_val = GENMASK(5, 2),
> + .disable_val = 0,
> +};
> +
...
> + config.dev = chip->dev;
> + config.driver_data = &pf530x_reg_desc;
> + config.of_node = chip->dev->of_node;
> + config.regmap = chip->regmap;
> + config.init_data = init_data;
> +
> + // the config parameter gets copied, it's ok to pass a pointer on the stack here
> + rdev = devm_regulator_register(&client->dev, &pf530x_reg_desc, &config);
> + if (IS_ERR(rdev)) {
> + dev_err(&client->dev, "failed to register %s regulator\n", pf530x_reg_desc.name);
> + return PTR_ERR(rdev);
> + }
> +
> + return 0;
> +}
> +
> +static const struct of_device_id pf530x_dt_ids[] = {
> + { .compatible = "nxp,pf5300",},
> + { .compatible = "nxp,pf5301",},
Drop
> + { .compatible = "nxp,pf5302",},
Drop, that's the point of compatibility - less clutter in the drivers.
Best regards,
Krzysztof
Powered by blists - more mailing lists