Re: [PATCH v1 03/11] dt-bindings: pwm: rockchip: add rockchip,rk3128-pwm

Johan Jonker
2022-09-13T15:49:57Z

On 9/12/22 18:21, Rob Herring wrote:
> On Sat, Sep 10, 2022 at 09:48:04PM +0200, Johan Jonker wrote:
>> Reduced CC.
>>
>> Hi Rob,
>>
>
> Seemed like a simple enough warning to fix...

Some examples for comment.
Let us know what would be the better solution?

===========================================================================

option1:

combpwm0: combpwm0 {
compatible = "rockchip,rv1108-combpwm";
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <2>;
#size-cells = <2>;

pwm0: pwm@20040000 {
compatible = "rockchip,rv1108-pwm";
reg = <0x20040000 0x10>;
};

pwm1: pwm@20040010 {
compatible = "rockchip,rv1108-pwm";
reg = <0x20040010 0x10>;
};

pwm2: pwm@20040020 {
compatible = "rockchip,rv1108-pwm";
reg = <0x20040020 0x10>;
};

pwm3: pwm@20040030 {
compatible = "rockchip,rv1108-pwm";
reg = <0x20040030 0x10>;
};
};

PRO:
- Existing driver might still work.
CON:
- New compatible needed to service the combined interrupts.
- Driver change needed.

===========================================================================
option 2:

combpwm0: pwm@10280000 {
compatible = "rockchip,rv1108-pwm";
reg = <0x10280000 0x40>;
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;

pwm4: pwm-4@0 {
reg = <0x0>;
};

pwm5: pwm-5@10 {
reg = <0x10>;
};

pwm6: pwm-6@20 {
reg = <0x20>;
};

pwm7: pwm-7@30 {
reg = <0x30>;
};
};

CON:
- Driver change needed.
- Not compatible with current drivers.

===========================================================================

Current situation:

pwm0: pwm@20040000 {
compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
reg = <0x20040000 0x10>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
};

pwm1: pwm@20040010 {
compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
reg = <0x20040010 0x10>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
};

pwm2: pwm@20040020 {
compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
reg = <0x20040020 0x10>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
};

pwm3: pwm@20040030 {
compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
reg = <0x20040030 0x10>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
};

CON:
- The property "interrupts 39" can only be claimed ones by one probe function at the time.
- Has a fall-back string for rk3288, but unknown identical behavior for interrupts ???

>
>> The rk3328 and rv1108 PWM interrupt is chaired between blocks I think.
>> For rv1108 the same interrupt is used for all PWM nodes.
>> For rk3328 only added to one PWM node.
>> Currently not in use in a Linux drivers??
>
> How is that relevant to the binding? It's used in dts files.
>
>>
>> No consensus yet...on removing or parent node, so it stays as it is...
>> Maybe if you have ideas things will change. ;)
>
> Only that existing issues should be addressed before adding new
> platforms especially if the binding might change in an incompatible way
> (splitting nodes).
>
> Rob