On Tue, Apr 21, 2015 at 03:46:51PM +0100, Paul Burton wrote: > Document the devicetree binding for Ingenic SoC CGUs, and add headers > defining the clock specifiers for clocks provided by the JZ4740 & JZ4780 > CGU blocks. > > Signed-off-by: Paul Burton <[email protected]> > Cc: Lars-Peter Clausen <[email protected]> > Cc: Mike Turquette <[email protected]> > Cc: [email protected] > --- > Changes in v3: > - Merge binding documentation for various Ingenic SoCs which differ only > by compatible strings. > > Changes in v2: > - None. > --- > .../devicetree/bindings/clock/ingenic,cgu.txt | 53 +++++++++++++ > include/dt-bindings/clock/jz4740-cgu.h | 37 +++++++++ > include/dt-bindings/clock/jz4780-cgu.h | 88 > ++++++++++++++++++++++ > 3 files changed, 178 insertions(+) > create mode 100644 Documentation/devicetree/bindings/clock/ingenic,cgu.txt > create mode 100644 include/dt-bindings/clock/jz4740-cgu.h > create mode 100644 include/dt-bindings/clock/jz4780-cgu.h > > diff --git a/Documentation/devicetree/bindings/clock/ingenic,cgu.txt > b/Documentation/devicetree/bindings/clock/ingenic,cgu.txt > new file mode 100644 > index 0000000..7421f8c > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/ingenic,cgu.txt > @@ -0,0 +1,53 @@ > +Ingenic SoC CGU binding > + > +The CGU in an Ingenic SoC provides all the clocks generated on-chip. It > +typically includes a variety of PLLs, multiplexers, dividers & gates in order > +to provide many different clock signals derived from only 2 external source > +clocks. > + > +Required properties: > +- compatible : Should be "ingenic,<soctype>-cgu". > + For example "ingenic,jz4740-cgu" or "ingenic,jz4780-cgu". > +- reg : The address & length of the CGU registers. > +- clocks : List of phandle & clock specifiers for clocks external to the TCU.
Suspect TCU is a typo for CGU.
Cheers
James
> + Two such external clocks should be specified - first the external crystal
> + "ext" and second the RTC clock source "rtc".
> +- clock-names : List of name strings for the external clocks.
> +- #clock-cells: Should be 1.
> + Clock consumers specify this argument to identify a clock. The valid values
> + may be found in <dt-bindings/clock/<soctype>-cgu.h>.
> +
> +Example SoC include file:
> +
> +/ {
> + cgu: jz4740-cgu {
> + compatible = "ingenic,jz4740-cgu";
> + reg = <0x10000000 0x100>;
> + #clock-cells = <1>;
> + };
> +
> + uart0: serial@10030000 {
> + clocks = <&cgu JZ4740_CLK_UART0>;
> + };
> +};
> +
> +Example board file:
> +
> +/ {
> + ext: clock@0 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <12000000>;
> + };
> +
> + rtc: clock@1 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <32768>;
> + };
> +
> + &cgu {
> + clocks = <&ext> <&rtc>;
> + clock-names: "ext", "rtc";
> + };
> +};
> diff --git a/include/dt-bindings/clock/jz4740-cgu.h
> b/include/dt-bindings/clock/jz4740-cgu.h
> new file mode 100644
> index 0000000..43153d3
> --- /dev/null
> +++ b/include/dt-bindings/clock/jz4740-cgu.h
> @@ -0,0 +1,37 @@
> +/*
> + * This header provides clock numbers for the ingenic,jz4740-cgu DT binding.
> + *
> + * They are roughly ordered as:
> + * - external clocks
> + * - PLLs
> + * - muxes/dividers in the order they appear in the jz4740 programmers
> manual
> + * - gates in order of their bit in the CLKGR* registers
> + */
> +
> +#ifndef __DT_BINDINGS_CLOCK_JZ4740_CGU_H__
> +#define __DT_BINDINGS_CLOCK_JZ4740_CGU_H__
> +
> +#define JZ4740_CLK_EXT 0
> +#define JZ4740_CLK_RTC 1
> +#define JZ4740_CLK_PLL 2
> +#define JZ4740_CLK_PLL_HALF 3
> +#define JZ4740_CLK_CCLK 4
> +#define JZ4740_CLK_HCLK 5
> +#define JZ4740_CLK_PCLK 6
> +#define JZ4740_CLK_MCLK 7
> +#define JZ4740_CLK_LCD 8
> +#define JZ4740_CLK_LCD_PCLK 9
> +#define JZ4740_CLK_I2S 10
> +#define JZ4740_CLK_SPI 11
> +#define JZ4740_CLK_MMC 12
> +#define JZ4740_CLK_UHC 13
> +#define JZ4740_CLK_UDC 14
> +#define JZ4740_CLK_UART0 15
> +#define JZ4740_CLK_UART1 16
> +#define JZ4740_CLK_DMA 17
> +#define JZ4740_CLK_IPU 18
> +#define JZ4740_CLK_ADC 19
> +#define JZ4740_CLK_I2C 20
> +#define JZ4740_CLK_AIC 21
> +
> +#endif /* __DT_BINDINGS_CLOCK_JZ4740_CGU_H__ */
> diff --git a/include/dt-bindings/clock/jz4780-cgu.h
> b/include/dt-bindings/clock/jz4780-cgu.h
> new file mode 100644
> index 0000000..467165e
> --- /dev/null
> +++ b/include/dt-bindings/clock/jz4780-cgu.h
> @@ -0,0 +1,88 @@
> +/*
> + * This header provides clock numbers for the ingenic,jz4780-cgu DT binding.
> + *
> + * They are roughly ordered as:
> + * - external clocks
> + * - PLLs
> + * - muxes/dividers in the order they appear in the jz4780 programmers
> manual
> + * - gates in order of their bit in the CLKGR* registers
> + */
> +
> +#ifndef __DT_BINDINGS_CLOCK_JZ4780_CGU_H__
> +#define __DT_BINDINGS_CLOCK_JZ4780_CGU_H__
> +
> +#define JZ4780_CLK_EXCLK 0
> +#define JZ4780_CLK_RTCLK 1
> +#define JZ4780_CLK_APLL 2
> +#define JZ4780_CLK_MPLL 3
> +#define JZ4780_CLK_EPLL 4
> +#define JZ4780_CLK_VPLL 5
> +#define JZ4780_CLK_OTGPHY 6
> +#define JZ4780_CLK_SCLKA 7
> +#define JZ4780_CLK_CPUMUX 8
> +#define JZ4780_CLK_CPU 9
> +#define JZ4780_CLK_L2CACHE 10
> +#define JZ4780_CLK_AHB0 11
> +#define JZ4780_CLK_AHB2PMUX 12
> +#define JZ4780_CLK_AHB2 13
> +#define JZ4780_CLK_PCLK 14
> +#define JZ4780_CLK_DDR 15
> +#define JZ4780_CLK_VPU 16
> +#define JZ4780_CLK_I2SPLL 17
> +#define JZ4780_CLK_I2S 18
> +#define JZ4780_CLK_LCD0PIXCLK 19
> +#define JZ4780_CLK_LCD1PIXCLK 20
> +#define JZ4780_CLK_MSCMUX 21
> +#define JZ4780_CLK_MSC0 22
> +#define JZ4780_CLK_MSC1 23
> +#define JZ4780_CLK_MSC2 24
> +#define JZ4780_CLK_UHC 25
> +#define JZ4780_CLK_SSIPLL 26
> +#define JZ4780_CLK_SSI 27
> +#define JZ4780_CLK_CIMMCLK 28
> +#define JZ4780_CLK_PCMPLL 29
> +#define JZ4780_CLK_PCM 30
> +#define JZ4780_CLK_GPU 31
> +#define JZ4780_CLK_HDMI 32
> +#define JZ4780_CLK_BCH 33
> +#define JZ4780_CLK_NEMC 34
> +#define JZ4780_CLK_OTG0 35
> +#define JZ4780_CLK_SSI0 36
> +#define JZ4780_CLK_SMB0 37
> +#define JZ4780_CLK_SMB1 38
> +#define JZ4780_CLK_SCC 39
> +#define JZ4780_CLK_AIC 40
> +#define JZ4780_CLK_TSSI0 41
> +#define JZ4780_CLK_OWI 42
> +#define JZ4780_CLK_KBC 43
> +#define JZ4780_CLK_SADC 44
> +#define JZ4780_CLK_UART0 45
> +#define JZ4780_CLK_UART1 46
> +#define JZ4780_CLK_UART2 47
> +#define JZ4780_CLK_UART3 48
> +#define JZ4780_CLK_SSI1 49
> +#define JZ4780_CLK_SSI2 50
> +#define JZ4780_CLK_PDMA 51
> +#define JZ4780_CLK_GPS 52
> +#define JZ4780_CLK_MAC 53
> +#define JZ4780_CLK_SMB2 54
> +#define JZ4780_CLK_CIM 55
> +#define JZ4780_CLK_LCD 56
> +#define JZ4780_CLK_TVE 57
> +#define JZ4780_CLK_IPU 58
> +#define JZ4780_CLK_DDR0 59
> +#define JZ4780_CLK_DDR1 60
> +#define JZ4780_CLK_SMB3 61
> +#define JZ4780_CLK_TSSI1 62
> +#define JZ4780_CLK_COMPRESS 63
> +#define JZ4780_CLK_AIC1 64
> +#define JZ4780_CLK_GPVLC 65
> +#define JZ4780_CLK_OTG1 66
> +#define JZ4780_CLK_UART4 67
> +#define JZ4780_CLK_AHBMON 68
> +#define JZ4780_CLK_SMB4 69
> +#define JZ4780_CLK_DES 70
> +#define JZ4780_CLK_X2D 71
> +#define JZ4780_CLK_CORE1 72
> +
> +#endif /* __DT_BINDINGS_CLOCK_JZ4780_CGU_H__ */
> --
> 2.3.5
>
>
signature.asc
Description: Digital signature
