[PATCH v6 09/41] dt-bindings: clock: New bindings for TI Davinci PSC
Rob Herring
robh at kernel.org
Mon Jan 22 07:05:03 PST 2018
On Sat, Jan 20, 2018 at 11:13:48AM -0600, David Lechner wrote:
> This adds a new binding for the Power Sleep Controller (PSC) for the
> mach-davinci family of processors.
>
> Note: Although TI Keystone has a very similar PSC, we are not using the
> existing bindings. Keystone is using a legacy one-node-per-clock binding
> (actually two nodes if you count the separate reset binding for the same
> IP block). Also, some davinci LPSCs have quirks that aren't handled by
> the keystone bindings, so we would be adding one compatible string per
> clock with quirks instead of just a new compatible string for each
> controller.
>
> Signed-off-by: David Lechner <david at lechnology.com>
> ---
>
> v6 changes:
> - added clocks and clock-names properties
> - expanded examples
>
> .../devicetree/bindings/clock/ti/davinci/psc.txt | 66 ++++++++++++++++++++++
> 1 file changed, 66 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/ti/davinci/psc.txt
>
> diff --git a/Documentation/devicetree/bindings/clock/ti/davinci/psc.txt b/Documentation/devicetree/bindings/clock/ti/davinci/psc.txt
> new file mode 100644
> index 0000000..0c2d2bd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/ti/davinci/psc.txt
> @@ -0,0 +1,66 @@
> +Binding for TI DaVinci Power Sleep Controller (PSC)
> +
> +The PSC provides power management, clock gating and reset functionality. It is
> +primarily used for clocking.
> +
> +Required properties:
> +- compatible: shall be one of:
> + - "ti,da850-psc0" for PSC0 on DA850/OMAP-L138/AM18XX
> + - "ti,da850-psc1" for PSC1 on DA850/OMAP-L138/AM18XX
> +- reg: physical base address and size of the controller's register area
> +- #clock-cells: from common clock binding; shall be set to 1
> +- clocks: phandles to clocks corresponding to the clock-names property
> +- clock-names: list of parent clock names - depends on compatible value
> + - for "ti,da850-psc0", shall be "pll0_sysclk1", "pll0_sysclk2",
> + "pll0_sysclk4", "pll0_sysclk6", "async1"
> + - for "ti,da850-psc1", shall be "pll0_sysclk2", "pll0_sysclk4", "async3"
> +
> +Optional properties:
> +- #reset-cells: from reset binding; shall be set to 1 - only applicable when
> + at least one local domain provides a local reset.
> +
> +Consumers:
> +
> + Clock and reset consumers shall use the local power domain module ID
> + (LPSC) as the index corresponding to the clock cell. Refer to the
> + device-specific datasheet to find these numbers. NB: Most local domains
> + only provide a clock and not a reset.
> +
> +Examples:
> +
> + psc0: clock-controller at 10000 {
> + compatible = "ti,da850-psc0";
> + reg = <0x10000 0x1000>;
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + clocks = <&pll0_sysclk 1>, <&pll0_sysclk 2>,
> + <&pll0_sysclk 4>, <&pll0_sysclk 6>, <&async1_clk>;
> + clock_names = "pll0_sysclk1", "pll0_sysclk2",
Should be clock-names
> + "pll0_sysclk4", "pll0_sysclk6", "async1";
> + };
> + psc1: clock-controller at 227000 {
> + compatible = "ti,da850-psc1";
> + reg = <0x227000 0x1000>;
> + #clock-cells = <1>;
> + clocks = <&pll0_sysclk 2>, <&pll0_sysclk 4>, <&async3_clk>;
> + clock_names = "pll0_sysclk2", "pll0_sysclk4", "async3";
ditto
With that,
Reviewed-by: Rob Herring <robh at kernel.org>
More information about the linux-arm-kernel
mailing list