Add common fan properties bindings to a schema.
Bindings for fan controllers can reference the common schema for the
fan
child nodes:
patternProperties:
"^fan@[0-2]":
type: object
allOf:
- $ref: fan-common.yaml#
Signed-off-by: Naresh Solanki <Naresh.Solanki@9elements.com>
---
.../devicetree/bindings/hwmon/fan-common.yaml | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml
diff --git a/Documentation/devicetree/bindings/hwmon/fan-common.yaml b/Documentation/devicetree/bindings/hwmon/fan-common.yaml
new file mode 100644
index 000000000000..6bb990f00e94
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/fan-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common fan properties
+
+properties:
+ max-rpm:
+ description:
+ Max RPM supported by fan
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ pulse-per-revolution:
+ description:
+ The number of pulse from fan sensor per revolution.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ target-rpm:
+ description:
+ Target RPM the fan should be configured during driver probe.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ pwm-frequency:
+ description:
+ PWM frequency for fan.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ pwm-polarity-inverse:
+ description:
+ PWM polarity for fan.
+ type: boolean
+
+ label:
+ description:
+ Optional fan label
+ $ref: /schemas/types.yaml#/definitions/string
+
+additionalProperties: true
+
+examples:
+ - |
+
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fan-controller@30 {
+ compatible = "maxim,max6639";
+ reg = <0x30>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fan@0 {
+ reg = <0>;
+ label = "CPU0_Fan";
+ max-rpm = <32000>;
+ pulse-per-revolution = <2>;
+ target-rpm = <2000>;
+ pwm-frequency = <25000>;
+ };
+
+ fan@1 {
+ reg = <1>;
+ label = "PCIe0_Fan";
+ max-rpm = <32000>;
+ pulse-per-revolution = <2>;
+ target-rpm = <2000>;
+ pwm-frequency = <25000>;
+ };
+
+ };
+ };
+
+...
--
2.37.3
On 10/10/22 13:30, Naresh Solanki wrote:
> Add common fan properties bindings to a schema.
>
> Bindings for fan controllers can reference the common schema for the
> fan
>
> child nodes:
>
> patternProperties:
> "^fan@[0-2]":
> type: object
> allOf:
> - $ref: fan-common.yaml#
>
> Signed-off-by: Naresh Solanki <Naresh.Solanki@9elements.com>
> ---
> .../devicetree/bindings/hwmon/fan-common.yaml | 77 +++++++++++++++++++
> 1 file changed, 77 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml
>
> diff --git a/Documentation/devicetree/bindings/hwmon/fan-common.yaml b/Documentation/devicetree/bindings/hwmon/fan-common.yaml
> new file mode 100644
> index 000000000000..6bb990f00e94
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml
> @@ -0,0 +1,77 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/fan-common.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Common fan properties
> +
> +properties:
> + max-rpm:
> + description:
> + Max RPM supported by fan
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + pulse-per-revolution:
> + description:
> + The number of pulse from fan sensor per revolution.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + target-rpm:
> + description:
> + Target RPM the fan should be configured during driver probe.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + pwm-frequency:
> + description:
> + PWM frequency for fan.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + pwm-polarity-inverse:
> + description:
> + PWM polarity for fan.
> + type: boolean
> +
> + label:
> + description:
> + Optional fan label
> + $ref: /schemas/types.yaml#/definitions/string
> +
Question for Rob: If a fan controller has other properties, such
as fan-divider or min-rpm, would it be ok to add those in the fan
controller devicetree bindings, or should those be added here if/when
needed ?
Thanks,
Guenter
> +additionalProperties: true
> +
> +examples:
> + - |
> +
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + fan-controller@30 {
> + compatible = "maxim,max6639";
> + reg = <0x30>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + fan@0 {
> + reg = <0>;
> + label = "CPU0_Fan";
> + max-rpm = <32000>;
> + pulse-per-revolution = <2>;
> + target-rpm = <2000>;
> + pwm-frequency = <25000>;
> + };
> +
> + fan@1 {
> + reg = <1>;
> + label = "PCIe0_Fan";
> + max-rpm = <32000>;
> + pulse-per-revolution = <2>;
> + target-rpm = <2000>;
> + pwm-frequency = <25000>;
> + };
> +
> + };
> + };
> +
> +...
On Mon, 10 Oct 2022 22:30:44 +0200, Naresh Solanki wrote: > Add common fan properties bindings to a schema. > > Bindings for fan controllers can reference the common schema for the > fan > > child nodes: > > patternProperties: > "^fan@[0-2]": > type: object > allOf: > - $ref: fan-common.yaml# > > Signed-off-by: Naresh Solanki <Naresh.Solanki@9elements.com> > --- > .../devicetree/bindings/hwmon/fan-common.yaml | 77 +++++++++++++++++++ > 1 file changed, 77 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/hwmon/fan-common.yaml: 'maintainers' is a required property hint: Metaschema for devicetree binding documentation from schema $id: http://devicetree.org/meta-schemas/base.yaml# Documentation/devicetree/bindings/hwmon/fan-common.example.dtb:0:0: /example-0/i2c/fan-controller@30: failed to match any schema with compatible: ['maxim,max6639'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/ This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit.
© 2016 - 2026 Red Hat, Inc.