>> + '#size-cells': >> + const: 0 >> + >> + '#pwm-cells': >> + const: 2 >> + >> +patternProperties: >> + "^fan@[0-4]$": > > Keep consistent quotes, either ' or " > Thank you! I will correct that. >> + $ref: fan-common.yaml# >> + unevaluatedProperties: false >> + properties: >> + reg: >> + description: >> + The fan number. >> + >> + required: >> + - reg >> + - pwms >> + >> +required: >> + - compatible >> + - reg >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + i2c { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + fan_controller: fan-controller@2f { >> + compatible = "microchip,emc2305"; >> + reg = <0x2f>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + #pwm-cells = <2>; >> + >> + fan@0 { >> + #cooling-cells = <2>; >> + reg = <0x0>; > > Please follow DTS coding style, so reg is here the first property. > Ok, I will correct it. Thanks! >> + pwms = <&fan_controller 1 1>; > > It's the same PWM for all fans? So isn't it basically one fan? How do you exactly control them independently, if the same PWM channel is used? > It is the same PWM controller, but each fan has a different PWM channel. According to datasheet, the EMC2305 could control up to five programmable fan control circuits. The driver will parse all fan child nodes during probe and use reg to differentiate the channels, similar as it is done on max6639 hwmon driver. The 'pwms' arguments in the example are used to select the polarity and pwm output, which will be parsed in the driver to generate the bits for the registers used to select pwm output and pwm polarity. (... <&fan_controller [pwm_polarity] [pwm_output]> ...). Now, I realized that I should use: <&fan_controller [pwm_channel] [pwm_frequency] [pwm_polarity] [pwm_output]>. I will also document the arguments in #pwm-cells description. Thanks! >> + }; >> + >> + fan@1 { >> + #cooling-cells = <2>; >> + reg = <0x1>; >> + pwms = <&fan_controller 1 1>; Best regards, Florin