Convert the regulator bindings to yaml.
Drop one twl5030 compatible due to no documentation on mfd side and no
users of the twl5030.
Signed-off-by: Andreas Kemnade <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
---
Changes in v4:
- remove a sentence in the commit message which only applies
to v1 design
- add R-by
Changes in v3:
- define regulator stuff in toplevel
- simplified regulator-inital-mode
- extended example to contain both regulator-initial-mode and
retain-on-reset
Changes in v2:
- add regulators directly to ti,twl.yaml
- less restrictions on regulator node name
.../devicetree/bindings/mfd/ti,twl.yaml | 166 +++++++++++++++++-
.../bindings/regulator/twl-regulator.txt | 80 ---------
2 files changed, 164 insertions(+), 82 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/regulator/twl-regulator.txt
diff --git a/Documentation/devicetree/bindings/mfd/ti,twl.yaml b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
index c2357fecb56c..2cbdd238f48f 100644
--- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
+++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
@@ -22,6 +22,32 @@ allOf:
contains:
const: ti,twl4030
then:
+ patternProperties:
+ "^regulator-":
+ properties:
+ compatible:
+ enum:
+ - ti,twl4030-vaux1
+ - ti,twl4030-vaux2
+ - ti,twl4030-vaux3
+ - ti,twl4030-vaux4
+ - ti,twl4030-vmmc1
+ - ti,twl4030-vmmc2
+ - ti,twl4030-vpll1
+ - ti,twl4030-vpll2
+ - ti,twl4030-vsim
+ - ti,twl4030-vdac
+ - ti,twl4030-vintana2
+ - ti,twl4030-vio
+ - ti,twl4030-vdd1
+ - ti,twl4030-vdd2
+ - ti,twl4030-vintana1
+ - ti,twl4030-vintdig
+ - ti,twl4030-vusb1v5
+ - ti,twl4030-vusb1v8
+ - ti,twl4030-vusb3v1
+ ti,retain-on-reset: false
+
properties:
madc:
type: object
@@ -50,13 +76,34 @@ allOf:
properties:
compatible:
const: ti,twl4030-wdt
-
- if:
properties:
compatible:
contains:
const: ti,twl6030
then:
+ patternProperties:
+ "^regulator-":
+ properties:
+ compatible:
+ enum:
+ - ti,twl6030-vaux1
+ - ti,twl6030-vaux2
+ - ti,twl6030-vaux3
+ - ti,twl6030-vmmc
+ - ti,twl6030-vpp
+ - ti,twl6030-vusim
+ - ti,twl6030-vana
+ - ti,twl6030-vcxio
+ - ti,twl6030-vdac
+ - ti,twl6030-vusb
+ - ti,twl6030-v1v8
+ - ti,twl6030-v2v1
+ - ti,twl6030-vdd1
+ - ti,twl6030-vdd2
+ - ti,twl6030-vdd3
+ regulator-initial-mode: false
+
properties:
gpadc:
type: object
@@ -69,6 +116,25 @@ allOf:
contains:
const: ti,twl6032
then:
+ patternProperties:
+ "^regulator-":
+ properties:
+ compatible:
+ enum:
+ - ti,twl6032-ldo1
+ - ti,twl6032-ldo2
+ - ti,twl6032-ldo3
+ - ti,twl6032-ldo4
+ - ti,twl6032-ldo5
+ - ti,twl6032-ldo6
+ - ti,twl6032-ldo7
+ - ti,twl6032-ldoln
+ - ti,twl6032-ldousb
+ - ti,twl6032-smps3
+ - ti,twl6032-smps4
+ - ti,twl6032-vio
+ regulator-initial-mode: false
+
properties:
gpadc:
type: object
@@ -112,6 +178,27 @@ properties:
interrupts:
maxItems: 1
+patternProperties:
+ "^regulator-":
+ type: object
+ unevaluatedProperties: false
+ $ref: /schemas/regulator/regulator.yaml
+ properties:
+ compatible: true
+ regulator-initial-mode:
+ enum:
+ - 0x08 # Sleep mode, the nominal output voltage is maintained
+ # with low power consumption with low load current capability
+ - 0x0e # Active mode, the regulator can deliver its nominal output
+ # voltage with full-load current capability
+ ti,retain-on-reset:
+ description:
+ Does not turn off the supplies during warm
+ reset. Could be needed for VMMC, as TWL6030
+ reset sequence for this signal does not comply
+ with the SD specification.
+ type: boolean
+
unevaluatedProperties: false
required:
@@ -131,9 +218,84 @@ examples:
compatible = "ti,twl6030";
reg = <0x48>;
interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
+ interrupt-parent = <&gic>;
interrupt-controller;
#interrupt-cells = <1>;
- interrupt-parent = <&gic>;
+
+ gpadc {
+ compatible = "ti,twl6030-gpadc";
+ interrupts = <6>;
+ };
+
+ rtc {
+ compatible = "ti,twl4030-rtc";
+ interrupts = <8>;
+ };
+
+ regulator-vaux1 {
+ compatible = "ti,twl6030-vaux1";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <3000000>;
+ };
+
+ regulator-vmmc1 {
+ compatible = "ti,twl6030-vmmc";
+ ti,retain-on-reset;
+ };
};
};
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@48 {
+ compatible = "ti,twl4030";
+ reg = <0x48>;
+ interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+ interrupt-parent = <&intc>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ bci {
+ compatible = "ti,twl4030-bci";
+ interrupts = <9>, <2>;
+ bci3v1-supply = <&vusb3v1>;
+ io-channels = <&twl_madc 11>;
+ io-channel-names = "vac";
+ };
+
+ twl_madc: madc {
+ compatible = "ti,twl4030-madc";
+ interrupts = <3>;
+ #io-channel-cells = <1>;
+ };
+
+ pwrbutton {
+ compatible = "ti,twl4030-pwrbutton";
+ interrupts = <8>;
+ };
+
+ rtc {
+ compatible = "ti,twl4030-rtc";
+ interrupts = <11>;
+ };
+
+ regulator-vaux1 {
+ compatible = "ti,twl4030-vaux1";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <0xe>;
+ };
+
+ vusb3v1: regulator-vusb3v1 {
+ compatible = "ti,twl4030-vusb3v1";
+ };
+
+ watchdog {
+ compatible = "ti,twl4030-wdt";
+ };
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/regulator/twl-regulator.txt b/Documentation/devicetree/bindings/regulator/twl-regulator.txt
deleted file mode 100644
index 549f80436deb..000000000000
--- a/Documentation/devicetree/bindings/regulator/twl-regulator.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-TWL family of regulators
-
-Required properties:
-For twl6030 regulators/LDOs
-- compatible:
- - "ti,twl6030-vaux1" for VAUX1 LDO
- - "ti,twl6030-vaux2" for VAUX2 LDO
- - "ti,twl6030-vaux3" for VAUX3 LDO
- - "ti,twl6030-vmmc" for VMMC LDO
- - "ti,twl6030-vpp" for VPP LDO
- - "ti,twl6030-vusim" for VUSIM LDO
- - "ti,twl6030-vana" for VANA LDO
- - "ti,twl6030-vcxio" for VCXIO LDO
- - "ti,twl6030-vdac" for VDAC LDO
- - "ti,twl6030-vusb" for VUSB LDO
- - "ti,twl6030-v1v8" for V1V8 LDO
- - "ti,twl6030-v2v1" for V2V1 LDO
- - "ti,twl6030-vdd1" for VDD1 SMPS
- - "ti,twl6030-vdd2" for VDD2 SMPS
- - "ti,twl6030-vdd3" for VDD3 SMPS
-For twl6032 regulators/LDOs
-- compatible:
- - "ti,twl6032-ldo1" for LDO1 LDO
- - "ti,twl6032-ldo2" for LDO2 LDO
- - "ti,twl6032-ldo3" for LDO3 LDO
- - "ti,twl6032-ldo4" for LDO4 LDO
- - "ti,twl6032-ldo5" for LDO5 LDO
- - "ti,twl6032-ldo6" for LDO6 LDO
- - "ti,twl6032-ldo7" for LDO7 LDO
- - "ti,twl6032-ldoln" for LDOLN LDO
- - "ti,twl6032-ldousb" for LDOUSB LDO
- - "ti,twl6032-smps3" for SMPS3 SMPS
- - "ti,twl6032-smps4" for SMPS4 SMPS
- - "ti,twl6032-vio" for VIO SMPS
-For twl4030 regulators/LDOs
-- compatible:
- - "ti,twl4030-vaux1" for VAUX1 LDO
- - "ti,twl4030-vaux2" for VAUX2 LDO
- - "ti,twl5030-vaux2" for VAUX2 LDO
- - "ti,twl4030-vaux3" for VAUX3 LDO
- - "ti,twl4030-vaux4" for VAUX4 LDO
- - "ti,twl4030-vmmc1" for VMMC1 LDO
- - "ti,twl4030-vmmc2" for VMMC2 LDO
- - "ti,twl4030-vpll1" for VPLL1 LDO
- - "ti,twl4030-vpll2" for VPLL2 LDO
- - "ti,twl4030-vsim" for VSIM LDO
- - "ti,twl4030-vdac" for VDAC LDO
- - "ti,twl4030-vintana2" for VINTANA2 LDO
- - "ti,twl4030-vio" for VIO LDO
- - "ti,twl4030-vdd1" for VDD1 SMPS
- - "ti,twl4030-vdd2" for VDD2 SMPS
- - "ti,twl4030-vintana1" for VINTANA1 LDO
- - "ti,twl4030-vintdig" for VINTDIG LDO
- - "ti,twl4030-vusb1v5" for VUSB1V5 LDO
- - "ti,twl4030-vusb1v8" for VUSB1V8 LDO
- - "ti,twl4030-vusb3v1" for VUSB3V1 LDO
-
-Optional properties:
-- Any optional property defined in bindings/regulator/regulator.txt
-For twl4030 regulators/LDOs:
- - regulator-initial-mode:
- - 0x08 - Sleep mode, the nominal output voltage is maintained with low power
- consumption with low load current capability.
- - 0x0e - Active mode, the regulator can deliver its nominal output voltage
- with full-load current capability.
-
-Example:
-
- xyz: regulator@0 {
- compatible = "ti,twl6030-vaux1";
- regulator-min-microvolt = <1000000>;
- regulator-max-microvolt = <3000000>;
- };
-
-For twl6030 regulators/LDOs:
-
- - ti,retain-on-reset: Does not turn off the supplies during warm
- reset. Could be needed for VMMC, as TWL6030
- reset sequence for this signal does not comply
- with the SD specification.
--
2.39.2
On Thu, 06 Jun 2024 13:16:11 +0200, Andreas Kemnade wrote:
> Convert the regulator bindings to yaml.
>
> Drop one twl5030 compatible due to no documentation on mfd side and no
> users of the twl5030.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
Thanks!
[1/1] dt-bindings: regulator: twl-regulator: convert to yaml
commit: 62e4f339619701c4e16b47438ae7529532c28e23
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
On Thu, Jun 6, 2024 at 5:16 AM Andreas Kemnade <[email protected]> wrote:
>
> Convert the regulator bindings to yaml.
>
> Drop one twl5030 compatible due to no documentation on mfd side and no
> users of the twl5030.
>
> Signed-off-by: Andreas Kemnade <[email protected]>
> Reviewed-by: Krzysztof Kozlowski <[email protected]>
> ---
> Changes in v4:
> - remove a sentence in the commit message which only applies
> to v1 design
> - add R-by
>
> Changes in v3:
> - define regulator stuff in toplevel
> - simplified regulator-inital-mode
> - extended example to contain both regulator-initial-mode and
> retain-on-reset
>
> Changes in v2:
> - add regulators directly to ti,twl.yaml
> - less restrictions on regulator node name
>
> .../devicetree/bindings/mfd/ti,twl.yaml | 166 +++++++++++++++++-
> .../bindings/regulator/twl-regulator.txt | 80 ---------
> 2 files changed, 164 insertions(+), 82 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/regulator/twl-regulator.txt
>
> diff --git a/Documentation/devicetree/bindings/mfd/ti,twl.yaml b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> index c2357fecb56c..2cbdd238f48f 100644
> --- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> +++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> @@ -22,6 +22,32 @@ allOf:
> contains:
> const: ti,twl4030
> then:
> + patternProperties:
> + "^regulator-":
> + properties:
> + compatible:
> + enum:
> + - ti,twl4030-vaux1
> + - ti,twl4030-vaux2
> + - ti,twl4030-vaux3
> + - ti,twl4030-vaux4
> + - ti,twl4030-vmmc1
> + - ti,twl4030-vmmc2
> + - ti,twl4030-vpll1
> + - ti,twl4030-vpll2
> + - ti,twl4030-vsim
> + - ti,twl4030-vdac
> + - ti,twl4030-vintana2
> + - ti,twl4030-vio
> + - ti,twl4030-vdd1
> + - ti,twl4030-vdd2
> + - ti,twl4030-vintana1
> + - ti,twl4030-vintdig
> + - ti,twl4030-vusb1v5
> + - ti,twl4030-vusb1v8
> + - ti,twl4030-vusb3v1
> + ti,retain-on-reset: false
> +
> properties:
> madc:
> type: object
> @@ -50,13 +76,34 @@ allOf:
> properties:
> compatible:
> const: ti,twl4030-wdt
> -
> - if:
> properties:
> compatible:
> contains:
> const: ti,twl6030
> then:
> + patternProperties:
> + "^regulator-":
> + properties:
> + compatible:
> + enum:
> + - ti,twl6030-vaux1
> + - ti,twl6030-vaux2
> + - ti,twl6030-vaux3
> + - ti,twl6030-vmmc
> + - ti,twl6030-vpp
> + - ti,twl6030-vusim
> + - ti,twl6030-vana
> + - ti,twl6030-vcxio
> + - ti,twl6030-vdac
> + - ti,twl6030-vusb
> + - ti,twl6030-v1v8
> + - ti,twl6030-v2v1
> + - ti,twl6030-vdd1
> + - ti,twl6030-vdd2
> + - ti,twl6030-vdd3
> + regulator-initial-mode: false
> +
> properties:
> gpadc:
> type: object
> @@ -69,6 +116,25 @@ allOf:
> contains:
> const: ti,twl6032
> then:
> + patternProperties:
> + "^regulator-":
> + properties:
> + compatible:
> + enum:
> + - ti,twl6032-ldo1
> + - ti,twl6032-ldo2
> + - ti,twl6032-ldo3
> + - ti,twl6032-ldo4
> + - ti,twl6032-ldo5
> + - ti,twl6032-ldo6
> + - ti,twl6032-ldo7
> + - ti,twl6032-ldoln
> + - ti,twl6032-ldousb
> + - ti,twl6032-smps3
> + - ti,twl6032-smps4
> + - ti,twl6032-vio
> + regulator-initial-mode: false
> +
> properties:
> gpadc:
> type: object
> @@ -112,6 +178,27 @@ properties:
> interrupts:
> maxItems: 1
>
> +patternProperties:
> + "^regulator-":
> + type: object
> + unevaluatedProperties: false
> + $ref: /schemas/regulator/regulator.yaml
> + properties:
> + compatible: true
> + regulator-initial-mode:
> + enum:
> + - 0x08 # Sleep mode, the nominal output voltage is maintained
> + # with low power consumption with low load current capability
> + - 0x0e # Active mode, the regulator can deliver its nominal output
> + # voltage with full-load current capability
> + ti,retain-on-reset:
> + description:
> + Does not turn off the supplies during warm
> + reset. Could be needed for VMMC, as TWL6030
> + reset sequence for this signal does not comply
> + with the SD specification.
> + type: boolean
> +
> unevaluatedProperties: false
>
> required:
> @@ -131,9 +218,84 @@ examples:
> compatible = "ti,twl6030";
> reg = <0x48>;
> interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
> + interrupt-parent = <&gic>;
> interrupt-controller;
> #interrupt-cells = <1>;
> - interrupt-parent = <&gic>;
> +
> + gpadc {
> + compatible = "ti,twl6030-gpadc";
> + interrupts = <6>;
Now a warning in linux-next:
Documentation/devicetree/bindings/mfd/ti,twl.example.dtb: gpadc:
'#io-channel-cells' is a required property
from schema $id:
http://devicetree.org/schemas/iio/adc/ti,twl6030-gpadc.yaml#