mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
dt-bindings: pwm: amlogic: Add a new binding for meson8 pwm types
The binding that is used up to now describe which input the PWM channel multiplexer should pick among its possible parents, which are hardcoded in the driver. This isn't a good binding in the sense that it should describe hardware but not usage. Add a new binding deprecating the old one that uses clocks in a better way and how clocks are usually used today: The list of clocks describe the inputs of the PWM block as they are realised in hardware. So deprecate the old bindings and introduce a compatible per SoC family to replace these. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20240221151154.26452-3-jbrunet@baylibre.com Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
committed by
Uwe Kleine-König
parent
c2dd6b93f6
commit
5fd61cc281
@@ -21,23 +21,36 @@ properties:
|
||||
- amlogic,meson-g12a-ee-pwm
|
||||
- amlogic,meson-g12a-ao-pwm-ab
|
||||
- amlogic,meson-g12a-ao-pwm-cd
|
||||
- amlogic,meson-s4-pwm
|
||||
deprecated: true
|
||||
- items:
|
||||
- const: amlogic,meson-gx-pwm
|
||||
- const: amlogic,meson-gxbb-pwm
|
||||
deprecated: true
|
||||
- items:
|
||||
- const: amlogic,meson-gx-ao-pwm
|
||||
- const: amlogic,meson-gxbb-ao-pwm
|
||||
deprecated: true
|
||||
- items:
|
||||
- const: amlogic,meson8-pwm
|
||||
- const: amlogic,meson8b-pwm
|
||||
deprecated: true
|
||||
- enum:
|
||||
- amlogic,meson8-pwm-v2
|
||||
- amlogic,meson-s4-pwm
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,meson8b-pwm-v2
|
||||
- amlogic,meson-gxbb-pwm-v2
|
||||
- amlogic,meson-axg-pwm-v2
|
||||
- amlogic,meson-g12-pwm-v2
|
||||
- const: amlogic,meson8-pwm-v2
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
@@ -68,11 +81,14 @@ allOf:
|
||||
- amlogic,meson-g12a-ao-pwm-ab
|
||||
- amlogic,meson-g12a-ao-pwm-cd
|
||||
then:
|
||||
# Historic bindings tied to the driver implementation
|
||||
# Obsolete historic bindings tied to the driver implementation
|
||||
# The clocks provided here are meant to be matched with the input
|
||||
# known (hard-coded) in the driver and used to select pwm clock
|
||||
# source. Currently, the linux driver ignores this.
|
||||
# This is kept to maintain ABI backward compatibility.
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 2
|
||||
clock-names:
|
||||
oneOf:
|
||||
- items:
|
||||
@@ -81,6 +97,27 @@ allOf:
|
||||
- const: clkin0
|
||||
- const: clkin1
|
||||
|
||||
# Newer binding where clock describe the actual clock inputs of the pwm
|
||||
# block. These are necessary but some inputs may be grounded.
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- amlogic,meson8-pwm-v2
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: input clock 0 of the pwm block
|
||||
- description: input clock 1 of the pwm block
|
||||
- description: input clock 2 of the pwm block
|
||||
- description: input clock 3 of the pwm block
|
||||
clock-names: false
|
||||
required:
|
||||
- clocks
|
||||
|
||||
# Newer IP block take a single input per channel, instead of 4 inputs
|
||||
# for both channels
|
||||
- if:
|
||||
@@ -110,6 +147,13 @@ examples:
|
||||
clock-names = "clkin0", "clkin1";
|
||||
#pwm-cells = <3>;
|
||||
};
|
||||
- |
|
||||
pwm@2000 {
|
||||
compatible = "amlogic,meson8-pwm-v2";
|
||||
reg = <0x1000 0x10>;
|
||||
clocks = <&xtal>, <0>, <&fdiv4>, <&fdiv5>;
|
||||
#pwm-cells = <3>;
|
||||
};
|
||||
- |
|
||||
pwm@1000 {
|
||||
compatible = "amlogic,meson-s4-pwm";
|
||||
|
||||
Reference in New Issue
Block a user