lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ