[PATCH RFC 2/3] power: mxs_power: add driver for mxs power subsystem
From: Stefan Wahren <hidden>
Date: 2015-02-03 20:41:27
Also in:
linux-devicetree, linux-pm
Hi Sebastian,
Sebastian Reichel [off-list ref] hat am 28. Januar 2015 um 23:59 geschrieben: Hi, On Wed, Jan 28, 2015 at 11:22:05PM +0100, Stefan Wahren wrote:quoted
quoted
Mark Brown [off-list ref] hat am 27. Januar 2015 um 20:43 geschrieben: On Tue, Jan 27, 2015 at 07:35:09PM +0100, Stefan Wahren wrote:changing the switching frequency is not a common feature for this IC. In most cases the clock for the DC-DC switching frequency runs at 24 MHz (ref_xtal). Unfortunatelly this could cause interferences for example in UHF band. So switching to ref_pll and changing clock divider is a option to avoid such interferences without changing hardware. I decided to implement it as a module parameter, because i see it's a configuration option.I think its best to use a DT property then. That way it can be set appropiatly for boards known to use a band, which could have interference problems. So just add a simple property (without a subnode). If I understand Mark correctly, there's a high chance more drivers will need to describe the switching frequency, so I suggest to use a vendor independent property name: switching-frequency = <12345>;
i'm not sure. So here is the complete current state (power and regulator binding
from imx28.dtsi) including my suggestion for the new property:
power: power at 80044000 {
compatible = "fsl,imx28-power"; /* handled by mxs_power.c */
#address-cells = <1>;
#size-cells = <1>;
reg = <0x80044000 0x2000>;
interrupts = <6>;
switching-frequency = <24000000>; /* new property */
ranges;
reg_vddd: regulator at 80044040 {
reg = <0x80044040 0x10>,
<0x80044010 0x10>,
<0x800440c0 0x10>;
reg-names = "base-address",
"v5ctrl-address",
"status-address";
compatible = "fsl,imx28-vddd"; /* handled by mxs-regulator.c */
regulator-name = "vddd";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1550000>;
vddd-supply = <®_vdda>;
};
reg_vdda: regulator at 80044050 {
reg = <0x80044050 0x10>,
<0x80044010 0x10>,
<0x800440c0 0x10>;
reg-names = "base-address",
"v5ctrl-address",
"status-address";
compatible = "fsl,imx28-vdda"; /* handled by mxs-regulator.c */
regulator-name = "vdda";
regulator-min-microvolt = <1725000>;
regulator-max-microvolt = <1950000>;
vdda-supply = <®_vddio>;
};
reg_vddio: regulator at 80044060 {
reg = <0x80044060 0x10>,
<0x80044010 0x10>,
<0x800440c0 0x10>;
reg-names = "base-address",
"v5ctrl-address",
"status-address";
compatible = "fsl,imx28-vddio"; /* handled by mxs-regulator.c */
regulator-name = "vddio";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3575000>;
regulator-microvolt-offset = <80000>;
};
};
Please correct me if i'm wrong.
Stefan
-- Sebastian _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel