Re: [PATCH v6 3/6] dt-bindings: mfd: ahc1ec0.yaml: Add Advantech embedded controller - AHC1EC0
From: Rob Herring <robh@kernel.org>
Date: 2021-02-05 21:24:27
Also in:
linux-hwmon, linux-watchdog, lkml
On Mon, Jan 18, 2021 at 08:37:46PM +0800, Campion Kang wrote:
quoted hunk ↗ jump to hunk
Add DT binding schema for Advantech embedded controller AHC1EC0. Changed since V5: - rename dt-bindings/mfd/ahc1ec0.h to dt-bindings/mfd/ahc1ec0-dt.h that found errors by bot 'make dt_binding_check' Signed-off-by: Campion Kang <redacted> --- .../devicetree/bindings/mfd/ahc1ec0.yaml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/ahc1ec0.yamldiff --git a/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml b/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml new file mode 100644 index 000000000000..40af14bb9c0a --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml@@ -0,0 +1,69 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ahc1ec0.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Advantech Embedded Controller (AHC1EC0) + +maintainers: + - Campion Kang <campion.kang@advantech.com.tw> + +description: | + AHC1EC0 is one of the embedded controllers used by Advantech to provide several + functions such as watchdog, hwmon, brightness, etc. Advantech related applications + can control the whole system via these functions. + +properties: + compatible: + const: advantech,ahc1ec0 + + advantech,sub-dev-nb: + description: + The number of sub-devices specified in the platform. + $ref: /schemas/types.yaml#/definitions/uint32 + maxItems: 1
You don't need this, just count the length of the next property:
+ + advantech,sub-dev: + description: + A list of the sub-devices supported in the platform. Defines for the + appropriate values can found in dt-bindings/mfd/ahc1ec0-dt.h. + $ref: "/schemas/types.yaml#/definitions/uint32-array" + minItems: 1 + maxItems: 6
But as I said before, this binding is odd. It doesn't look like how we do any other MFD. Either we have child nodes or they are implicit.
+
+ advantech,hwmon-profile:
+ description:
+ The number of sub-devices specified in the platform. Defines for the
+ hwmon profiles can found in dt-bindings/mfd/ahc1ec0-dt.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ maxItems: 1
+
+required:
+ - compatible
+ - advantech,sub-dev-nb
+ - advantech,sub-dev
+
+if:
+ properties:
+ advantech,sub-dev:
+ contains:
+ const: 0x3
+then:
+ required:
+ - advantech,hwmon-profile
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/mfd/ahc1ec0-dt.h>
+ ahc1ec0 {
+ compatible = "advantech,ahc1ec0";
+
+ advantech,sub-dev-nb = <2>;
+ advantech,sub-dev = <AHC1EC0_SUBDEV_HWMON
+ AHC1EC0_SUBDEV_WDT>;
+
+ advantech,hwmon-profile = <AHC1EC0_HWMON_PRO_UNO2271G>;
+ };
--
2.17.1