Re: [PATCH] regulator: adding disable options for regulator-always-on and regulator-boots-on

From: Krzysztof KozÅowski
Date: Tue Nov 04 2014 - 09:11:33 EST


On 04.11.2014 09:20, Hugh Kang wrote:
> Hello
>
> On 2014ë 11ì 03ì 21:03, Mark Brown wrote:
>> On Mon, Nov 03, 2014 at 10:26:43AM +0900, Hugh Kang wrote:
>>> From: "hugh.kang" <hugh.kang@xxxxxxx>
>>>
>>> If a regulator is set by always-on option, the regulator will be set forever.
>>> For example, suppose LDO1 is set to always-on at RevA.dts with including of a.dtsi. After that
>>> RevB.dts may wants to include the same a.dtsi but override the LDO1 always-on option. However,
>>> currently there is no way to delete the always-on option, even when we change the LDO1 option value,
>>> the always-on setting is still remains.
>> This sounds like a problem with the way the DTSs have been written - I'd
>> expect the thing to do here is just to move the property to the rev A
>> DTS when rev B is created. Why is that not the way forward?
>>
>> Otherwise this is an issue which affects any boolean property in the DT
>> so if it's something we need to fix we should be fixing it in a generic
>> fashion that will work for other properties too.
>
> I understand that I could make Rev.B with b.dtsi due to LDOs option is different. However, aim to use device tree is that making easy steps. Refer to dts option, if you set to be set status disabled option, the driver dose not probe when the system boot up. Even though, the system has different board revision exist. So dts have to be no corrupts any overlap situation.
> I have mentions the simple example to change only one LDOs. However, if someone want to edit many regulators with similar configuration, he has to do lots of copy and paste works. Because he has to create new dts file. So I would suggest to make it as simple as I could.
>
> Also, I have somehow agree with you that affects any boolean property in the DT.

Now you propose to have a final DTS like:
$ scripts/dtc/dtc -I dtb -O dts
reg {
regulator-name = "vdd";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
regulator-disable-always-on;
};
Which one of "always-on" is more important? Later one could add
"regulator-enable-always-even-if-disable-always-on;" ...

The "status" property can be overridden. So maybe the new property
should behave the same way? Something like:
dts-common {
regulator-status-on = "always-on";
regulator-boot-on = "boot-on";
}
dst-rev-b {
regulator-status-on = "default";
regulator-boot-on = "default";
}

Best regards,
Krzysztof

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/