On 6/12/2021 4:14 PM, Matthew Hagan wrote: [snip] >>> + pwm-leds { >>> + compatible = "pwm-leds"; >>> + >>> + red { >>> + label = "red:led"; >>> + pwms = <&pwm 1 50000>; >>> + }; >>> + >>> + green { >>> + label = "green:led"; >>> + pwms = <&pwm 2 50000>; >>> + }; >>> + >>> + blue { >>> + label = "blue:led"; >>> + pwms = <&pwm 3 50000>; >>> + }; >>> + }; [snip] >> What is the reason for overriding this to 2? > > I can't provide an explanation other than that it only works at 2. > > When set to 3 I get the following: > > [ 0.784051] OF: /pwm-leds/red: #pwm-cells = 3 found -1 > [ 0.789201] of_pwm_get(): can't parse "pwms" property > [ 0.794295] leds_pwm pwm-leds: error -EINVAL: unable to request PWM for red:led > [ 0.801628] leds_pwm: probe of pwm-leds failed with error -22 Strange because with a #pwm-cells value of 3, of_pwm_xlate_with_flags() would treat the flags as optional so the way you have put it looks correct to me. I am not sure what the channel sub-nodes are supposed to do, they do not appear to be documented properties or parsed by the PWM core? Is your Device Tree possibly corrupted here? -- Florian