diff options
| -rw-r--r-- | arch/arm/boot/dts/integratorap.dts | 35 | ||||
| -rw-r--r-- | arch/arm/boot/dts/integratorcp.dts | 102 |
2 files changed, 135 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/integratorap.dts b/arch/arm/boot/dts/integratorap.dts index e6be9315ff0a..b10e6351da53 100644 --- a/arch/arm/boot/dts/integratorap.dts +++ b/arch/arm/boot/dts/integratorap.dts | |||
| @@ -18,6 +18,28 @@ | |||
| 18 | bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk"; | 18 | bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk"; |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| 21 | /* 24 MHz chrystal on the core module */ | ||
| 22 | xtal24mhz: xtal24mhz@24M { | ||
| 23 | #clock-cells = <0>; | ||
| 24 | compatible = "fixed-clock"; | ||
| 25 | clock-frequency = <24000000>; | ||
| 26 | }; | ||
| 27 | |||
| 28 | pclk: pclk@0 { | ||
| 29 | #clock-cells = <0>; | ||
| 30 | compatible = "fixed-factor-clock"; | ||
| 31 | clock-div = <1>; | ||
| 32 | clock-mult = <1>; | ||
| 33 | clocks = <&xtal24mhz>; | ||
| 34 | }; | ||
| 35 | |||
| 36 | /* The UART clock is 14.74 MHz divided by an ICS525 */ | ||
| 37 | uartclk: uartclk@14.74M { | ||
| 38 | #clock-cells = <0>; | ||
| 39 | compatible = "fixed-clock"; | ||
| 40 | clock-frequency = <14745600>; | ||
| 41 | }; | ||
| 42 | |||
| 21 | syscon { | 43 | syscon { |
| 22 | compatible = "arm,integrator-ap-syscon"; | 44 | compatible = "arm,integrator-ap-syscon"; |
| 23 | reg = <0x11000000 0x100>; | 45 | reg = <0x11000000 0x100>; |
| @@ -28,14 +50,17 @@ | |||
| 28 | 50 | ||
| 29 | timer0: timer@13000000 { | 51 | timer0: timer@13000000 { |
| 30 | compatible = "arm,integrator-timer"; | 52 | compatible = "arm,integrator-timer"; |
| 53 | clocks = <&xtal24mhz>; | ||
| 31 | }; | 54 | }; |
| 32 | 55 | ||
| 33 | timer1: timer@13000100 { | 56 | timer1: timer@13000100 { |
| 34 | compatible = "arm,integrator-timer"; | 57 | compatible = "arm,integrator-timer"; |
| 58 | clocks = <&xtal24mhz>; | ||
| 35 | }; | 59 | }; |
| 36 | 60 | ||
| 37 | timer2: timer@13000200 { | 61 | timer2: timer@13000200 { |
| 38 | compatible = "arm,integrator-timer"; | 62 | compatible = "arm,integrator-timer"; |
| 63 | clocks = <&xtal24mhz>; | ||
| 39 | }; | 64 | }; |
| 40 | 65 | ||
| 41 | pic: pic@14000000 { | 66 | pic: pic@14000000 { |
| @@ -92,26 +117,36 @@ | |||
| 92 | rtc: rtc@15000000 { | 117 | rtc: rtc@15000000 { |
| 93 | compatible = "arm,pl030", "arm,primecell"; | 118 | compatible = "arm,pl030", "arm,primecell"; |
| 94 | arm,primecell-periphid = <0x00041030>; | 119 | arm,primecell-periphid = <0x00041030>; |
| 120 | clocks = <&pclk>; | ||
| 121 | clock-names = "apb_pclk"; | ||
| 95 | }; | 122 | }; |
| 96 | 123 | ||
| 97 | uart0: uart@16000000 { | 124 | uart0: uart@16000000 { |
| 98 | compatible = "arm,pl010", "arm,primecell"; | 125 | compatible = "arm,pl010", "arm,primecell"; |
| 99 | arm,primecell-periphid = <0x00041010>; | 126 | arm,primecell-periphid = <0x00041010>; |
| 127 | clocks = <&uartclk>, <&pclk>; | ||
| 128 | clock-names = "uartclk", "apb_pclk"; | ||
| 100 | }; | 129 | }; |
| 101 | 130 | ||
| 102 | uart1: uart@17000000 { | 131 | uart1: uart@17000000 { |
| 103 | compatible = "arm,pl010", "arm,primecell"; | 132 | compatible = "arm,pl010", "arm,primecell"; |
| 104 | arm,primecell-periphid = <0x00041010>; | 133 | arm,primecell-periphid = <0x00041010>; |
| 134 | clocks = <&uartclk>, <&pclk>; | ||
| 135 | clock-names = "uartclk", "apb_pclk"; | ||
| 105 | }; | 136 | }; |
| 106 | 137 | ||
| 107 | kmi0: kmi@18000000 { | 138 | kmi0: kmi@18000000 { |
| 108 | compatible = "arm,pl050", "arm,primecell"; | 139 | compatible = "arm,pl050", "arm,primecell"; |
| 109 | arm,primecell-periphid = <0x00041050>; | 140 | arm,primecell-periphid = <0x00041050>; |
| 141 | clocks = <&xtal24mhz>, <&pclk>; | ||
| 142 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
| 110 | }; | 143 | }; |
| 111 | 144 | ||
| 112 | kmi1: kmi@19000000 { | 145 | kmi1: kmi@19000000 { |
| 113 | compatible = "arm,pl050", "arm,primecell"; | 146 | compatible = "arm,pl050", "arm,primecell"; |
| 114 | arm,primecell-periphid = <0x00041050>; | 147 | arm,primecell-periphid = <0x00041050>; |
| 148 | clocks = <&xtal24mhz>, <&pclk>; | ||
| 149 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
| 115 | }; | 150 | }; |
| 116 | }; | 151 | }; |
| 117 | }; | 152 | }; |
diff --git a/arch/arm/boot/dts/integratorcp.dts b/arch/arm/boot/dts/integratorcp.dts index a21c17de9a5e..d43f15b4f79a 100644 --- a/arch/arm/boot/dts/integratorcp.dts +++ b/arch/arm/boot/dts/integratorcp.dts | |||
| @@ -13,25 +13,107 @@ | |||
| 13 | bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk"; | 13 | bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk"; |
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | /* | ||
| 17 | * The Integrator/CP overall clocking architecture can be found in | ||
| 18 | * ARM DUI 0184B page 7-28 "Integrator/CP922T system clocks" which | ||
| 19 | * appear to illustrate the layout used in most configurations. | ||
| 20 | */ | ||
| 21 | |||
| 22 | /* The codec chrystal operates at 24.576 MHz */ | ||
| 23 | xtal_codec: xtal24.576@24.576M { | ||
| 24 | #clock-cells = <0>; | ||
| 25 | compatible = "fixed-clock"; | ||
| 26 | clock-frequency = <24576000>; | ||
| 27 | }; | ||
| 28 | |||
| 29 | /* The chrystal is divided by 2 by the codec for the AACI bit clock */ | ||
| 30 | aaci_bitclk: aaci_bitclk@12.288M { | ||
| 31 | #clock-cells = <0>; | ||
| 32 | compatible = "fixed-factor-clock"; | ||
| 33 | clock-div = <2>; | ||
| 34 | clock-mult = <1>; | ||
| 35 | clocks = <&xtal_codec>; | ||
| 36 | }; | ||
| 37 | |||
| 38 | /* This is a 25MHz chrystal on the base board */ | ||
| 39 | xtal25mhz: xtal25mhz@25M { | ||
| 40 | #clock-cells = <0>; | ||
| 41 | compatible = "fixed-clock"; | ||
| 42 | clock-frequency = <25000000>; | ||
| 43 | }; | ||
| 44 | |||
| 45 | /* The UART clock is 14.74 MHz divided from 25MHz by an ICS525 */ | ||
| 46 | uartclk: uartclk@14.74M { | ||
| 47 | #clock-cells = <0>; | ||
| 48 | compatible = "fixed-clock"; | ||
| 49 | clock-frequency = <14745600>; | ||
| 50 | }; | ||
| 51 | |||
| 52 | /* Actually sysclk I think */ | ||
| 53 | pclk: pclk@0 { | ||
| 54 | #clock-cells = <0>; | ||
| 55 | compatible = "fixed-clock"; | ||
| 56 | clock-frequency = <0>; | ||
| 57 | }; | ||
| 58 | |||
| 59 | core-module@10000000 { | ||
| 60 | /* 24 MHz chrystal on the core module */ | ||
| 61 | xtal24mhz: xtal24mhz@24M { | ||
| 62 | #clock-cells = <0>; | ||
| 63 | compatible = "fixed-clock"; | ||
| 64 | clock-frequency = <24000000>; | ||
| 65 | }; | ||
| 66 | |||
| 67 | /* | ||
| 68 | * External oscillator on the core module, usually used | ||
| 69 | * to drive video circuitry. Driven from the 24MHz clock. | ||
| 70 | */ | ||
| 71 | auxosc: cm_aux_osc@25M { | ||
| 72 | #clock-cells = <0>; | ||
| 73 | compatible = "arm,integrator-cm-auxosc"; | ||
| 74 | clocks = <&xtal24mhz>; | ||
| 75 | }; | ||
| 76 | |||
| 77 | /* The KMI clock is the 24 MHz oscillator divided to 8MHz */ | ||
| 78 | kmiclk: kmiclk@1M { | ||
| 79 | #clock-cells = <0>; | ||
| 80 | compatible = "fixed-factor-clock"; | ||
| 81 | clock-div = <3>; | ||
| 82 | clock-mult = <1>; | ||
| 83 | clocks = <&xtal24mhz>; | ||
| 84 | }; | ||
| 85 | |||
| 86 | /* The timer clock is the 24 MHz oscillator divided to 1MHz */ | ||
| 87 | timclk: timclk@1M { | ||
| 88 | #clock-cells = <0>; | ||
| 89 | compatible = "fixed-factor-clock"; | ||
| 90 | clock-div = <24>; | ||
| 91 | clock-mult = <1>; | ||
| 92 | clocks = <&xtal24mhz>; | ||
| 93 | }; | ||
| 94 | }; | ||
| 95 | |||
| 16 | syscon { | 96 | syscon { |
| 17 | compatible = "arm,integrator-cp-syscon"; | 97 | compatible = "arm,integrator-cp-syscon"; |
| 18 | reg = <0xcb000000 0x100>; | 98 | reg = <0xcb000000 0x100>; |
| 19 | }; | 99 | }; |
| 20 | 100 | ||
| 21 | timer0: timer@13000000 { | 101 | timer0: timer@13000000 { |
| 22 | /* TIMER0 runs @ 25MHz */ | 102 | /* TIMER0 runs directly on the 25MHz chrystal */ |
| 23 | compatible = "arm,integrator-cp-timer"; | 103 | compatible = "arm,integrator-cp-timer"; |
| 24 | status = "disabled"; | 104 | clocks = <&xtal25mhz>; |
| 25 | }; | 105 | }; |
| 26 | 106 | ||
| 27 | timer1: timer@13000100 { | 107 | timer1: timer@13000100 { |
| 28 | /* TIMER1 runs @ 1MHz */ | 108 | /* TIMER1 runs @ 1MHz */ |
| 29 | compatible = "arm,integrator-cp-timer"; | 109 | compatible = "arm,integrator-cp-timer"; |
| 110 | clocks = <&timclk>; | ||
| 30 | }; | 111 | }; |
| 31 | 112 | ||
| 32 | timer2: timer@13000200 { | 113 | timer2: timer@13000200 { |
| 33 | /* TIMER2 runs @ 1MHz */ | 114 | /* TIMER2 runs @ 1MHz */ |
| 34 | compatible = "arm,integrator-cp-timer"; | 115 | compatible = "arm,integrator-cp-timer"; |
| 116 | clocks = <&timclk>; | ||
| 35 | }; | 117 | }; |
| 36 | 118 | ||
| 37 | pic: pic@14000000 { | 119 | pic: pic@14000000 { |
| @@ -74,22 +156,32 @@ | |||
| 74 | */ | 156 | */ |
| 75 | rtc@15000000 { | 157 | rtc@15000000 { |
| 76 | compatible = "arm,pl031", "arm,primecell"; | 158 | compatible = "arm,pl031", "arm,primecell"; |
| 159 | clocks = <&pclk>; | ||
| 160 | clock-names = "apb_pclk"; | ||
| 77 | }; | 161 | }; |
| 78 | 162 | ||
| 79 | uart@16000000 { | 163 | uart@16000000 { |
| 80 | compatible = "arm,pl011", "arm,primecell"; | 164 | compatible = "arm,pl011", "arm,primecell"; |
| 165 | clocks = <&uartclk>, <&pclk>; | ||
| 166 | clock-names = "uartclk", "apb_pclk"; | ||
| 81 | }; | 167 | }; |
| 82 | 168 | ||
| 83 | uart@17000000 { | 169 | uart@17000000 { |
| 84 | compatible = "arm,pl011", "arm,primecell"; | 170 | compatible = "arm,pl011", "arm,primecell"; |
| 171 | clocks = <&uartclk>, <&pclk>; | ||
| 172 | clock-names = "uartclk", "apb_pclk"; | ||
| 85 | }; | 173 | }; |
| 86 | 174 | ||
| 87 | kmi@18000000 { | 175 | kmi@18000000 { |
| 88 | compatible = "arm,pl050", "arm,primecell"; | 176 | compatible = "arm,pl050", "arm,primecell"; |
| 177 | clocks = <&kmiclk>, <&pclk>; | ||
| 178 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
| 89 | }; | 179 | }; |
| 90 | 180 | ||
| 91 | kmi@19000000 { | 181 | kmi@19000000 { |
| 92 | compatible = "arm,pl050", "arm,primecell"; | 182 | compatible = "arm,pl050", "arm,primecell"; |
| 183 | clocks = <&kmiclk>, <&pclk>; | ||
| 184 | clock-names = "KMIREFCLK", "apb_pclk"; | ||
| 93 | }; | 185 | }; |
| 94 | 186 | ||
| 95 | /* | 187 | /* |
| @@ -100,18 +192,24 @@ | |||
| 100 | reg = <0x1c000000 0x1000>; | 192 | reg = <0x1c000000 0x1000>; |
| 101 | interrupts = <23 24>; | 193 | interrupts = <23 24>; |
| 102 | max-frequency = <515633>; | 194 | max-frequency = <515633>; |
| 195 | clocks = <&uartclk>, <&pclk>; | ||
| 196 | clock-names = "mclk", "apb_pclk"; | ||
| 103 | }; | 197 | }; |
| 104 | 198 | ||
| 105 | aaci@1d000000 { | 199 | aaci@1d000000 { |
| 106 | compatible = "arm,pl041", "arm,primecell"; | 200 | compatible = "arm,pl041", "arm,primecell"; |
| 107 | reg = <0x1d000000 0x1000>; | 201 | reg = <0x1d000000 0x1000>; |
| 108 | interrupts = <25>; | 202 | interrupts = <25>; |
| 203 | clocks = <&pclk>; | ||
| 204 | clock-names = "apb_pclk"; | ||
| 109 | }; | 205 | }; |
| 110 | 206 | ||
| 111 | clcd@c0000000 { | 207 | clcd@c0000000 { |
| 112 | compatible = "arm,pl110", "arm,primecell"; | 208 | compatible = "arm,pl110", "arm,primecell"; |
| 113 | reg = <0xC0000000 0x1000>; | 209 | reg = <0xC0000000 0x1000>; |
| 114 | interrupts = <22>; | 210 | interrupts = <22>; |
| 211 | clocks = <&auxosc>, <&pclk>; | ||
| 212 | clock-names = "clcd", "apb_pclk"; | ||
| 115 | }; | 213 | }; |
| 116 | }; | 214 | }; |
| 117 | }; | 215 | }; |
