2023-04-29 10:46:58

by Artur Weber

[permalink] [raw]
Subject: [PATCH 1/4] dt-bindings: backlight: lp855x: convert to YAML and modernize

Notable changes:
- ROM child nodes use dashes instead of underscores; the driver
reads all child nodes regardless of their names, so this doesn't
break ABI.
- pwm-period argument is deprecated, as it effectively duplicates
the period value provided in pwms. The driver continues to accept
the property, so this should not break ABI.

Signed-off-by: Artur Weber <[email protected]>
---
.../leds/backlight/lp855x-backlight.yaml | 148 ++++++++++++++++++
.../bindings/leds/backlight/lp855x.txt | 72 ---------
2 files changed, 148 insertions(+), 72 deletions(-)
create mode 100644 Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/backlight/lp855x.txt

diff --git a/Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml
new file mode 100644
index 000000000000..dfe8131d2a32
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml
@@ -0,0 +1,148 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/backlight/lp855x-backlight.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments LP855X backlight controllers
+
+maintainers:
+ - Artur Weber <[email protected]>
+
+properties:
+ compatible:
+ enum:
+ - ti,lp8550
+ - ti,lp8551
+ - ti,lp8552
+ - ti,lp8553
+ - ti,lp8555
+ - ti,lp8556
+ - ti,lp8557
+
+ reg:
+ maxItems: 1
+
+ dev-ctrl:
+ $ref: /schemas/types.yaml#/definitions/uint8
+ description:
+ Value of device control register. This is a device-specific value.
+
+ bl-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: Backlight device name.
+
+ init-brt:
+ $ref: /schemas/types.yaml#/definitions/uint8
+ description: Initial value of backlight brightness.
+
+ power-supply:
+ description: Regulator which controls the 3V rail.
+
+ enable-supply:
+ description: Regulator which controls the EN/VDDIO input.
+
+ pwms:
+ maxItems: 1
+ description: |
+ PWM channel to use for controlling the backlight; setting this
+ enables the PWM-based backlight control mode.
+
+ pwm-names: true
+
+ pwm-period:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ PWM period value. Deprecated; set the period value in the pwms
+ property instead.
+ deprecated: true
+
+patternProperties:
+ "^rom-[0-9a-f]{2}h$":
+ type: object
+ description: Nodes containing the values of configuration registers.
+ properties:
+ rom-addr:
+ $ref: /schemas/types.yaml#/definitions/uint8
+ description: Register address of ROM area to be updated.
+
+ rom-val:
+ $ref: /schemas/types.yaml#/definitions/uint8
+ description: Value to write to the ROM register.
+
+required:
+ - compatible
+ - reg
+ - dev-ctrl
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ backlight@2c {
+ compatible = "ti,lp8555";
+ reg = <0x2c>;
+
+ dev-ctrl = /bits/ 8 <0x00>;
+
+ pwms = <&pwm 0 10000>;
+ pwm-names = "lp8555";
+
+ /* 4V OV, 4 output LED0 string enabled */
+ rom-14h {
+ rom-addr = /bits/ 8 <0x14>;
+ rom-val = /bits/ 8 <0xcf>;
+ };
+
+ /* Heavy smoothing, 24ms ramp time step */
+ rom-15h {
+ rom-addr = /bits/ 8 <0x15>;
+ rom-val = /bits/ 8 <0xc7>;
+ };
+
+ /* 4 output LED1 string enabled */
+ rom-19h {
+ rom-addr = /bits/ 8 <0x19>;
+ rom-val = /bits/ 8 <0x0f>;
+ };
+ };
+ };
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ backlight@2c {
+ compatible = "ti,lp8556";
+ reg = <0x2c>;
+
+ bl-name = "lcd-bl";
+ dev-ctrl = /bits/ 8 <0x85>;
+ init-brt = /bits/ 8 <0x10>;
+ };
+ };
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ backlight@2c {
+ compatible = "ti,lp8557";
+ reg = <0x2c>;
+ enable-supply = <&backlight_vddio>;
+ power-supply = <&backlight_vdd>;
+
+ dev-ctrl = /bits/ 8 <0x41>;
+ init-brt = /bits/ 8 <0x0a>;
+
+ /* 4V OV, 4 output LED string enabled */
+ rom-14h {
+ rom-addr = /bits/ 8 <0x14>;
+ rom-val = /bits/ 8 <0xcf>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/leds/backlight/lp855x.txt b/Documentation/devicetree/bindings/leds/backlight/lp855x.txt
deleted file mode 100644
index 88f56641fc28..000000000000
--- a/Documentation/devicetree/bindings/leds/backlight/lp855x.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-lp855x bindings
-
-Required properties:
- - compatible: "ti,lp8550", "ti,lp8551", "ti,lp8552", "ti,lp8553",
- "ti,lp8555", "ti,lp8556", "ti,lp8557"
- - reg: I2C slave address (u8)
- - dev-ctrl: Value of DEVICE CONTROL register (u8). It depends on the device.
-
-Optional properties:
- - bl-name: Backlight device name (string)
- - init-brt: Initial value of backlight brightness (u8)
- - pwm-period: PWM period value. Set only PWM input mode used (u32)
- - rom-addr: Register address of ROM area to be updated (u8)
- - rom-val: Register value to be updated (u8)
- - power-supply: Regulator which controls the 3V rail
- - enable-supply: Regulator which controls the EN/VDDIO input
-
-Example:
-
- /* LP8555 */
- backlight@2c {
- compatible = "ti,lp8555";
- reg = <0x2c>;
-
- dev-ctrl = /bits/ 8 <0x00>;
- pwm-period = <10000>;
-
- /* 4V OV, 4 output LED0 string enabled */
- rom_14h {
- rom-addr = /bits/ 8 <0x14>;
- rom-val = /bits/ 8 <0xcf>;
- };
-
- /* Heavy smoothing, 24ms ramp time step */
- rom_15h {
- rom-addr = /bits/ 8 <0x15>;
- rom-val = /bits/ 8 <0xc7>;
- };
-
- /* 4 output LED1 string enabled */
- rom_19h {
- rom-addr = /bits/ 8 <0x19>;
- rom-val = /bits/ 8 <0x0f>;
- };
- };
-
- /* LP8556 */
- backlight@2c {
- compatible = "ti,lp8556";
- reg = <0x2c>;
-
- bl-name = "lcd-bl";
- dev-ctrl = /bits/ 8 <0x85>;
- init-brt = /bits/ 8 <0x10>;
- };
-
- /* LP8557 */
- backlight@2c {
- compatible = "ti,lp8557";
- reg = <0x2c>;
- enable-supply = <&backlight_vddio>;
- power-supply = <&backlight_vdd>;
-
- dev-ctrl = /bits/ 8 <0x41>;
- init-brt = /bits/ 8 <0x0a>;
-
- /* 4V OV, 4 output LED string enabled */
- rom_14h {
- rom-addr = /bits/ 8 <0x14>;
- rom-val = /bits/ 8 <0xcf>;
- };
- };
--
2.40.1


2023-05-05 20:42:31

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 1/4] dt-bindings: backlight: lp855x: convert to YAML and modernize

On Sat, Apr 29, 2023 at 12:45:31PM +0200, Artur Weber wrote:
> Notable changes:
> - ROM child nodes use dashes instead of underscores; the driver
> reads all child nodes regardless of their names, so this doesn't
> break ABI.
> - pwm-period argument is deprecated, as it effectively duplicates
> the period value provided in pwms. The driver continues to accept
> the property, so this should not break ABI.
>
> Signed-off-by: Artur Weber <[email protected]>
> ---
> .../leds/backlight/lp855x-backlight.yaml | 148 ++++++++++++++++++
> .../bindings/leds/backlight/lp855x.txt | 72 ---------
> 2 files changed, 148 insertions(+), 72 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml
> delete mode 100644 Documentation/devicetree/bindings/leds/backlight/lp855x.txt
>
> diff --git a/Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml
> new file mode 100644
> index 000000000000..dfe8131d2a32
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.yaml
> @@ -0,0 +1,148 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/backlight/lp855x-backlight.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments LP855X backlight controllers
> +
> +maintainers:
> + - Artur Weber <[email protected]>
> +
> +properties:
> + compatible:
> + enum:
> + - ti,lp8550
> + - ti,lp8551
> + - ti,lp8552
> + - ti,lp8553
> + - ti,lp8555
> + - ti,lp8556
> + - ti,lp8557
> +
> + reg:
> + maxItems: 1
> +
> + dev-ctrl:
> + $ref: /schemas/types.yaml#/definitions/uint8
> + description:
> + Value of device control register. This is a device-specific value.
> +
> + bl-name:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: Backlight device name.
> +
> + init-brt:
> + $ref: /schemas/types.yaml#/definitions/uint8
> + description: Initial value of backlight brightness.
> +
> + power-supply:
> + description: Regulator which controls the 3V rail.
> +
> + enable-supply:
> + description: Regulator which controls the EN/VDDIO input.
> +
> + pwms:
> + maxItems: 1
> + description: |
> + PWM channel to use for controlling the backlight; setting this
> + enables the PWM-based backlight control mode.
> +
> + pwm-names: true
> +
> + pwm-period:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + PWM period value. Deprecated; set the period value in the pwms
> + property instead.
> + deprecated: true
> +
> +patternProperties:
> + "^rom-[0-9a-f]{2}h$":
> + type: object
> + description: Nodes containing the values of configuration registers.

additionalProperties: false

With that,

Reviewed-by: Rob Herring <[email protected]>

> + properties:
> + rom-addr:
> + $ref: /schemas/types.yaml#/definitions/uint8
> + description: Register address of ROM area to be updated.
> +
> + rom-val:
> + $ref: /schemas/types.yaml#/definitions/uint8
> + description: Value to write to the ROM register.
> +
> +required:
> + - compatible
> + - reg
> + - dev-ctrl
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + backlight@2c {
> + compatible = "ti,lp8555";
> + reg = <0x2c>;
> +
> + dev-ctrl = /bits/ 8 <0x00>;
> +
> + pwms = <&pwm 0 10000>;
> + pwm-names = "lp8555";
> +
> + /* 4V OV, 4 output LED0 string enabled */
> + rom-14h {
> + rom-addr = /bits/ 8 <0x14>;
> + rom-val = /bits/ 8 <0xcf>;
> + };
> +
> + /* Heavy smoothing, 24ms ramp time step */
> + rom-15h {
> + rom-addr = /bits/ 8 <0x15>;
> + rom-val = /bits/ 8 <0xc7>;
> + };
> +
> + /* 4 output LED1 string enabled */
> + rom-19h {
> + rom-addr = /bits/ 8 <0x19>;
> + rom-val = /bits/ 8 <0x0f>;
> + };
> + };
> + };
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + backlight@2c {
> + compatible = "ti,lp8556";
> + reg = <0x2c>;
> +
> + bl-name = "lcd-bl";
> + dev-ctrl = /bits/ 8 <0x85>;
> + init-brt = /bits/ 8 <0x10>;
> + };
> + };
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + backlight@2c {
> + compatible = "ti,lp8557";
> + reg = <0x2c>;
> + enable-supply = <&backlight_vddio>;
> + power-supply = <&backlight_vdd>;
> +
> + dev-ctrl = /bits/ 8 <0x41>;
> + init-brt = /bits/ 8 <0x0a>;
> +
> + /* 4V OV, 4 output LED string enabled */
> + rom-14h {
> + rom-addr = /bits/ 8 <0x14>;
> + rom-val = /bits/ 8 <0xcf>;
> + };
> + };
> + };