···11+* Renesas Clock Pulse Generator / Module Standby and Software Reset22+33+On Renesas ARM SoCs (SH/R-Mobile, R-Car, RZ), the CPG (Clock Pulse Generator)44+and MSSR (Module Standby and Software Reset) blocks are intimately connected,55+and share the same register block.66+77+They provide the following functionalities:88+ - The CPG block generates various core clocks,99+ - The MSSR block provides two functions:1010+ 1. Module Standby, providing a Clock Domain to control the clock supply1111+ to individual SoC devices,1212+ 2. Reset Control, to perform a software reset of individual SoC devices.1313+1414+Required Properties:1515+ - compatible: Must be one of:1616+ - "renesas,r8a7795-cpg-mssr" for the r8a7795 SoC1717+1818+ - reg: Base address and length of the memory resource used by the CPG/MSSR1919+ block2020+2121+ - clocks: References to external parent clocks, one entry for each entry in2222+ clock-names2323+ - clock-names: List of external parent clock names. Valid names are:2424+ - "extal" (r8a7795)2525+ - "extalr" (r8a7795)2626+2727+ - #clock-cells: Must be 22828+ - For CPG core clocks, the two clock specifier cells must be "CPG_CORE"2929+ and a core clock reference, as defined in3030+ <dt-bindings/clock/*-cpg-mssr.h>.3131+ - For module clocks, the two clock specifier cells must be "CPG_MOD" and3232+ a module number, as defined in the datasheet.3333+3434+ - #power-domain-cells: Must be 03535+ - SoC devices that are part of the CPG/MSSR Clock Domain and can be3636+ power-managed through Module Standby should refer to the CPG device3737+ node in their "power-domains" property, as documented by the generic PM3838+ Domain bindings in3939+ Documentation/devicetree/bindings/power/power_domain.txt.4040+4141+4242+Examples4343+--------4444+4545+ - CPG device node:4646+4747+ cpg: clock-controller@e6150000 {4848+ compatible = "renesas,r8a7795-cpg-mssr";4949+ reg = <0 0xe6150000 0 0x1000>;5050+ clocks = <&extal_clk>, <&extalr_clk>;5151+ clock-names = "extal", "extalr";5252+ #clock-cells = <2>;5353+ #power-domain-cells = <0>;5454+ };5555+5656+5757+ - CPG/MSSR Clock Domain member device node:5858+5959+ scif2: serial@e6e88000 {6060+ compatible = "renesas,scif-r8a7795", "renesas,scif";6161+ reg = <0 0xe6e88000 0 64>;6262+ interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;6363+ clocks = <&cpg CPG_MOD 310>;6464+ clock-names = "sci_ick";6565+ dmas = <&dmac1 0x13>, <&dmac1 0x12>;6666+ dma-names = "tx", "rx";6767+ power-domains = <&cpg>;6868+ status = "disabled";6969+ };
+63
include/dt-bindings/clock/r8a7795-cpg-mssr.h
···11+/*22+ * Copyright (C) 2015 Renesas Electronics Corp.33+ *44+ * This program is free software; you can redistribute it and/or modify55+ * it under the terms of the GNU General Public License as published by66+ * the Free Software Foundation; either version 2 of the License, or77+ * (at your option) any later version.88+ */99+#ifndef __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__1010+#define __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__1111+1212+#include <dt-bindings/clock/renesas-cpg-mssr.h>1313+1414+/* r8a7795 CPG Core Clocks */1515+#define R8A7795_CLK_Z 01616+#define R8A7795_CLK_Z2 11717+#define R8A7795_CLK_ZR 21818+#define R8A7795_CLK_ZG 31919+#define R8A7795_CLK_ZTR 42020+#define R8A7795_CLK_ZTRD2 52121+#define R8A7795_CLK_ZT 62222+#define R8A7795_CLK_ZX 72323+#define R8A7795_CLK_S0D1 82424+#define R8A7795_CLK_S0D4 92525+#define R8A7795_CLK_S1D1 102626+#define R8A7795_CLK_S1D2 112727+#define R8A7795_CLK_S1D4 122828+#define R8A7795_CLK_S2D1 132929+#define R8A7795_CLK_S2D2 143030+#define R8A7795_CLK_S2D4 153131+#define R8A7795_CLK_S3D1 163232+#define R8A7795_CLK_S3D2 173333+#define R8A7795_CLK_S3D4 183434+#define R8A7795_CLK_LB 193535+#define R8A7795_CLK_CL 203636+#define R8A7795_CLK_ZB3 213737+#define R8A7795_CLK_ZB3D2 223838+#define R8A7795_CLK_CR 233939+#define R8A7795_CLK_CRD2 244040+#define R8A7795_CLK_SD0H 254141+#define R8A7795_CLK_SD0 264242+#define R8A7795_CLK_SD1H 274343+#define R8A7795_CLK_SD1 284444+#define R8A7795_CLK_SD2H 294545+#define R8A7795_CLK_SD2 304646+#define R8A7795_CLK_SD3H 314747+#define R8A7795_CLK_SD3 324848+#define R8A7795_CLK_SSP2 334949+#define R8A7795_CLK_SSP1 345050+#define R8A7795_CLK_SSPRS 355151+#define R8A7795_CLK_RPC 365252+#define R8A7795_CLK_RPCD2 375353+#define R8A7795_CLK_MSO 385454+#define R8A7795_CLK_CANFD 395555+#define R8A7795_CLK_HDMI 405656+#define R8A7795_CLK_CSI0 415757+#define R8A7795_CLK_CSIREF 425858+#define R8A7795_CLK_CP 435959+#define R8A7795_CLK_CPEX 446060+#define R8A7795_CLK_R 456161+#define R8A7795_CLK_OSC 466262+6363+#endif /* __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__ */
+15
include/dt-bindings/clock/renesas-cpg-mssr.h
···11+/*22+ * Copyright (C) 2015 Renesas Electronics Corp.33+ *44+ * This program is free software; you can redistribute it and/or modify55+ * it under the terms of the GNU General Public License as published by66+ * the Free Software Foundation; either version 2 of the License, or77+ * (at your option) any later version.88+ */99+#ifndef __DT_BINDINGS_CLOCK_RENESAS_CPG_MSSR_H__1010+#define __DT_BINDINGS_CLOCK_RENESAS_CPG_MSSR_H__1111+1212+#define CPG_CORE 0 /* Core Clock */1313+#define CPG_MOD 1 /* Module Clock */1414+1515+#endif /* __DT_BINDINGS_CLOCK_RENESAS_CPG_MSSR_H__ */