diff mbox series

[v2,11/13] dt-bindings: ipmi: Convert IPMI-SMIC bindings to json-schema

Message ID 20200227182210.89512-12-andre.przywara@arm.com (mailing list archive)
State New, archived
Headers show
Series arm: calxeda: update DTS, bindings and MAINTAINERS | expand

Commit Message

Andre Przywara Feb. 27, 2020, 6:22 p.m. UTC
Convert the generic IPMI controller bindings to DT schema format
using json-schema.

I removed the formerly mandatory device-type property, since this
is deprecated in the DT spec, except for the legacy CPU and memory
nodes.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Cc: Corey Minyard <minyard@acm.org>
Cc: openipmi-developer@lists.sourceforge.net
---
 .../devicetree/bindings/ipmi/ipmi-smic.txt    | 25 ---------
 .../devicetree/bindings/ipmi/ipmi-smic.yaml   | 56 +++++++++++++++++++
 2 files changed, 56 insertions(+), 25 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
 create mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml

Comments

Rob Herring Feb. 27, 2020, 10:21 p.m. UTC | #1
On Thu, Feb 27, 2020 at 06:22:08PM +0000, Andre Przywara wrote:
> Convert the generic IPMI controller bindings to DT schema format
> using json-schema.
> 
> I removed the formerly mandatory device-type property, since this
> is deprecated in the DT spec, except for the legacy CPU and memory
> nodes.

Yes, but it is still used by the ipmi driver to match on, so we should 
keep it.

> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> Cc: Corey Minyard <minyard@acm.org>
> Cc: openipmi-developer@lists.sourceforge.net
> ---
>  .../devicetree/bindings/ipmi/ipmi-smic.txt    | 25 ---------
>  .../devicetree/bindings/ipmi/ipmi-smic.yaml   | 56 +++++++++++++++++++
>  2 files changed, 56 insertions(+), 25 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
>  create mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
> 
> diff --git a/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt b/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
> deleted file mode 100644
> index d5f1a877ed3e..000000000000
> --- a/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -IPMI device
> -
> -Required properties:
> -- compatible: should be one of ipmi-kcs, ipmi-smic, or ipmi-bt
> -- device_type: should be ipmi
> -- reg: Address and length of the register set for the device
> -
> -Optional properties:
> -- interrupts: The interrupt for the device.  Without this the interface
> -	is polled.
> -- reg-size - The size of the register.  Defaults to 1
> -- reg-spacing - The number of bytes between register starts.  Defaults to 1
> -- reg-shift - The amount to shift the registers to the right to get the data
> -	into bit zero.
> -
> -Example:
> -
> -smic@fff3a000 {
> -	compatible = "ipmi-smic";
> -	device_type = "ipmi";
> -	reg = <0xfff3a000 0x1000>;
> -	interrupts = <0 24 4>;
> -	reg-size = <4>;
> -	reg-spacing = <4>;
> -};
> diff --git a/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml b/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
> new file mode 100644
> index 000000000000..c859e0e959b9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: GPL-2.0

Anything I wrote which should be most of the series, you can relicense 
to:

(GPL-2.0-only OR BSD-2-Clause)

> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/ipmi/ipmi-smic.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: IPMI device bindings
> +
> +description: IPMI device bindings
> +
> +maintainers:
> +  - Corey Minyard <cminyard@mvista.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ipmi-kcs
> +      - ipmi-smic
> +      - ipmi-bt
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    description: Interface is polled if this property is omitted.
> +    maxItems: 1
> +
> +  reg-size:
> +    description: The access width of the register in bytes. Defaults to 1.
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint32
> +      - enum: [1, 2, 4, 8]

Does 8 really work?

> +
> +  reg-spacing:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: The number of bytes between register starts. Defaults to 1.
> +
> +  reg-shift:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      The amount of bits to shift the register content to the right to get
> +      the data into bit zero.

either 24 or 56 would be the max, right?

> +
> +required:
> +  - compatible
> +  - reg
> +
> +examples:
> +  - |
> +    smic@fff3a000 {
> +        compatible = "ipmi-smic";
> +        reg = <0xfff3a000 0x1000>;
> +        interrupts = <0 24 4>;
> +        reg-size = <4>;
> +        reg-spacing = <4>;
> +    };
> -- 
> 2.17.1
>
Andre Przywara Feb. 28, 2020, 12:21 a.m. UTC | #2
On 27/02/2020 22:21, Rob Herring wrote:

Hi,

> On Thu, Feb 27, 2020 at 06:22:08PM +0000, Andre Przywara wrote:
>> Convert the generic IPMI controller bindings to DT schema format
>> using json-schema.
>>
>> I removed the formerly mandatory device-type property, since this
>> is deprecated in the DT spec, except for the legacy CPU and memory
>> nodes.
> 
> Yes, but it is still used by the ipmi driver to match on, so we should 
> keep it.

Oh, indeed, I missed that. Should we:
- Remove the .type field from the driver.
- Mark/comment this as deprecated in the bindings, but
- Keep in it in the DTs.
to limit proliferation of device_type usage?

> 
>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>> Cc: Corey Minyard <minyard@acm.org>
>> Cc: openipmi-developer@lists.sourceforge.net
>> ---
>>  .../devicetree/bindings/ipmi/ipmi-smic.txt    | 25 ---------
>>  .../devicetree/bindings/ipmi/ipmi-smic.yaml   | 56 +++++++++++++++++++
>>  2 files changed, 56 insertions(+), 25 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
>>  create mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt b/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
>> deleted file mode 100644
>> index d5f1a877ed3e..000000000000
>> --- a/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
>> +++ /dev/null
>> @@ -1,25 +0,0 @@
>> -IPMI device
>> -
>> -Required properties:
>> -- compatible: should be one of ipmi-kcs, ipmi-smic, or ipmi-bt
>> -- device_type: should be ipmi
>> -- reg: Address and length of the register set for the device
>> -
>> -Optional properties:
>> -- interrupts: The interrupt for the device.  Without this the interface
>> -	is polled.
>> -- reg-size - The size of the register.  Defaults to 1
>> -- reg-spacing - The number of bytes between register starts.  Defaults to 1
>> -- reg-shift - The amount to shift the registers to the right to get the data
>> -	into bit zero.
>> -
>> -Example:
>> -
>> -smic@fff3a000 {
>> -	compatible = "ipmi-smic";
>> -	device_type = "ipmi";
>> -	reg = <0xfff3a000 0x1000>;
>> -	interrupts = <0 24 4>;
>> -	reg-size = <4>;
>> -	reg-spacing = <4>;
>> -};
>> diff --git a/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml b/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
>> new file mode 100644
>> index 000000000000..c859e0e959b9
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
>> @@ -0,0 +1,56 @@
>> +# SPDX-License-Identifier: GPL-2.0
> 
> Anything I wrote which should be most of the series, you can relicense 
> to:
> 
> (GPL-2.0-only OR BSD-2-Clause)

Oh, good point. I copied the header from some file I picked.

> 
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/ipmi/ipmi-smic.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: IPMI device bindings
>> +
>> +description: IPMI device bindings
>> +
>> +maintainers:
>> +  - Corey Minyard <cminyard@mvista.com>
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - ipmi-kcs
>> +      - ipmi-smic
>> +      - ipmi-bt
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  interrupts:
>> +    description: Interface is polled if this property is omitted.
>> +    maxItems: 1
>> +
>> +  reg-size:
>> +    description: The access width of the register in bytes. Defaults to 1.
>> +    allOf:
>> +      - $ref: /schemas/types.yaml#/definitions/uint32
>> +      - enum: [1, 2, 4, 8]
> 
> Does 8 really work?

The driver supports it, at least on architectures providing readq.

> 
>> +
>> +  reg-spacing:
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    description: The number of bytes between register starts. Defaults to 1.
>> +
>> +  reg-shift:
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    description: |
>> +      The amount of bits to shift the register content to the right to get
>> +      the data into bit zero.
> 
> either 24 or 56 would be the max, right?

True, will limit this to 56.

Thanks!
Andre

> 
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +examples:
>> +  - |
>> +    smic@fff3a000 {
>> +        compatible = "ipmi-smic";
>> +        reg = <0xfff3a000 0x1000>;
>> +        interrupts = <0 24 4>;
>> +        reg-size = <4>;
>> +        reg-spacing = <4>;
>> +    };
>> -- 
>> 2.17.1
>>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt b/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
deleted file mode 100644
index d5f1a877ed3e..000000000000
--- a/Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
+++ /dev/null
@@ -1,25 +0,0 @@ 
-IPMI device
-
-Required properties:
-- compatible: should be one of ipmi-kcs, ipmi-smic, or ipmi-bt
-- device_type: should be ipmi
-- reg: Address and length of the register set for the device
-
-Optional properties:
-- interrupts: The interrupt for the device.  Without this the interface
-	is polled.
-- reg-size - The size of the register.  Defaults to 1
-- reg-spacing - The number of bytes between register starts.  Defaults to 1
-- reg-shift - The amount to shift the registers to the right to get the data
-	into bit zero.
-
-Example:
-
-smic@fff3a000 {
-	compatible = "ipmi-smic";
-	device_type = "ipmi";
-	reg = <0xfff3a000 0x1000>;
-	interrupts = <0 24 4>;
-	reg-size = <4>;
-	reg-spacing = <4>;
-};
diff --git a/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml b/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
new file mode 100644
index 000000000000..c859e0e959b9
--- /dev/null
+++ b/Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
@@ -0,0 +1,56 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ipmi/ipmi-smic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IPMI device bindings
+
+description: IPMI device bindings
+
+maintainers:
+  - Corey Minyard <cminyard@mvista.com>
+
+properties:
+  compatible:
+    enum:
+      - ipmi-kcs
+      - ipmi-smic
+      - ipmi-bt
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description: Interface is polled if this property is omitted.
+    maxItems: 1
+
+  reg-size:
+    description: The access width of the register in bytes. Defaults to 1.
+    allOf:
+      - $ref: /schemas/types.yaml#/definitions/uint32
+      - enum: [1, 2, 4, 8]
+
+  reg-spacing:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: The number of bytes between register starts. Defaults to 1.
+
+  reg-shift:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      The amount of bits to shift the register content to the right to get
+      the data into bit zero.
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    smic@fff3a000 {
+        compatible = "ipmi-smic";
+        reg = <0xfff3a000 0x1000>;
+        interrupts = <0 24 4>;
+        reg-size = <4>;
+        reg-spacing = <4>;
+    };