Add DT binding documentation for lpc1850-ccu clk driver. Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx> --- .../devicetree/bindings/clock/lpc1850-ccu.txt | 146 +++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/lpc1850-ccu.txt diff --git a/Documentation/devicetree/bindings/clock/lpc1850-ccu.txt b/Documentation/devicetree/bindings/clock/lpc1850-ccu.txt new file mode 100644 index 000000000000..aca46805c10a --- /dev/null +++ b/Documentation/devicetree/bindings/clock/lpc1850-ccu.txt @@ -0,0 +1,146 @@ +* 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. + +Which brach clocks that are available on the CCU depends on the +specific LPC part. + +CCU1 branch clocks: +Base clock Branch clock Description +BASE_APB3_CLK CLK_APB3_BUS APB3 bus clock. + CLK_APB3_I2C1 Clock to the I2C1 register interface + and I2C1 peripheral clock. + CLK_APB3_DAC Clock to the DAC register interface. + CLK_APB3_ADC0 Clock to the ADC0 register interface + and ADC0 peripheral clock. + CLK_APB3_ADC1 Clock to the ADC1 register interface + and ADC1 peripheral clock. + CLK_APB3_CAN0 Clock to the C_CAN0 register interface + and C_CAN0 peripheral clock. +BASE_APB1_CLK CLK_APB1_BUS APB1 bus clock. + CLK_APB1_MOTOCON_PWM Clock to the PWM Motor control block and + PWM Motor control peripheral clock. + CLK_APB1_I2C0 Clock to the I2C0 register interface and + I2C0 peripheral clock. + CLK_APB1_I2S Clock to the I2S0 and I2S1 register interfaces + and I2S0 and I2S1 peripheral clock. + CLK_APB1_CAN1 Clock to the C_CAN1 register interface and + C_CAN1 peripheral clock. +BASE_SPIFI_CLK CLK_SPIFI Clock for the SPIFI SCKI clock input. +BASE_CPU_CLK CLK_CPU_BUS M4 bus clock. + CLK_CPU_SPIFI Clock to the SPIFI register interface. + CLK_CPU_GPIO Clock to the GPIO register interface + CLK_CPU_LCD Clock to the LCD register interface. + CLK_CPU_ETHERNET Clock to the Ethernet register interface. + CLK_CPU_USB0 Clock to the USB0 register interface. + CLK_CPU_EMC Clock to the External memory controller. + CLK_CPU_SDIO Clock to the SD/MMC register interface. + CLK_CPU_DMA Clock to the DMA register interface. + CLK_CPU_CORE Clock to the Cortex-M core + CLK_CPU_SCT Clock to the SCT register interface. + CLK_CPU_USB1 Clock to the USB1 register interface. + CLK_CPU_EMC_DIV Clock to the EMC with clock divider. + CLK_CPU_FLASHA Clock to the flash bank A. + CLK_CPU_FLASHB Clock to the flash bank B. + CLK_CPU_M0APP Clock to the M0APP coprocessor. + CLK_CPU_ADCHS Clock to the ADCHS. + CLK_CPU_EEPROM Clock to the EEPROM. + CLK_CPU_WWDT Clock to the WWDT register interface. + CLK_CPU_UART0 Clock to the USART0 register interface. + CLK_CPU_UART1 Clock to the UART1 register interface. + CLK_CPU_SSP0 Clock to the SSP0 register interface. + CLK_CPU_TIMER0 Clock to the timer0 register interface and + timer0 peripheral clock. + CLK_CPU_TIMER1 Clock to the timer1 register interface and + timer1 peripheral clock. + CLK_CPU_SCU Clock to the System control unit register interface. + CLK_CPU_CREG Clock to the CREG register interface. + CLK_CPU_RITIMER Clock to the RI timer register interface and + RI timer peripheral clock. + CLK_CPU_UART2 Clock to the UART2 register interface. + CLK_CPU_UART3 Clock to the UART3 register interface. + CLK_CPU_TIMER2 Clock to the timer2 register interface and + timer2 peripheral clock. + CLK_CPU_TIMER3 Clock to the timer3 register interface and + timer3 peripheral clock. + CLK_CPU_SSP1 Clock to the SSP1 register interface. + CLK_CPU_QEI Clock to the QEI register interface and + QEI peripheral clock. +BASE_PERIPH_CLK CLK_PERIPH_BUS Clock to the peripheral bus and the + Cortex-M0 subsystem AHB multilayer matrix. + CLK_PERIPH_CORE Clock to the Cortex-M0 subsystem core. + CLK_PERIPH_SGPIO Clock to the SGPIO interface. +BASE_USB0_CLK CLK_USB0 USB0 peripheral clock. +BASE_USB1_CLK CLK_USB1 USB1 peripheral clock. +BASE_SPI_CLK CLK_SPI Clock to the SPI interface. +BASE_ADCHS_CLK CLK_ADCHS ADCHS clock. + +CCU2 branch clocks: +BASE_AUDIO_CLK CLK_AUDIO Audio system (I2S) clock. +BASE_UART3_CLK CLK_APB2_UART3 USART3 peripheral clock. +BASE_UART2_CLK CLK_APB2_UART2 USART2 peripheral clock. +BASE_UART1_CLK CLK_APB0_UART1 UART1 peripheral clock. +BASE_UART0_CLK CLK_APB0_UART0 USART0 peripheral clock. +BASE_SSP1_CLK CLK_APB2_SSP1 SSP1 peripheral clock. +BASE_SSP0_CLK CLK_APB0_SSP0 SSP0 peripheral clock. +BASE_SDIO_CLK CLK_SDIO SD/MMC peripheral clock. + +Not all branch clocks are available on all LPC parts. Check the user +manual for your specific part. + +Note that CLK_M3_x and CLK_M4_x have been renamed to CLK_CPU_x here +be more generic since both LPC18xx (M3) and LPC43xx (M4) are +supported. + + +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>; + }; + + 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>; + }; + + /* A user of CCU brach clocks */ + uart1: serial@40082000 { + ... + clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>; + ... + }; +}; -- 1.8.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html