Re: [PATCH] dt-bindings: misc: Convert IDT 89HPESx to DT schema

From: Serge Semin
Date: Thu Oct 06 2022 - 01:13:50 EST


On Wed, Oct 05, 2022 at 04:26:31PM -0500, Rob Herring wrote:
> Convert the IDT 89HPESx device binding to DT schema format.
>
> "onsemi,24c64" was not a documented compatible string, so update the
> example to "atmel,24c64". It's not clear what's in use here as no
> upstream dts files have the eeprom child node.

HW manual claims the 24c32, 24c64, 24c128, 24c256, 24c512 serial
EEPROMs can be used to save the IDT 89HPESx switch firmware. So there
is no any particular EEPROM-vendor requirement. Onsemi-version of one
was just in-use on the platform for which the driver was originally
created.

>
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> ---
> Serge, Okay with dual licensing?

Ok. Thanks for the conversion.

Acked-by: Serge Semin <fancer.lancer@xxxxxxxxx>

-Sergey

> ---
> .../devicetree/bindings/misc/idt,89hpesx.yaml | 72 +++++++++++++++++++
> .../devicetree/bindings/misc/idt_89hpesx.txt | 44 ------------
> 2 files changed, 72 insertions(+), 44 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/misc/idt,89hpesx.yaml
> delete mode 100644 Documentation/devicetree/bindings/misc/idt_89hpesx.txt
>
> diff --git a/Documentation/devicetree/bindings/misc/idt,89hpesx.yaml b/Documentation/devicetree/bindings/misc/idt,89hpesx.yaml
> new file mode 100644
> index 000000000000..452236e79354
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/idt,89hpesx.yaml
> @@ -0,0 +1,72 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/misc/idt,89hpesx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: EEPROM / CSR SMBus-slave interface of IDT 89HPESx devices
> +
> +maintainers:
> + - Serge Semin <fancer.lancer@xxxxxxxxx>
> +
> +select:
> + properties:
> + compatible:
> + contains:
> + pattern: '^idt,89hpes'
> + required:
> + - compatible
> +
> +properties:
> + compatible:
> + oneOf:
> + - pattern: '^idt,89hpes(8nt2|12nt3|12n3a?|24n3a?|(12|24)t3g2|4t4g2|10t4g2|[56]t5|8t5a?)$'
> + - pattern: '^idt,89hpes(6t6g2|16t7|(24t6|32t8|48t12|16t4a?)(g2)?)$'
> + - pattern: '^idt,89hpes(24nt6a|32nt8[ab]|12nt12|16nt16|24nt24|32nt24[ab])g2$'
> + - pattern: '^idt,89hpes((32h8|48h12a?|22h16|34h16|64h16a?)(g2)?|16h16)$'
> +
> + reg:
> + maxItems: 1
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> +patternProperties:
> + '^eeprom@':
> + $ref: /schemas/eeprom/at24.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + compatible:
> + description: Only a subset of devices are supported
> + pattern: ',24c(32|64|128|256|512)$'
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + idt@74 {
> + compatible = "idt,89hpes32nt8ag2";
> + reg = <0x74>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + eeprom@50 {
> + compatible = "atmel,24c64";
> + reg = <0x50>;
> + read-only;
> + };
> + };
> + };
> +...
> diff --git a/Documentation/devicetree/bindings/misc/idt_89hpesx.txt b/Documentation/devicetree/bindings/misc/idt_89hpesx.txt
> deleted file mode 100644
> index b9093b79ab7d..000000000000
> --- a/Documentation/devicetree/bindings/misc/idt_89hpesx.txt
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -EEPROM / CSR SMBus-slave interface of IDT 89HPESx devices
> -
> -Required properties:
> - - compatible : should be "<manufacturer>,<type>"
> - Basically there is only one manufacturer: idt, but some
> - compatible devices may be produced in future. Following devices
> - are supported: 89hpes8nt2, 89hpes12nt3, 89hpes24nt6ag2,
> - 89hpes32nt8ag2, 89hpes32nt8bg2, 89hpes12nt12g2, 89hpes16nt16g2,
> - 89hpes24nt24g2, 89hpes32nt24ag2, 89hpes32nt24bg2;
> - 89hpes12n3, 89hpes12n3a, 89hpes24n3, 89hpes24n3a;
> - 89hpes32h8, 89hpes32h8g2, 89hpes48h12, 89hpes48h12g2,
> - 89hpes48h12ag2, 89hpes16h16, 89hpes22h16, 89hpes22h16g2,
> - 89hpes34h16, 89hpes34h16g2, 89hpes64h16, 89hpes64h16g2,
> - 89hpes64h16ag2;
> - 89hpes12t3g2, 89hpes24t3g2, 89hpes16t4, 89hpes4t4g2,
> - 89hpes10t4g2, 89hpes16t4g2, 89hpes16t4ag2, 89hpes5t5,
> - 89hpes6t5, 89hpes8t5, 89hpes8t5a, 89hpes24t6, 89hpes6t6g2,
> - 89hpes24t6g2, 89hpes16t7, 89hpes32t8, 89hpes32t8g2,
> - 89hpes48t12, 89hpes48t12g2.
> - - reg : I2C address of the IDT 89HPESx device.
> -
> -Optionally there can be EEPROM-compatible subnode:
> - - compatible: There are five EEPROM devices supported: 24c32, 24c64, 24c128,
> - 24c256 and 24c512 differed by size.
> - - reg: Custom address of EEPROM device (If not specified IDT 89HPESx
> - (optional) device will try to communicate with EEPROM sited by default
> - address - 0x50)
> - - read-only : Parameterless property disables writes to the EEPROM
> - (optional)
> -
> -Example:
> - idt@60 {
> - compatible = "idt,89hpes32nt8ag2";
> - reg = <0x74>;
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - eeprom@50 {
> - compatible = "onsemi,24c64";
> - reg = <0x50>;
> - read-only;
> - };
> - };
> -
> --
> 2.35.1
>