Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'clk-shmobile-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-next

+147
+69
Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt
··· 1 + * Renesas Clock Pulse Generator / Module Standby and Software Reset 2 + 3 + On Renesas ARM SoCs (SH/R-Mobile, R-Car, RZ), the CPG (Clock Pulse Generator) 4 + and MSSR (Module Standby and Software Reset) blocks are intimately connected, 5 + and share the same register block. 6 + 7 + They provide the following functionalities: 8 + - The CPG block generates various core clocks, 9 + - The MSSR block provides two functions: 10 + 1. Module Standby, providing a Clock Domain to control the clock supply 11 + to individual SoC devices, 12 + 2. Reset Control, to perform a software reset of individual SoC devices. 13 + 14 + Required Properties: 15 + - compatible: Must be one of: 16 + - "renesas,r8a7795-cpg-mssr" for the r8a7795 SoC 17 + 18 + - reg: Base address and length of the memory resource used by the CPG/MSSR 19 + block 20 + 21 + - clocks: References to external parent clocks, one entry for each entry in 22 + clock-names 23 + - clock-names: List of external parent clock names. Valid names are: 24 + - "extal" (r8a7795) 25 + - "extalr" (r8a7795) 26 + 27 + - #clock-cells: Must be 2 28 + - For CPG core clocks, the two clock specifier cells must be "CPG_CORE" 29 + and a core clock reference, as defined in 30 + <dt-bindings/clock/*-cpg-mssr.h>. 31 + - For module clocks, the two clock specifier cells must be "CPG_MOD" and 32 + a module number, as defined in the datasheet. 33 + 34 + - #power-domain-cells: Must be 0 35 + - SoC devices that are part of the CPG/MSSR Clock Domain and can be 36 + power-managed through Module Standby should refer to the CPG device 37 + node in their "power-domains" property, as documented by the generic PM 38 + Domain bindings in 39 + Documentation/devicetree/bindings/power/power_domain.txt. 40 + 41 + 42 + Examples 43 + -------- 44 + 45 + - CPG device node: 46 + 47 + cpg: clock-controller@e6150000 { 48 + compatible = "renesas,r8a7795-cpg-mssr"; 49 + reg = <0 0xe6150000 0 0x1000>; 50 + clocks = <&extal_clk>, <&extalr_clk>; 51 + clock-names = "extal", "extalr"; 52 + #clock-cells = <2>; 53 + #power-domain-cells = <0>; 54 + }; 55 + 56 + 57 + - CPG/MSSR Clock Domain member device node: 58 + 59 + scif2: serial@e6e88000 { 60 + compatible = "renesas,scif-r8a7795", "renesas,scif"; 61 + reg = <0 0xe6e88000 0 64>; 62 + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 63 + clocks = <&cpg CPG_MOD 310>; 64 + clock-names = "sci_ick"; 65 + dmas = <&dmac1 0x13>, <&dmac1 0x12>; 66 + dma-names = "tx", "rx"; 67 + power-domains = <&cpg>; 68 + status = "disabled"; 69 + };
+63
include/dt-bindings/clock/r8a7795-cpg-mssr.h
··· 1 + /* 2 + * Copyright (C) 2015 Renesas Electronics Corp. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License as published by 6 + * the Free Software Foundation; either version 2 of the License, or 7 + * (at your option) any later version. 8 + */ 9 + #ifndef __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__ 10 + #define __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__ 11 + 12 + #include <dt-bindings/clock/renesas-cpg-mssr.h> 13 + 14 + /* r8a7795 CPG Core Clocks */ 15 + #define R8A7795_CLK_Z 0 16 + #define R8A7795_CLK_Z2 1 17 + #define R8A7795_CLK_ZR 2 18 + #define R8A7795_CLK_ZG 3 19 + #define R8A7795_CLK_ZTR 4 20 + #define R8A7795_CLK_ZTRD2 5 21 + #define R8A7795_CLK_ZT 6 22 + #define R8A7795_CLK_ZX 7 23 + #define R8A7795_CLK_S0D1 8 24 + #define R8A7795_CLK_S0D4 9 25 + #define R8A7795_CLK_S1D1 10 26 + #define R8A7795_CLK_S1D2 11 27 + #define R8A7795_CLK_S1D4 12 28 + #define R8A7795_CLK_S2D1 13 29 + #define R8A7795_CLK_S2D2 14 30 + #define R8A7795_CLK_S2D4 15 31 + #define R8A7795_CLK_S3D1 16 32 + #define R8A7795_CLK_S3D2 17 33 + #define R8A7795_CLK_S3D4 18 34 + #define R8A7795_CLK_LB 19 35 + #define R8A7795_CLK_CL 20 36 + #define R8A7795_CLK_ZB3 21 37 + #define R8A7795_CLK_ZB3D2 22 38 + #define R8A7795_CLK_CR 23 39 + #define R8A7795_CLK_CRD2 24 40 + #define R8A7795_CLK_SD0H 25 41 + #define R8A7795_CLK_SD0 26 42 + #define R8A7795_CLK_SD1H 27 43 + #define R8A7795_CLK_SD1 28 44 + #define R8A7795_CLK_SD2H 29 45 + #define R8A7795_CLK_SD2 30 46 + #define R8A7795_CLK_SD3H 31 47 + #define R8A7795_CLK_SD3 32 48 + #define R8A7795_CLK_SSP2 33 49 + #define R8A7795_CLK_SSP1 34 50 + #define R8A7795_CLK_SSPRS 35 51 + #define R8A7795_CLK_RPC 36 52 + #define R8A7795_CLK_RPCD2 37 53 + #define R8A7795_CLK_MSO 38 54 + #define R8A7795_CLK_CANFD 39 55 + #define R8A7795_CLK_HDMI 40 56 + #define R8A7795_CLK_CSI0 41 57 + #define R8A7795_CLK_CSIREF 42 58 + #define R8A7795_CLK_CP 43 59 + #define R8A7795_CLK_CPEX 44 60 + #define R8A7795_CLK_R 45 61 + #define R8A7795_CLK_OSC 46 62 + 63 + #endif /* __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__ */
+15
include/dt-bindings/clock/renesas-cpg-mssr.h
··· 1 + /* 2 + * Copyright (C) 2015 Renesas Electronics Corp. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License as published by 6 + * the Free Software Foundation; either version 2 of the License, or 7 + * (at your option) any later version. 8 + */ 9 + #ifndef __DT_BINDINGS_CLOCK_RENESAS_CPG_MSSR_H__ 10 + #define __DT_BINDINGS_CLOCK_RENESAS_CPG_MSSR_H__ 11 + 12 + #define CPG_CORE 0 /* Core Clock */ 13 + #define CPG_MOD 1 /* Module Clock */ 14 + 15 + #endif /* __DT_BINDINGS_CLOCK_RENESAS_CPG_MSSR_H__ */