|
@@ -0,0 +1,77 @@
|
|
|
+* NXP LPC1850 Clock Control Unit (CCU)
|
|
|
+
|
|
|
+Each CGU base clock has several clock branches which can be turned on
|
|
|
+or off independently by the Clock Control Units CCU1 or CCU2. The
|
|
|
+branch clocks are distributed between CCU1 and CCU2.
|
|
|
+
|
|
|
+ - Above text taken from NXP LPC1850 User Manual.
|
|
|
+
|
|
|
+This binding uses the common clock binding:
|
|
|
+ Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
|
+
|
|
|
+Required properties:
|
|
|
+- compatible:
|
|
|
+ Should be "nxp,lpc1850-ccu"
|
|
|
+- reg:
|
|
|
+ Shall define the base and range of the address space
|
|
|
+ containing clock control registers
|
|
|
+- #clock-cells:
|
|
|
+ Shall have value <1>. The permitted clock-specifier values
|
|
|
+ are the branch clock names defined in table below.
|
|
|
+- clocks:
|
|
|
+ Shall contain a list of phandles for the base clocks routed
|
|
|
+ from the CGU to the specific CCU. See mapping of base clocks
|
|
|
+ and CCU in table below.
|
|
|
+- clock-names:
|
|
|
+ Shall contain a list of names for the base clock routed
|
|
|
+ from the CGU to the specific CCU. Valid CCU clock names:
|
|
|
+ "base_usb0_clk", "base_periph_clk", "base_usb1_clk",
|
|
|
+ "base_cpu_clk", "base_spifi_clk", "base_spi_clk",
|
|
|
+ "base_apb1_clk", "base_apb3_clk", "base_adchs_clk",
|
|
|
+ "base_sdio_clk", "base_ssp0_clk", "base_ssp1_clk",
|
|
|
+ "base_uart0_clk", "base_uart1_clk", "base_uart2_clk",
|
|
|
+ "base_uart3_clk", "base_audio_clk"
|
|
|
+
|
|
|
+Which branch clocks that are available on the CCU depends on the
|
|
|
+specific LPC part. Check the user manual for your specific part.
|
|
|
+
|
|
|
+A list of CCU clocks can be found in dt-bindings/clock/lpc18xx-ccu.h.
|
|
|
+
|
|
|
+Example board file:
|
|
|
+
|
|
|
+soc {
|
|
|
+ ccu1: clock-controller@40051000 {
|
|
|
+ compatible = "nxp,lpc1850-ccu";
|
|
|
+ reg = <0x40051000 0x1000>;
|
|
|
+ #clock-cells = <1>;
|
|
|
+ clocks = <&cgu BASE_APB3_CLK>, <&cgu BASE_APB1_CLK>,
|
|
|
+ <&cgu BASE_SPIFI_CLK>, <&cgu BASE_CPU_CLK>,
|
|
|
+ <&cgu BASE_PERIPH_CLK>, <&cgu BASE_USB0_CLK>,
|
|
|
+ <&cgu BASE_USB1_CLK>, <&cgu BASE_SPI_CLK>;
|
|
|
+ clock-names = "base_apb3_clk", "base_apb1_clk",
|
|
|
+ "base_spifi_clk", "base_cpu_clk",
|
|
|
+ "base_periph_clk", "base_usb0_clk",
|
|
|
+ "base_usb1_clk", "base_spi_clk";
|
|
|
+ };
|
|
|
+
|
|
|
+ ccu2: clock-controller@40052000 {
|
|
|
+ compatible = "nxp,lpc1850-ccu";
|
|
|
+ reg = <0x40052000 0x1000>;
|
|
|
+ #clock-cells = <1>;
|
|
|
+ clocks = <&cgu BASE_AUDIO_CLK>, <&cgu BASE_UART3_CLK>,
|
|
|
+ <&cgu BASE_UART2_CLK>, <&cgu BASE_UART1_CLK>,
|
|
|
+ <&cgu BASE_UART0_CLK>, <&cgu BASE_SSP1_CLK>,
|
|
|
+ <&cgu BASE_SSP0_CLK>, <&cgu BASE_SDIO_CLK>;
|
|
|
+ clock-names = "base_audio_clk", "base_uart3_clk",
|
|
|
+ "base_uart2_clk", "base_uart1_clk",
|
|
|
+ "base_uart0_clk", "base_ssp1_clk",
|
|
|
+ "base_ssp0_clk", "base_sdio_clk";
|
|
|
+ };
|
|
|
+
|
|
|
+ /* A user of CCU brach clocks */
|
|
|
+ uart1: serial@40082000 {
|
|
|
+ ...
|
|
|
+ clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>;
|
|
|
+ ...
|
|
|
+ };
|
|
|
+};
|