18c2ecf20Sopenharmony_ciDevice Tree Clock bindings for the Zynq 7000 EPP 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe Zynq EPP has several different clk providers, each with there own bindings. 48c2ecf20Sopenharmony_ciThe purpose of this document is to document their usage. 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciSee clock_bindings.txt for more information on the generic clock bindings. 78c2ecf20Sopenharmony_ciSee Chapter 25 of Zynq TRM for more information about Zynq clocks. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci== Clock Controller == 108c2ecf20Sopenharmony_ciThe clock controller is a logical abstraction of Zynq's clock tree. It reads 118c2ecf20Sopenharmony_cirequired input clock frequencies from the devicetree and acts as clock provider 128c2ecf20Sopenharmony_cifor all clock consumers of PS clocks. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciRequired properties: 158c2ecf20Sopenharmony_ci - #clock-cells : Must be 1 168c2ecf20Sopenharmony_ci - compatible : "xlnx,ps7-clkc" 178c2ecf20Sopenharmony_ci - reg : SLCR offset and size taken via syscon < 0x100 0x100 > 188c2ecf20Sopenharmony_ci - ps-clk-frequency : Frequency of the oscillator providing ps_clk in HZ 198c2ecf20Sopenharmony_ci (usually 33 MHz oscillators are used for Zynq platforms) 208c2ecf20Sopenharmony_ci - clock-output-names : List of strings used to name the clock outputs. Shall be 218c2ecf20Sopenharmony_ci a list of the outputs given below. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciOptional properties: 248c2ecf20Sopenharmony_ci - clocks : as described in the clock bindings 258c2ecf20Sopenharmony_ci - clock-names : as described in the clock bindings 268c2ecf20Sopenharmony_ci - fclk-enable : Bit mask to enable FCLKs statically at boot time. 278c2ecf20Sopenharmony_ci Bit [0..3] correspond to FCLK0..FCLK3. The corresponding 288c2ecf20Sopenharmony_ci FCLK will only be enabled if it is actually running at 298c2ecf20Sopenharmony_ci boot time. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciClock inputs: 328c2ecf20Sopenharmony_ciThe following strings are optional parameters to the 'clock-names' property in 338c2ecf20Sopenharmony_ciorder to provide an optional (E)MIO clock source. 348c2ecf20Sopenharmony_ci - swdt_ext_clk 358c2ecf20Sopenharmony_ci - gem0_emio_clk 368c2ecf20Sopenharmony_ci - gem1_emio_clk 378c2ecf20Sopenharmony_ci - mio_clk_XX # with XX = 00..53 388c2ecf20Sopenharmony_ci... 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciClock outputs: 418c2ecf20Sopenharmony_ci 0: armpll 428c2ecf20Sopenharmony_ci 1: ddrpll 438c2ecf20Sopenharmony_ci 2: iopll 448c2ecf20Sopenharmony_ci 3: cpu_6or4x 458c2ecf20Sopenharmony_ci 4: cpu_3or2x 468c2ecf20Sopenharmony_ci 5: cpu_2x 478c2ecf20Sopenharmony_ci 6: cpu_1x 488c2ecf20Sopenharmony_ci 7: ddr2x 498c2ecf20Sopenharmony_ci 8: ddr3x 508c2ecf20Sopenharmony_ci 9: dci 518c2ecf20Sopenharmony_ci 10: lqspi 528c2ecf20Sopenharmony_ci 11: smc 538c2ecf20Sopenharmony_ci 12: pcap 548c2ecf20Sopenharmony_ci 13: gem0 558c2ecf20Sopenharmony_ci 14: gem1 568c2ecf20Sopenharmony_ci 15: fclk0 578c2ecf20Sopenharmony_ci 16: fclk1 588c2ecf20Sopenharmony_ci 17: fclk2 598c2ecf20Sopenharmony_ci 18: fclk3 608c2ecf20Sopenharmony_ci 19: can0 618c2ecf20Sopenharmony_ci 20: can1 628c2ecf20Sopenharmony_ci 21: sdio0 638c2ecf20Sopenharmony_ci 22: sdio1 648c2ecf20Sopenharmony_ci 23: uart0 658c2ecf20Sopenharmony_ci 24: uart1 668c2ecf20Sopenharmony_ci 25: spi0 678c2ecf20Sopenharmony_ci 26: spi1 688c2ecf20Sopenharmony_ci 27: dma 698c2ecf20Sopenharmony_ci 28: usb0_aper 708c2ecf20Sopenharmony_ci 29: usb1_aper 718c2ecf20Sopenharmony_ci 30: gem0_aper 728c2ecf20Sopenharmony_ci 31: gem1_aper 738c2ecf20Sopenharmony_ci 32: sdio0_aper 748c2ecf20Sopenharmony_ci 33: sdio1_aper 758c2ecf20Sopenharmony_ci 34: spi0_aper 768c2ecf20Sopenharmony_ci 35: spi1_aper 778c2ecf20Sopenharmony_ci 36: can0_aper 788c2ecf20Sopenharmony_ci 37: can1_aper 798c2ecf20Sopenharmony_ci 38: i2c0_aper 808c2ecf20Sopenharmony_ci 39: i2c1_aper 818c2ecf20Sopenharmony_ci 40: uart0_aper 828c2ecf20Sopenharmony_ci 41: uart1_aper 838c2ecf20Sopenharmony_ci 42: gpio_aper 848c2ecf20Sopenharmony_ci 43: lqspi_aper 858c2ecf20Sopenharmony_ci 44: smc_aper 868c2ecf20Sopenharmony_ci 45: swdt 878c2ecf20Sopenharmony_ci 46: dbg_trc 888c2ecf20Sopenharmony_ci 47: dbg_apb 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ciExample: 918c2ecf20Sopenharmony_ci clkc: clkc@100 { 928c2ecf20Sopenharmony_ci #clock-cells = <1>; 938c2ecf20Sopenharmony_ci compatible = "xlnx,ps7-clkc"; 948c2ecf20Sopenharmony_ci ps-clk-frequency = <33333333>; 958c2ecf20Sopenharmony_ci reg = <0x100 0x100>; 968c2ecf20Sopenharmony_ci clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", 978c2ecf20Sopenharmony_ci "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", 988c2ecf20Sopenharmony_ci "dci", "lqspi", "smc", "pcap", "gem0", "gem1", 998c2ecf20Sopenharmony_ci "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", 1008c2ecf20Sopenharmony_ci "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", 1018c2ecf20Sopenharmony_ci "dma", "usb0_aper", "usb1_aper", "gem0_aper", 1028c2ecf20Sopenharmony_ci "gem1_aper", "sdio0_aper", "sdio1_aper", 1038c2ecf20Sopenharmony_ci "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", 1048c2ecf20Sopenharmony_ci "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", 1058c2ecf20Sopenharmony_ci "gpio_aper", "lqspi_aper", "smc_aper", "swdt", 1068c2ecf20Sopenharmony_ci "dbg_trc", "dbg_apb"; 1078c2ecf20Sopenharmony_ci # optional props 1088c2ecf20Sopenharmony_ci clocks = <&clkc 16>, <&clk_foo>; 1098c2ecf20Sopenharmony_ci clock-names = "gem1_emio_clk", "can_mio_clk_23"; 1108c2ecf20Sopenharmony_ci }; 111