2 * Device Tree Source for PIC32MZDA clock data
4 * Purna Chandra Mandal <purna.mandal@microchip.com>
5 * Copyright (C) 2015 Microchip Technology Inc. All rights reserved.
7 * Licensed under GPLv2 or later.
10 /* all fixed rate clocks */
13 POSC:posc_clk { /* On-chip primary oscillator */
15 compatible = "fixed-clock";
16 clock-frequency = <24000000>;
19 FRC:frc_clk { /* internal FRC oscillator */
21 compatible = "fixed-clock";
22 clock-frequency = <8000000>;
25 BFRC:bfrc_clk { /* internal backup FRC oscillator */
27 compatible = "fixed-clock";
28 clock-frequency = <8000000>;
31 LPRC:lprc_clk { /* internal low-power FRC oscillator */
33 compatible = "fixed-clock";
34 clock-frequency = <32000>;
37 /* UPLL provides clock to USBCORE */
40 compatible = "fixed-clock";
41 clock-frequency = <24000000>;
42 clock-output-names = "usbphy_clk";
45 TxCKI:txcki_clk { /* external clock input on TxCLKI pin */
47 compatible = "fixed-clock";
48 clock-frequency = <4000000>;
52 /* external clock input on REFCLKIx pin */
55 compatible = "fixed-clock";
56 clock-frequency = <24000000>;
60 /* PIC32 specific clks */
64 reg = <0x1f801200 0x200>;
65 compatible = "microchip,pic32mzda-clk";
66 ranges = <0 0x1f801200 0x200>;
68 /* secondary oscillator; external input on SOSCI pin */
71 compatible = "microchip,pic32mzda-sosc";
72 clock-frequency = <32768>;
73 reg = <0x000 0x10>, /* enable reg */
74 <0x1d0 0x10>; /* status reg */
75 microchip,bit-mask = <0x02>; /* enable mask */
76 microchip,status-bit-mask = <0x10>; /* status-mask*/
81 compatible = "microchip,pic32mzda-frcdivclk";
83 clock-output-names = "frcdiv_clk";
86 /* System PLL clock */
89 compatible = "microchip,pic32mzda-syspll";
90 reg = <0x020 0x10>, /* SPLL register */
91 <0x1d0 0x10>; /* CLKSTAT register */
92 clocks = <&POSC>, <&FRC>;
93 clock-output-names = "sys_pll";
94 microchip,status-bit-mask = <0x80>; /* SPLLRDY */
97 /* system clock; mux with postdiv & slew */
100 compatible = "microchip,pic32mzda-sysclk-v2";
101 reg = <0x1c0 0x04>; /* SLEWCON */
102 clocks = <&FRCDIV>, <&SYSPLL>, <&POSC>, <&SOSC>,
104 microchip,clock-indices = <0>, <1>, <2>, <4>,
106 clock-output-names = "sys_clk";
109 /* Peripheral bus1 clock */
113 compatible = "microchip,pic32mzda-pbclk";
115 clock-output-names = "pb1_clk";
116 /* used by system modules, not gateable */
117 microchip,ignore-unused;
120 /* Peripheral bus2 clock */
124 compatible = "microchip,pic32mzda-pbclk";
126 clock-output-names = "pb2_clk";
127 /* avoid gating even if unused */
128 microchip,ignore-unused;
131 /* Peripheral bus3 clock */
135 compatible = "microchip,pic32mzda-pbclk";
137 clock-output-names = "pb3_clk";
140 /* Peripheral bus4 clock(I/O ports, GPIO) */
144 compatible = "microchip,pic32mzda-pbclk";
146 clock-output-names = "pb4_clk";
149 /* Peripheral bus clock */
153 compatible = "microchip,pic32mzda-pbclk";
155 clock-output-names = "pb5_clk";
158 /* Peripheral Bus6 clock; */
161 compatible = "microchip,pic32mzda-pbclk";
166 /* Peripheral bus7 clock */
170 compatible = "microchip,pic32mzda-pbclk";
171 /* CPU is driven by this clock; so named */
172 clock-output-names = "cpu_clk";
176 /* Reference Oscillator clock for SPI/I2S */
177 REFCLKO1:refo1_clk@80 {
180 compatible = "microchip,pic32mzda-refoclk";
181 clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
182 <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
183 microchip,clock-indices = <0>, <1>, <2>, <3>, <4>,
185 clock-output-names = "refo1_clk";
188 /* Reference Oscillator clock for SQI */
189 REFCLKO2:refo2_clk@a0 {
192 compatible = "microchip,pic32mzda-refoclk";
193 clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
194 <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
195 microchip,clock-indices = <0>, <1>, <2>, <3>, <4>,
197 clock-output-names = "refo2_clk";
200 /* Reference Oscillator clock, ADC */
201 REFCLKO3:refo3_clk@c0 {
203 compatible = "microchip,pic32mzda-refoclk";
204 clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
205 <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
206 microchip,clock-indices = <0>, <1>, <2>, <3>, <4>,
209 clock-output-names = "refo3_clk";
212 /* Reference Oscillator clock */
213 REFCLKO4:refo4_clk@e0 {
215 compatible = "microchip,pic32mzda-refoclk";
216 clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
217 <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
218 microchip,clock-indices = <0>, <1>, <2>, <3>, <4>,
221 clock-output-names = "refo4_clk";
224 /* Reference Oscillator clock, LCD */
225 REFCLKO5:refo5_clk@100 {
227 compatible = "microchip,pic32mzda-refoclk";
228 clocks = <&SYSCLK>,<&PBCLK1>,<&POSC>,<&FRC>,<&LPRC>,
229 <&SOSC>,<&SYSPLL>,<&REFIx>,<&BFRC>;
230 microchip,clock-indices = <0>, <1>, <2>, <3>, <4>,
233 clock-output-names = "refo5_clk";