Re: [PATCH V7] clk: bcm: Add driver for BCM53573 ILP clock

Rob Herring
2016-09-12T16:56:43Z

On Mon, Sep 05, 2016 at 04:29:27PM +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> This clock is present on BCM53573 devices (including BCM47189) that use
> Cortex-A7. ILP is a part of PMU (Power Management Unit) multi-function
> device so we use syscon (and regmap) for it.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> V2: Rebase on top of clk-next
> Use ALP as parent clock
> Improve comments
> Switch from ioremap_nocache to ioremap
> Check of_clk_add_provide result for error
> V3: Drop #include <linux/moduleh>
> Make ILP DT entry part of PMU
> Describe ILP as subdevice of PMU in Documentation
> V4: Use BCM53573 name as suggested by Jon and Ray. It seems "Northstar"
> (even if used in some resources) should be used in relation to
> Cortex-A9 devices only.
> V5: Rename remaining "ns" references to "bcm53573", sorry, I sent V4 too
> early.
> V6: Drop #include <linux/clk.h>
> Use "int" as type where it matches usage
> Add cpu_relax() in the loop
> Add disable callback
> Use _hw_ functions for registering struct clk_hw (new API)
>
> Thanks a lot Stephen!
> V7: Use syscon and regmap (thanks Rob!)
> ---
> .../bindings/clock/brcm,bcm53573-ilp.txt | 36 +++++
> drivers/clk/bcm/Makefile | 1 +
> drivers/clk/bcm/clk-bcm53573-ilp.c | 148 +++++++++++++++++++++
> 3 files changed, 185 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt
> create mode 100644 drivers/clk/bcm/clk-bcm53573-ilp.c
>
> diff --git a/Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt b/Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt
> new file mode 100644
> index 0000000..4554f70
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/brcm,bcm53573-ilp.txt
> @@ -0,0 +1,36 @@
> +Broadcom BCM53573 ILP clock
> +===========================
> +
> +This binding uses the common clock binding:
> + Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +This binding is used for ILP clock (sometimes referred as "slow clock")
> +on Broadcom BCM53573 devices using Cortex-A7 CPU.
> +
> +ILP's rate has to be calculated on runtime and it depends on ALP clock
> +which has to be referenced.
> +
> +This clock is part of PMU (Power Management Unit), a Broadcom's device
> +handing power-related aspects. Its node must be sub-node of the PMU
> +device.
> +
> +Required properties:
> +- compatible: "brcm,bcm53573-ilp"
> +- reg: iomem address range of PMU (Power Management Unit)
> +- reg-names: "pmu", the only needed & supported reg right now

There's no reg prop in the example.

> +- clocks: has to reference an ALP clock
> +- #clock-cells: should be <0>
> +
> +Example:
> +
> +pmu@18012000 {
> + compatible = "simple-mfd", "syscon";
> + reg = <0x18012000 0x00001000>;
> +
> + ilp: ilp@0 {

Drop the unit address if there is in fact no reg prop.

> + compatible = "brcm,bcm53573-ilp";
> + clocks = <&alp>;
> + #clock-cells = <0>;
> + clock-output-names = "ilp";
> + };
> +};