The TZ1090 PDC (PowerDown Controller) has a couple of clock components in order to generate its main 32.768KHz clock which the peripherals in the low power domain run off, especially while the SoC is otherwise powered down. Create a clock binding for the provider of these clocks, and a header file in <dt-bindings/clock/> for enumerating the provided clocks. It essentially has just two clock inputs (xtal1 and xtal3), and two clock outputs, of which only "32khz" is likely to be used. Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> Cc: Mike Turquette <mturquette@xxxxxxxxxx> Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: Pawel Moll <pawel.moll@xxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Ian Campbell <ijc+devicetree@xxxxxxxxxxxxxx> Cc: Kumar Gala <galak@xxxxxxxxxxxxxx> Cc: linux-metag@xxxxxxxxxxxxxxx Cc: devicetree@xxxxxxxxxxxxxxx --- Changes since v1 (patch 11): - Change the binding to conceptually represent all clocks provided by the PDC in TZ1090 rather than the same generic arrangement of clocks as the PDC in TZ1090, since the driver will use the common TZ1090 specific clock provider helpers to provide specific clocks. - Change compatible string from "img,tz1090-pdc-clock" to "img,tz1090-pdc-clocks" to match the intended purpose. - Add header in <dt-bindings/clock/> to enumerate the provided clocks. - Add clock-names as required property as used by common TZ1090 clock provider code. - Mention standard clock-indices and clock-output-names optional properties for when the clocks may be used by other clock providers and should match the names used in the driver. --- .../bindings/clock/img,tz1090-pdc-clocks.txt | 59 ++++++++++++++++++++++ include/dt-bindings/clock/tz1090-pdc.h | 18 +++++++ 2 files changed, 77 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/img,tz1090-pdc-clocks.txt create mode 100644 include/dt-bindings/clock/tz1090-pdc.h diff --git a/Documentation/devicetree/bindings/clock/img,tz1090-pdc-clocks.txt b/Documentation/devicetree/bindings/clock/img,tz1090-pdc-clocks.txt new file mode 100644 index 0000000..2f3b4c9 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/img,tz1090-pdc-clocks.txt @@ -0,0 +1,59 @@ +Binding for TZ1090 PDC clocks. + +This binding uses the common clock binding[1]. It represents the clocks +required to generate the 32KHz PDC clock used by the devices in the low power +domain: + + ___________ +xtal1 ___| xtal1_div |____________________________ + |___________| | ________ xtal1_div + `--o| rtc_sw \____________ +xtal3 ----------------------|________/ 32khz + +xtal1_div = xtal1 / (reg[26:16] + 1) +xtal3 = reg[30] ? xtal3 : xtal1_div + + +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt + +Required properties: +- compatible : Shall be "img,tz1090-pdc-clocks". +- #clock-cells : From common clock binding; shall be set to 1. +- reg : Base address for registers controlling PDC clocks. +- clocks : Clock specifiers for each input clock. +- clock-names : Labels for each input clock specified in clocks. + Can contain the following entries: + "xtal1" : XTAL1 oscillator. + "xtal3" : XTAL3 32KHz oscillator. + +Optional properties: +- clock-indices : From common clock binding. Allows clock-output-names to + be sparse. +- clock-output-names : From common clock binding. May be used to name specific + output clocks so that other clock providers can find + the clocks by name before the provider has been + instantiated. Can contain: + "32khz" : 32khz PDC clock. + +Clock Specifier Definition: +- <1st-cell>: Output clock number. Use constants from + <dt-bindings/clock/tz1090-pdc.h>. + +Examples: + pdc_clks: pdc_clks { + compatible = "img,tz1090-pdc-clocks"; + #clock-cells = <1>; + reg = <0x02006500 0x4>; /* SOC_GPIO_CONTROL0 */ + clocks = <&xtal1>, + <&xtal3>; + clock-names = "xtal1", + "xtal3"; + }; + + ir { + ... + clocks = <&pdc_clks CLK_PDC_32KHZ>, + <&top_clks CLK_TOP_PDC>; + clock-names = "core", "sys"; + ... + }; diff --git a/include/dt-bindings/clock/tz1090-pdc.h b/include/dt-bindings/clock/tz1090-pdc.h new file mode 100644 index 0000000..fa9a11c --- /dev/null +++ b/include/dt-bindings/clock/tz1090-pdc.h @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2013-2014 Imagination Technologies Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _DT_BINDINGS_CLK_TZ1090_PDC_H +#define _DT_BINDINGS_CLK_TZ1090_PDC_H + +/* Powerdown Controller clocks */ +#define CLK_PDC_XTAL1_DIV 0 +#define CLK_PDC_32KHZ 1 + +#define CLK_PDC_MAX 2 + +#endif -- 2.0.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html