lkml.org 
[lkml]   [2015]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 04/16] clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support
    Date
    Add Clock Domain support to the R-Car Gen2 Clock Pulse Generator (CPG)
    driver using the generic PM Domain. This allows to power-manage the
    module clocks of SoC devices that are part of the CPG/MSTP Clock Domain
    using Runtime PM, or for system suspend/resume.

    SoC devices that are part of the CPG/MSTP Clock Domain and can be
    power-managed through an MSTP clock should be tagged in DT with a proper
    "power-domains" property.

    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Stephen Boyd <sboyd@codeaurora.org>
    ---
    v3:
    - Add Acked-by,
    - Use "CPG/MSTP Clock Domain" instead of "CPG Clock Domain",

    v2:
    - Add Acked-by and Reviewed-by,
    - Move core CPG Clock Domain code from the R-Car Gen2 driver to the
    CPG MSTP Clocks driver, as it's generic, and can be used on other
    Renesas SoCs that have a CPG/MSTP block,
    - Scan for an MSTP clock instead of using the first clock tied to the
    device (con_id NULL),
    - Extract R-Car Gen2 specifics from "[PATCH/RFC 1/5] clk: shmobile:
    rcar-gen2: Add CPG Clock Domain support" into this patch.
    ---
    .../clock/renesas,rcar-gen2-cpg-clocks.txt | 26 ++++++++++++++++++++--
    drivers/clk/shmobile/clk-rcar-gen2.c | 2 ++
    2 files changed, 26 insertions(+), 2 deletions(-)

    diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt
    index 56f111bd3e456619..2a9a8edc8f3547b0 100644
    --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt
    +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt
    @@ -2,6 +2,8 @@

    The CPG generates core clocks for the R-Car Gen2 SoCs. It includes three PLLs
    and several fixed ratio dividers.
    +The CPG also provides a Clock Domain for SoC devices, in combination with the
    +CPG Module Stop (MSTP) Clocks.

    Required Properties:

    @@ -20,10 +22,18 @@ Required Properties:
    - clock-output-names: The names of the clocks. Supported clocks are "main",
    "pll0", "pll1", "pll3", "lb", "qspi", "sdh", "sd0", "sd1", "z", "rcan", and
    "adsp"
    + - #power-domain-cells: Must be 0

    +SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed
    +through an MSTP clock should refer to the CPG device node in their
    +"power-domains" property, as documented by the generic PM domain bindings in
    +Documentation/devicetree/bindings/power/power_domain.txt.

    -Example
    --------
    +
    +Examples
    +--------
    +
    + - CPG device node:

    cpg_clocks: cpg_clocks@e6150000 {
    compatible = "renesas,r8a7790-cpg-clocks",
    @@ -34,4 +44,16 @@ Example
    clock-output-names = "main", "pll0, "pll1", "pll3",
    "lb", "qspi", "sdh", "sd0", "sd1", "z",
    "rcan", "adsp";
    + #power-domain-cells = <0>;
    + };
    +
    +
    + - CPG/MSTP Clock Domain member device node:
    +
    + thermal@e61f0000 {
    + compatible = "renesas,thermal-r8a7790", "renesas,rcar-thermal";
    + reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
    + interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
    + clocks = <&mstp5_clks R8A7790_CLK_THERMAL>;
    + power-domains = <&cpg_clocks>;
    };
    diff --git a/drivers/clk/shmobile/clk-rcar-gen2.c b/drivers/clk/shmobile/clk-rcar-gen2.c
    index acfb6d7dbd6bc049..f2c457f494ebb6b0 100644
    --- a/drivers/clk/shmobile/clk-rcar-gen2.c
    +++ b/drivers/clk/shmobile/clk-rcar-gen2.c
    @@ -415,6 +415,8 @@ static void __init rcar_gen2_cpg_clocks_init(struct device_node *np)
    }

    of_clk_add_provider(np, of_clk_src_onecell_get, &cpg->data);
    +
    + cpg_mstp_add_clk_domain(np);
    }
    CLK_OF_DECLARE(rcar_gen2_cpg_clks, "renesas,rcar-gen2-cpg-clocks",
    rcar_gen2_cpg_clocks_init);
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-07-01 18:21    [W:2.375 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site