diff options
-rw-r--r-- | arch/powerpc/boot/dts/mpc885ads.dts | 195 | ||||
-rw-r--r-- | arch/powerpc/configs/mpc885_ads_defconfig | 297 | ||||
-rw-r--r-- | arch/powerpc/platforms/8xx/Kconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/8xx/mpc885ads.h | 38 | ||||
-rw-r--r-- | arch/powerpc/platforms/8xx/mpc885ads_setup.c | 450 |
5 files changed, 420 insertions, 561 deletions
diff --git a/arch/powerpc/boot/dts/mpc885ads.dts b/arch/powerpc/boot/dts/mpc885ads.dts index e9aa9d00da24..cbcd16f74c45 100644 --- a/arch/powerpc/boot/dts/mpc885ads.dts +++ b/arch/powerpc/boot/dts/mpc885ads.dts | |||
@@ -2,6 +2,7 @@ | |||
2 | * MPC885 ADS Device Tree Source | 2 | * MPC885 ADS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2006 MontaVista Software, Inc. | 4 | * Copyright 2006 MontaVista Software, Inc. |
5 | * Copyright 2007 Freescale Semiconductor, Inc. | ||
5 | * | 6 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 7 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License as published by the | 8 | * under the terms of the GNU General Public License as published by the |
@@ -12,7 +13,7 @@ | |||
12 | 13 | ||
13 | / { | 14 | / { |
14 | model = "MPC885ADS"; | 15 | model = "MPC885ADS"; |
15 | compatible = "mpc8xx"; | 16 | compatible = "fsl,mpc885ads"; |
16 | #address-cells = <1>; | 17 | #address-cells = <1>; |
17 | #size-cells = <1>; | 18 | #size-cells = <1>; |
18 | 19 | ||
@@ -23,156 +24,188 @@ | |||
23 | PowerPC,885@0 { | 24 | PowerPC,885@0 { |
24 | device_type = "cpu"; | 25 | device_type = "cpu"; |
25 | reg = <0>; | 26 | reg = <0>; |
26 | d-cache-line-size = <20>; // 32 bytes | 27 | d-cache-line-size = <d#16>; |
27 | i-cache-line-size = <20>; // 32 bytes | 28 | i-cache-line-size = <d#16>; |
28 | d-cache-size = <2000>; // L1, 8K | 29 | d-cache-size = <d#8192>; |
29 | i-cache-size = <2000>; // L1, 8K | 30 | i-cache-size = <d#8192>; |
30 | timebase-frequency = <0>; | 31 | timebase-frequency = <0>; |
31 | bus-frequency = <0>; | 32 | bus-frequency = <0>; |
32 | clock-frequency = <0>; | 33 | clock-frequency = <0>; |
33 | interrupts = <f 2>; // decrementer interrupt | 34 | interrupts = <f 2>; // decrementer interrupt |
34 | interrupt-parent = <&Mpc8xx_pic>; | 35 | interrupt-parent = <&PIC>; |
35 | }; | 36 | }; |
36 | }; | 37 | }; |
37 | 38 | ||
38 | memory { | 39 | memory { |
39 | device_type = "memory"; | 40 | device_type = "memory"; |
40 | reg = <00000000 800000>; | 41 | reg = <0 0>; |
41 | }; | 42 | }; |
42 | 43 | ||
43 | soc885@ff000000 { | 44 | localbus@ff000100 { |
45 | compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus"; | ||
46 | #address-cells = <2>; | ||
47 | #size-cells = <1>; | ||
48 | reg = <ff000100 40>; | ||
49 | |||
50 | ranges = < | ||
51 | 0 0 fe000000 00800000 | ||
52 | 1 0 ff080000 00008000 | ||
53 | 5 0 ff0a0000 00008000 | ||
54 | >; | ||
55 | |||
56 | flash@0,0 { | ||
57 | compatible = "jedec-flash"; | ||
58 | reg = <0 0 800000>; | ||
59 | bank-width = <4>; | ||
60 | device-width = <1>; | ||
61 | }; | ||
62 | |||
63 | board-control@1,0 { | ||
64 | reg = <1 0 20 5 300 4>; | ||
65 | compatible = "fsl,mpc885ads-bcsr"; | ||
66 | }; | ||
67 | }; | ||
68 | |||
69 | soc@ff000000 { | ||
70 | compatible = "fsl,mpc885", "fsl,pq1-soc"; | ||
44 | #address-cells = <1>; | 71 | #address-cells = <1>; |
45 | #size-cells = <1>; | 72 | #size-cells = <1>; |
46 | device_type = "soc"; | 73 | device_type = "soc"; |
47 | ranges = <0 ff000000 00100000>; | 74 | ranges = <0 ff000000 00004000>; |
48 | reg = <ff000000 00000200>; | ||
49 | bus-frequency = <0>; | 75 | bus-frequency = <0>; |
50 | mdio@e80 { | 76 | |
51 | device_type = "mdio"; | 77 | // Temporary -- will go away once kernel uses ranges for get_immrbase(). |
52 | compatible = "fs_enet"; | 78 | reg = <ff000000 4000>; |
53 | reg = <e80 8>; | 79 | |
80 | mdio@e00 { | ||
81 | compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio"; | ||
82 | reg = <e00 188>; | ||
54 | #address-cells = <1>; | 83 | #address-cells = <1>; |
55 | #size-cells = <0>; | 84 | #size-cells = <0>; |
56 | Phy0: ethernet-phy@0 { | 85 | |
86 | PHY0: ethernet-phy@0 { | ||
57 | reg = <0>; | 87 | reg = <0>; |
58 | device_type = "ethernet-phy"; | 88 | device_type = "ethernet-phy"; |
59 | }; | 89 | }; |
60 | Phy1: ethernet-phy@1 { | 90 | |
91 | PHY1: ethernet-phy@1 { | ||
61 | reg = <1>; | 92 | reg = <1>; |
62 | device_type = "ethernet-phy"; | 93 | device_type = "ethernet-phy"; |
63 | }; | 94 | }; |
64 | Phy2: ethernet-phy@2 { | 95 | |
96 | PHY2: ethernet-phy@2 { | ||
65 | reg = <2>; | 97 | reg = <2>; |
66 | device_type = "ethernet-phy"; | 98 | device_type = "ethernet-phy"; |
67 | }; | 99 | }; |
68 | }; | 100 | }; |
69 | 101 | ||
70 | fec@e00 { | 102 | ethernet@e00 { |
71 | device_type = "network"; | 103 | device_type = "network"; |
72 | compatible = "fs_enet"; | 104 | compatible = "fsl,mpc885-fec-enet", |
73 | model = "FEC"; | 105 | "fsl,pq1-fec-enet"; |
74 | device-id = <1>; | ||
75 | reg = <e00 188>; | 106 | reg = <e00 188>; |
76 | mac-address = [ 00 00 0C 00 01 FD ]; | 107 | local-mac-address = [ 00 00 00 00 00 00 ]; |
77 | interrupts = <3 1>; | 108 | interrupts = <3 1>; |
78 | interrupt-parent = <&Mpc8xx_pic>; | 109 | interrupt-parent = <&PIC>; |
79 | phy-handle = <&Phy1>; | 110 | phy-handle = <&PHY0>; |
111 | linux,network-index = <0>; | ||
80 | }; | 112 | }; |
81 | 113 | ||
82 | fec@1e00 { | 114 | ethernet@1e00 { |
83 | device_type = "network"; | 115 | device_type = "network"; |
84 | compatible = "fs_enet"; | 116 | compatible = "fsl,mpc885-fec-enet", |
85 | model = "FEC"; | 117 | "fsl,pq1-fec-enet"; |
86 | device-id = <2>; | ||
87 | reg = <1e00 188>; | 118 | reg = <1e00 188>; |
88 | mac-address = [ 00 00 0C 00 02 FD ]; | 119 | local-mac-address = [ 00 00 00 00 00 00 ]; |
89 | interrupts = <7 1>; | 120 | interrupts = <7 1>; |
90 | interrupt-parent = <&Mpc8xx_pic>; | 121 | interrupt-parent = <&PIC>; |
91 | phy-handle = <&Phy2>; | 122 | phy-handle = <&PHY1>; |
123 | linux,network-index = <1>; | ||
92 | }; | 124 | }; |
93 | 125 | ||
94 | Mpc8xx_pic: pic@ff000000 { | 126 | PIC: interrupt-controller@0 { |
95 | interrupt-controller; | 127 | interrupt-controller; |
96 | #address-cells = <0>; | ||
97 | #interrupt-cells = <2>; | 128 | #interrupt-cells = <2>; |
98 | reg = <0 24>; | 129 | reg = <0 24>; |
99 | device_type = "mpc8xx-pic"; | 130 | compatible = "fsl,mpc885-pic", "fsl,pq1-pic"; |
100 | compatible = "CPM"; | ||
101 | }; | 131 | }; |
102 | 132 | ||
103 | pcmcia@0080 { | 133 | pcmcia@80 { |
104 | #address-cells = <3>; | 134 | #address-cells = <3>; |
105 | #interrupt-cells = <1>; | 135 | #interrupt-cells = <1>; |
106 | #size-cells = <2>; | 136 | #size-cells = <2>; |
107 | compatible = "fsl,pq-pcmcia"; | 137 | compatible = "fsl,pq-pcmcia"; |
108 | device_type = "pcmcia"; | 138 | device_type = "pcmcia"; |
109 | reg = <80 80>; | 139 | reg = <80 80>; |
110 | interrupt-parent = <&Mpc8xx_pic>; | 140 | interrupt-parent = <&PIC>; |
111 | interrupts = <d 1>; | 141 | interrupts = <d 1>; |
112 | }; | 142 | }; |
113 | 143 | ||
114 | cpm@ff000000 { | 144 | cpm@9c0 { |
115 | #address-cells = <1>; | 145 | #address-cells = <1>; |
116 | #size-cells = <1>; | 146 | #size-cells = <1>; |
117 | device_type = "cpm"; | 147 | compatible = "fsl,mpc885-cpm", "fsl,cpm1"; |
118 | model = "CPM"; | ||
119 | ranges = <0 0 4000>; | ||
120 | reg = <860 f0>; | ||
121 | command-proc = <9c0>; | 148 | command-proc = <9c0>; |
122 | brg-frequency = <0>; | 149 | interrupts = <0>; // cpm error interrupt |
123 | interrupts = <0 2>; // cpm error interrupt | 150 | interrupt-parent = <&CPM_PIC>; |
124 | interrupt-parent = <&Cpm_pic>; | 151 | reg = <9c0 40 2000 1c00>; |
152 | ranges; | ||
125 | 153 | ||
126 | Cpm_pic: pic@930 { | 154 | brg@9f0 { |
155 | compatible = "fsl,mpc885-brg", | ||
156 | "fsl,cpm1-brg", | ||
157 | "fsl,cpm-brg"; | ||
158 | reg = <9f0 10>; | ||
159 | }; | ||
160 | |||
161 | CPM_PIC: interrupt-controller@930 { | ||
127 | interrupt-controller; | 162 | interrupt-controller; |
128 | #address-cells = <0>; | 163 | #interrupt-cells = <1>; |
129 | #interrupt-cells = <2>; | ||
130 | interrupts = <5 2 0 2>; | 164 | interrupts = <5 2 0 2>; |
131 | interrupt-parent = <&Mpc8xx_pic>; | 165 | interrupt-parent = <&PIC>; |
132 | reg = <930 20>; | 166 | reg = <930 20>; |
133 | device_type = "cpm-pic"; | 167 | compatible = "fsl,mpc885-cpm-pic", |
134 | compatible = "CPM"; | 168 | "fsl,cpm1-pic"; |
135 | }; | 169 | }; |
136 | 170 | ||
137 | smc@a80 { | 171 | serial@a80 { |
138 | device_type = "serial"; | 172 | device_type = "serial"; |
139 | compatible = "cpm_uart"; | 173 | compatible = "fsl,mpc885-smc-uart", |
140 | model = "SMC"; | 174 | "fsl,cpm1-smc-uart"; |
141 | device-id = <1>; | ||
142 | reg = <a80 10 3e80 40>; | 175 | reg = <a80 10 3e80 40>; |
143 | clock-setup = <00ffffff 0>; | 176 | interrupts = <4>; |
144 | rx-clock = <1>; | 177 | interrupt-parent = <&CPM_PIC>; |
145 | tx-clock = <1>; | 178 | fsl,cpm-brg = <1>; |
146 | current-speed = <0>; | 179 | fsl,cpm-command = <0090>; |
147 | interrupts = <4 3>; | ||
148 | interrupt-parent = <&Cpm_pic>; | ||
149 | }; | 180 | }; |
150 | 181 | ||
151 | smc@a90 { | 182 | serial@a90 { |
152 | device_type = "serial"; | 183 | device_type = "serial"; |
153 | compatible = "cpm_uart"; | 184 | compatible = "fsl,mpc885-smc-uart", |
154 | model = "SMC"; | 185 | "fsl,cpm1-smc-uart"; |
155 | device-id = <2>; | 186 | reg = <a90 10 3f80 40>; |
156 | reg = <a90 20 3f80 40>; | 187 | interrupts = <3>; |
157 | clock-setup = <ff00ffff 90000>; | 188 | interrupt-parent = <&CPM_PIC>; |
158 | rx-clock = <2>; | 189 | fsl,cpm-brg = <2>; |
159 | tx-clock = <2>; | 190 | fsl,cpm-command = <00d0>; |
160 | current-speed = <0>; | ||
161 | interrupts = <3 3>; | ||
162 | interrupt-parent = <&Cpm_pic>; | ||
163 | }; | 191 | }; |
164 | 192 | ||
165 | scc@a40 { | 193 | ethernet@a40 { |
166 | device_type = "network"; | 194 | device_type = "network"; |
167 | compatible = "fs_enet"; | 195 | compatible = "fsl,mpc885-scc-enet", |
168 | model = "SCC"; | 196 | "fsl,cpm1-scc-enet"; |
169 | device-id = <3>; | 197 | reg = <a40 18 3e00 100>; |
170 | reg = <a40 18 3e00 80>; | 198 | local-mac-address = [ 00 00 00 00 00 00 ]; |
171 | mac-address = [ 00 00 0C 00 03 FD ]; | 199 | interrupts = <1c>; |
172 | interrupts = <1c 3>; | 200 | interrupt-parent = <&CPM_PIC>; |
173 | interrupt-parent = <&Cpm_pic>; | 201 | phy-handle = <&PHY2>; |
174 | phy-handle = <&Phy2>; | 202 | fsl,cpm-command = <0080>; |
203 | linux,network-index = <2>; | ||
175 | }; | 204 | }; |
176 | }; | 205 | }; |
177 | }; | 206 | }; |
207 | |||
208 | chosen { | ||
209 | linux,stdout-path = "/soc/cpm/serial@a80"; | ||
210 | }; | ||
178 | }; | 211 | }; |
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig index d27e1f8c38fa..482d99db6870 100644 --- a/arch/powerpc/configs/mpc885_ads_defconfig +++ b/arch/powerpc/configs/mpc885_ads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.23-rc4 | 3 | # Linux kernel version: 2.6.23-rc3 |
4 | # Tue Aug 28 21:24:45 2007 | 4 | # Mon Aug 27 15:23:16 2007 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_OF=y | |||
38 | # CONFIG_PPC_UDBG_16550 is not set | 38 | # CONFIG_PPC_UDBG_16550 is not set |
39 | # CONFIG_GENERIC_TBSYNC is not set | 39 | # CONFIG_GENERIC_TBSYNC is not set |
40 | CONFIG_AUDIT_ARCH=y | 40 | CONFIG_AUDIT_ARCH=y |
41 | CONFIG_GENERIC_BUG=y | ||
41 | # CONFIG_DEFAULT_UIMAGE is not set | 42 | # CONFIG_DEFAULT_UIMAGE is not set |
42 | # CONFIG_PPC_DCR_NATIVE is not set | 43 | # CONFIG_PPC_DCR_NATIVE is not set |
43 | # CONFIG_PPC_DCR_MMIO is not set | 44 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -69,24 +70,25 @@ CONFIG_SYSCTL=y | |||
69 | CONFIG_EMBEDDED=y | 70 | CONFIG_EMBEDDED=y |
70 | # CONFIG_SYSCTL_SYSCALL is not set | 71 | # CONFIG_SYSCTL_SYSCALL is not set |
71 | CONFIG_KALLSYMS=y | 72 | CONFIG_KALLSYMS=y |
73 | # CONFIG_KALLSYMS_ALL is not set | ||
72 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 74 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
73 | # CONFIG_HOTPLUG is not set | 75 | CONFIG_HOTPLUG=y |
74 | CONFIG_PRINTK=y | 76 | CONFIG_PRINTK=y |
75 | # CONFIG_BUG is not set | 77 | CONFIG_BUG=y |
76 | CONFIG_ELF_CORE=y | 78 | # CONFIG_ELF_CORE is not set |
77 | # CONFIG_BASE_FULL is not set | 79 | # CONFIG_BASE_FULL is not set |
78 | CONFIG_FUTEX=y | 80 | # CONFIG_FUTEX is not set |
79 | CONFIG_ANON_INODES=y | 81 | CONFIG_ANON_INODES=y |
80 | # CONFIG_EPOLL is not set | 82 | CONFIG_EPOLL=y |
81 | CONFIG_SIGNALFD=y | 83 | CONFIG_SIGNALFD=y |
82 | CONFIG_TIMERFD=y | 84 | CONFIG_TIMERFD=y |
83 | CONFIG_EVENTFD=y | 85 | CONFIG_EVENTFD=y |
84 | CONFIG_SHMEM=y | 86 | CONFIG_SHMEM=y |
85 | # CONFIG_VM_EVENT_COUNTERS is not set | 87 | # CONFIG_VM_EVENT_COUNTERS is not set |
86 | CONFIG_SLAB=y | 88 | CONFIG_SLUB_DEBUG=y |
87 | # CONFIG_SLUB is not set | 89 | # CONFIG_SLAB is not set |
90 | CONFIG_SLUB=y | ||
88 | # CONFIG_SLOB is not set | 91 | # CONFIG_SLOB is not set |
89 | CONFIG_RT_MUTEXES=y | ||
90 | # CONFIG_TINY_SHMEM is not set | 92 | # CONFIG_TINY_SHMEM is not set |
91 | CONFIG_BASE_SMALL=1 | 93 | CONFIG_BASE_SMALL=1 |
92 | # CONFIG_MODULES is not set | 94 | # CONFIG_MODULES is not set |
@@ -100,14 +102,14 @@ CONFIG_BLOCK=y | |||
100 | # IO Schedulers | 102 | # IO Schedulers |
101 | # | 103 | # |
102 | CONFIG_IOSCHED_NOOP=y | 104 | CONFIG_IOSCHED_NOOP=y |
103 | CONFIG_IOSCHED_AS=y | 105 | # CONFIG_IOSCHED_AS is not set |
104 | CONFIG_IOSCHED_DEADLINE=y | 106 | CONFIG_IOSCHED_DEADLINE=y |
105 | CONFIG_IOSCHED_CFQ=y | 107 | # CONFIG_IOSCHED_CFQ is not set |
106 | CONFIG_DEFAULT_AS=y | 108 | # CONFIG_DEFAULT_AS is not set |
107 | # CONFIG_DEFAULT_DEADLINE is not set | 109 | CONFIG_DEFAULT_DEADLINE=y |
108 | # CONFIG_DEFAULT_CFQ is not set | 110 | # CONFIG_DEFAULT_CFQ is not set |
109 | # CONFIG_DEFAULT_NOOP is not set | 111 | # CONFIG_DEFAULT_NOOP is not set |
110 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 112 | CONFIG_DEFAULT_IOSCHED="deadline" |
111 | 113 | ||
112 | # | 114 | # |
113 | # Platform support | 115 | # Platform support |
@@ -120,6 +122,7 @@ CONFIG_CPM1=y | |||
120 | # CONFIG_MPC8XXFADS is not set | 122 | # CONFIG_MPC8XXFADS is not set |
121 | # CONFIG_MPC86XADS is not set | 123 | # CONFIG_MPC86XADS is not set |
122 | CONFIG_MPC885ADS=y | 124 | CONFIG_MPC885ADS=y |
125 | # CONFIG_PPC_EP88XC is not set | ||
123 | 126 | ||
124 | # | 127 | # |
125 | # Freescale Ethernet driver platform-specific options | 128 | # Freescale Ethernet driver platform-specific options |
@@ -137,6 +140,7 @@ CONFIG_MPC8xx_SECOND_ETH_FEC2=y | |||
137 | # | 140 | # |
138 | CONFIG_8xx_COPYBACK=y | 141 | CONFIG_8xx_COPYBACK=y |
139 | # CONFIG_8xx_CPU6 is not set | 142 | # CONFIG_8xx_CPU6 is not set |
143 | CONFIG_8xx_CPU15=y | ||
140 | CONFIG_NO_UCODE_PATCH=y | 144 | CONFIG_NO_UCODE_PATCH=y |
141 | # CONFIG_USB_SOF_UCODE_PATCH is not set | 145 | # CONFIG_USB_SOF_UCODE_PATCH is not set |
142 | # CONFIG_I2C_SPI_UCODE_PATCH is not set | 146 | # CONFIG_I2C_SPI_UCODE_PATCH is not set |
@@ -153,23 +157,23 @@ CONFIG_NO_UCODE_PATCH=y | |||
153 | # CONFIG_GENERIC_IOMAP is not set | 157 | # CONFIG_GENERIC_IOMAP is not set |
154 | # CONFIG_CPU_FREQ is not set | 158 | # CONFIG_CPU_FREQ is not set |
155 | # CONFIG_CPM2 is not set | 159 | # CONFIG_CPM2 is not set |
156 | # CONFIG_FSL_ULI1575 is not set | 160 | CONFIG_PPC_CPM_NEW_BINDING=y |
157 | 161 | ||
158 | # | 162 | # |
159 | # Kernel options | 163 | # Kernel options |
160 | # | 164 | # |
161 | # CONFIG_HIGHMEM is not set | 165 | # CONFIG_HIGHMEM is not set |
162 | # CONFIG_HZ_100 is not set | 166 | CONFIG_HZ_100=y |
163 | # CONFIG_HZ_250 is not set | 167 | # CONFIG_HZ_250 is not set |
164 | # CONFIG_HZ_300 is not set | 168 | # CONFIG_HZ_300 is not set |
165 | CONFIG_HZ_1000=y | 169 | # CONFIG_HZ_1000 is not set |
166 | CONFIG_HZ=1000 | 170 | CONFIG_HZ=100 |
167 | CONFIG_PREEMPT_NONE=y | 171 | CONFIG_PREEMPT_NONE=y |
168 | # CONFIG_PREEMPT_VOLUNTARY is not set | 172 | # CONFIG_PREEMPT_VOLUNTARY is not set |
169 | # CONFIG_PREEMPT is not set | 173 | # CONFIG_PREEMPT is not set |
170 | CONFIG_BINFMT_ELF=y | 174 | CONFIG_BINFMT_ELF=y |
171 | # CONFIG_BINFMT_MISC is not set | 175 | # CONFIG_BINFMT_MISC is not set |
172 | CONFIG_MATH_EMULATION=y | 176 | # CONFIG_MATH_EMULATION is not set |
173 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 177 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
174 | CONFIG_ARCH_FLATMEM_ENABLE=y | 178 | CONFIG_ARCH_FLATMEM_ENABLE=y |
175 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 179 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -185,11 +189,12 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
185 | CONFIG_ZONE_DMA_FLAG=1 | 189 | CONFIG_ZONE_DMA_FLAG=1 |
186 | CONFIG_BOUNCE=y | 190 | CONFIG_BOUNCE=y |
187 | CONFIG_VIRT_TO_BUS=y | 191 | CONFIG_VIRT_TO_BUS=y |
188 | # CONFIG_PROC_DEVICETREE is not set | 192 | CONFIG_PROC_DEVICETREE=y |
189 | # CONFIG_CMDLINE_BOOL is not set | 193 | # CONFIG_CMDLINE_BOOL is not set |
190 | # CONFIG_PM is not set | 194 | # CONFIG_PM is not set |
191 | # CONFIG_SECCOMP is not set | 195 | # CONFIG_SECCOMP is not set |
192 | # CONFIG_WANT_DEVICE_TREE is not set | 196 | CONFIG_WANT_DEVICE_TREE=y |
197 | CONFIG_DEVICE_TREE="mpc885ads.dts" | ||
193 | CONFIG_ISA_DMA_API=y | 198 | CONFIG_ISA_DMA_API=y |
194 | 199 | ||
195 | # | 200 | # |
@@ -206,6 +211,7 @@ CONFIG_FSL_SOC=y | |||
206 | # | 211 | # |
207 | # PCCARD (PCMCIA/CardBus) support | 212 | # PCCARD (PCMCIA/CardBus) support |
208 | # | 213 | # |
214 | # CONFIG_PCCARD is not set | ||
209 | 215 | ||
210 | # | 216 | # |
211 | # Advanced setup | 217 | # Advanced setup |
@@ -234,10 +240,6 @@ CONFIG_NET=y | |||
234 | CONFIG_PACKET=y | 240 | CONFIG_PACKET=y |
235 | # CONFIG_PACKET_MMAP is not set | 241 | # CONFIG_PACKET_MMAP is not set |
236 | CONFIG_UNIX=y | 242 | CONFIG_UNIX=y |
237 | CONFIG_XFRM=y | ||
238 | # CONFIG_XFRM_USER is not set | ||
239 | # CONFIG_XFRM_SUB_POLICY is not set | ||
240 | # CONFIG_XFRM_MIGRATE is not set | ||
241 | # CONFIG_NET_KEY is not set | 243 | # CONFIG_NET_KEY is not set |
242 | CONFIG_INET=y | 244 | CONFIG_INET=y |
243 | CONFIG_IP_MULTICAST=y | 245 | CONFIG_IP_MULTICAST=y |
@@ -257,9 +259,9 @@ CONFIG_SYN_COOKIES=y | |||
257 | # CONFIG_INET_IPCOMP is not set | 259 | # CONFIG_INET_IPCOMP is not set |
258 | # CONFIG_INET_XFRM_TUNNEL is not set | 260 | # CONFIG_INET_XFRM_TUNNEL is not set |
259 | # CONFIG_INET_TUNNEL is not set | 261 | # CONFIG_INET_TUNNEL is not set |
260 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 262 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
261 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 263 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
262 | CONFIG_INET_XFRM_MODE_BEET=y | 264 | # CONFIG_INET_XFRM_MODE_BEET is not set |
263 | CONFIG_INET_DIAG=y | 265 | CONFIG_INET_DIAG=y |
264 | CONFIG_INET_TCP_DIAG=y | 266 | CONFIG_INET_TCP_DIAG=y |
265 | # CONFIG_TCP_CONG_ADVANCED is not set | 267 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -319,22 +321,91 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
319 | # | 321 | # |
320 | CONFIG_STANDALONE=y | 322 | CONFIG_STANDALONE=y |
321 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 323 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
324 | # CONFIG_FW_LOADER is not set | ||
325 | # CONFIG_DEBUG_DRIVER is not set | ||
326 | # CONFIG_DEBUG_DEVRES is not set | ||
322 | # CONFIG_SYS_HYPERVISOR is not set | 327 | # CONFIG_SYS_HYPERVISOR is not set |
323 | # CONFIG_CONNECTOR is not set | 328 | # CONFIG_CONNECTOR is not set |
324 | # CONFIG_MTD is not set | 329 | CONFIG_MTD=y |
330 | # CONFIG_MTD_DEBUG is not set | ||
331 | # CONFIG_MTD_CONCAT is not set | ||
332 | # CONFIG_MTD_PARTITIONS is not set | ||
333 | |||
334 | # | ||
335 | # User Modules And Translation Layers | ||
336 | # | ||
337 | CONFIG_MTD_CHAR=y | ||
338 | CONFIG_MTD_BLKDEVS=y | ||
339 | CONFIG_MTD_BLOCK=y | ||
340 | # CONFIG_FTL is not set | ||
341 | # CONFIG_NFTL is not set | ||
342 | # CONFIG_INFTL is not set | ||
343 | # CONFIG_RFD_FTL is not set | ||
344 | # CONFIG_SSFDC is not set | ||
345 | |||
346 | # | ||
347 | # RAM/ROM/Flash chip drivers | ||
348 | # | ||
349 | # CONFIG_MTD_CFI is not set | ||
350 | CONFIG_MTD_JEDECPROBE=y | ||
351 | CONFIG_MTD_GEN_PROBE=y | ||
352 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
353 | CONFIG_MTD_CFI_NOSWAP=y | ||
354 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
355 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
356 | CONFIG_MTD_CFI_GEOMETRY=y | ||
357 | # CONFIG_MTD_MAP_BANK_WIDTH_1 is not set | ||
358 | # CONFIG_MTD_MAP_BANK_WIDTH_2 is not set | ||
359 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
360 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
361 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
362 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
363 | # CONFIG_MTD_CFI_I1 is not set | ||
364 | # CONFIG_MTD_CFI_I2 is not set | ||
365 | CONFIG_MTD_CFI_I4=y | ||
366 | # CONFIG_MTD_CFI_I8 is not set | ||
367 | # CONFIG_MTD_OTP is not set | ||
368 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
369 | CONFIG_MTD_CFI_AMDSTD=y | ||
370 | # CONFIG_MTD_CFI_STAA is not set | ||
371 | CONFIG_MTD_CFI_UTIL=y | ||
372 | # CONFIG_MTD_RAM is not set | ||
373 | # CONFIG_MTD_ROM is not set | ||
374 | # CONFIG_MTD_ABSENT is not set | ||
375 | |||
376 | # | ||
377 | # Mapping drivers for chip access | ||
378 | # | ||
379 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
380 | # CONFIG_MTD_PHYSMAP is not set | ||
381 | CONFIG_MTD_PHYSMAP_OF=y | ||
382 | # CONFIG_MTD_PLATRAM is not set | ||
383 | |||
384 | # | ||
385 | # Self-contained MTD device drivers | ||
386 | # | ||
387 | # CONFIG_MTD_SLRAM is not set | ||
388 | # CONFIG_MTD_PHRAM is not set | ||
389 | # CONFIG_MTD_MTDRAM is not set | ||
390 | # CONFIG_MTD_BLOCK2MTD is not set | ||
391 | |||
392 | # | ||
393 | # Disk-On-Chip Device Drivers | ||
394 | # | ||
395 | # CONFIG_MTD_DOC2000 is not set | ||
396 | # CONFIG_MTD_DOC2001 is not set | ||
397 | # CONFIG_MTD_DOC2001PLUS is not set | ||
398 | # CONFIG_MTD_NAND is not set | ||
399 | # CONFIG_MTD_ONENAND is not set | ||
400 | |||
401 | # | ||
402 | # UBI - Unsorted block images | ||
403 | # | ||
404 | # CONFIG_MTD_UBI is not set | ||
325 | CONFIG_OF_DEVICE=y | 405 | CONFIG_OF_DEVICE=y |
326 | # CONFIG_PARPORT is not set | 406 | # CONFIG_PARPORT is not set |
327 | CONFIG_BLK_DEV=y | 407 | # CONFIG_BLK_DEV is not set |
328 | # CONFIG_BLK_DEV_FD is not set | 408 | # CONFIG_MISC_DEVICES is not set |
329 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
330 | CONFIG_BLK_DEV_LOOP=y | ||
331 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
332 | # CONFIG_BLK_DEV_NBD is not set | ||
333 | # CONFIG_BLK_DEV_RAM is not set | ||
334 | # CONFIG_CDROM_PKTCDVD is not set | ||
335 | # CONFIG_ATA_OVER_ETH is not set | ||
336 | CONFIG_MISC_DEVICES=y | ||
337 | # CONFIG_EEPROM_93CX6 is not set | ||
338 | # CONFIG_IDE is not set | 409 | # CONFIG_IDE is not set |
339 | 410 | ||
340 | # | 411 | # |
@@ -368,16 +439,15 @@ CONFIG_DAVICOM_PHY=y | |||
368 | # CONFIG_SMSC_PHY is not set | 439 | # CONFIG_SMSC_PHY is not set |
369 | # CONFIG_BROADCOM_PHY is not set | 440 | # CONFIG_BROADCOM_PHY is not set |
370 | # CONFIG_ICPLUS_PHY is not set | 441 | # CONFIG_ICPLUS_PHY is not set |
371 | CONFIG_FIXED_PHY=y | 442 | # CONFIG_FIXED_PHY is not set |
372 | CONFIG_FIXED_MII_10_FDX=y | 443 | # CONFIG_MDIO_BITBANG is not set |
373 | # CONFIG_FIXED_MII_100_FDX is not set | ||
374 | CONFIG_NET_ETHERNET=y | 444 | CONFIG_NET_ETHERNET=y |
375 | CONFIG_MII=y | 445 | CONFIG_MII=y |
376 | CONFIG_FS_ENET=y | 446 | CONFIG_FS_ENET=y |
377 | CONFIG_FS_ENET_HAS_SCC=y | 447 | # CONFIG_FS_ENET_HAS_SCC is not set |
378 | CONFIG_FS_ENET_HAS_FEC=y | 448 | CONFIG_FS_ENET_HAS_FEC=y |
379 | CONFIG_NETDEV_1000=y | 449 | # CONFIG_NETDEV_1000 is not set |
380 | CONFIG_NETDEV_10000=y | 450 | # CONFIG_NETDEV_10000 is not set |
381 | 451 | ||
382 | # | 452 | # |
383 | # Wireless LAN | 453 | # Wireless LAN |
@@ -397,55 +467,12 @@ CONFIG_NETDEV_10000=y | |||
397 | # | 467 | # |
398 | # Input device support | 468 | # Input device support |
399 | # | 469 | # |
400 | CONFIG_INPUT=y | 470 | # CONFIG_INPUT is not set |
401 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
402 | # CONFIG_INPUT_POLLDEV is not set | ||
403 | |||
404 | # | ||
405 | # Userland interfaces | ||
406 | # | ||
407 | CONFIG_INPUT_MOUSEDEV=y | ||
408 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
409 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
410 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
411 | # CONFIG_INPUT_JOYDEV is not set | ||
412 | # CONFIG_INPUT_TSDEV is not set | ||
413 | # CONFIG_INPUT_EVDEV is not set | ||
414 | # CONFIG_INPUT_EVBUG is not set | ||
415 | |||
416 | # | ||
417 | # Input Device Drivers | ||
418 | # | ||
419 | CONFIG_INPUT_KEYBOARD=y | ||
420 | CONFIG_KEYBOARD_ATKBD=y | ||
421 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
422 | # CONFIG_KEYBOARD_LKKBD is not set | ||
423 | # CONFIG_KEYBOARD_XTKBD is not set | ||
424 | # CONFIG_KEYBOARD_NEWTON is not set | ||
425 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
426 | CONFIG_INPUT_MOUSE=y | ||
427 | CONFIG_MOUSE_PS2=y | ||
428 | CONFIG_MOUSE_PS2_ALPS=y | ||
429 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
430 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
431 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
432 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
433 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
434 | # CONFIG_MOUSE_SERIAL is not set | ||
435 | # CONFIG_MOUSE_VSXXXAA is not set | ||
436 | # CONFIG_INPUT_JOYSTICK is not set | ||
437 | # CONFIG_INPUT_TABLET is not set | ||
438 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
439 | # CONFIG_INPUT_MISC is not set | ||
440 | 471 | ||
441 | # | 472 | # |
442 | # Hardware I/O ports | 473 | # Hardware I/O ports |
443 | # | 474 | # |
444 | CONFIG_SERIO=y | 475 | # CONFIG_SERIO is not set |
445 | CONFIG_SERIO_I8042=y | ||
446 | CONFIG_SERIO_SERPORT=y | ||
447 | CONFIG_SERIO_LIBPS2=y | ||
448 | # CONFIG_SERIO_RAW is not set | ||
449 | # CONFIG_GAMEPORT is not set | 476 | # CONFIG_GAMEPORT is not set |
450 | 477 | ||
451 | # | 478 | # |
@@ -493,20 +520,7 @@ CONFIG_GEN_RTC=y | |||
493 | # CONFIG_SPI_MASTER is not set | 520 | # CONFIG_SPI_MASTER is not set |
494 | # CONFIG_W1 is not set | 521 | # CONFIG_W1 is not set |
495 | # CONFIG_POWER_SUPPLY is not set | 522 | # CONFIG_POWER_SUPPLY is not set |
496 | CONFIG_HWMON=y | 523 | # CONFIG_HWMON is not set |
497 | # CONFIG_HWMON_VID is not set | ||
498 | # CONFIG_SENSORS_ABITUGURU is not set | ||
499 | # CONFIG_SENSORS_ABITUGURU3 is not set | ||
500 | # CONFIG_SENSORS_F71805F is not set | ||
501 | # CONFIG_SENSORS_IT87 is not set | ||
502 | # CONFIG_SENSORS_PC87360 is not set | ||
503 | # CONFIG_SENSORS_PC87427 is not set | ||
504 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
505 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
506 | # CONFIG_SENSORS_VT1211 is not set | ||
507 | # CONFIG_SENSORS_W83627HF is not set | ||
508 | # CONFIG_SENSORS_W83627EHF is not set | ||
509 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
510 | 524 | ||
511 | # | 525 | # |
512 | # Multifunction device drivers | 526 | # Multifunction device drivers |
@@ -530,7 +544,7 @@ CONFIG_DAB=y | |||
530 | # | 544 | # |
531 | # CONFIG_DISPLAY_SUPPORT is not set | 545 | # CONFIG_DISPLAY_SUPPORT is not set |
532 | # CONFIG_VGASTATE is not set | 546 | # CONFIG_VGASTATE is not set |
533 | CONFIG_VIDEO_OUTPUT_CONTROL=y | 547 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
534 | # CONFIG_FB is not set | 548 | # CONFIG_FB is not set |
535 | # CONFIG_FB_IBM_GXT4500 is not set | 549 | # CONFIG_FB_IBM_GXT4500 is not set |
536 | 550 | ||
@@ -538,22 +552,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y | |||
538 | # Sound | 552 | # Sound |
539 | # | 553 | # |
540 | # CONFIG_SOUND is not set | 554 | # CONFIG_SOUND is not set |
541 | CONFIG_HID_SUPPORT=y | 555 | # CONFIG_USB_SUPPORT is not set |
542 | CONFIG_HID=y | ||
543 | # CONFIG_HID_DEBUG is not set | ||
544 | CONFIG_USB_SUPPORT=y | ||
545 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
546 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
547 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
548 | |||
549 | # | ||
550 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
551 | # | ||
552 | |||
553 | # | ||
554 | # USB Gadget Support | ||
555 | # | ||
556 | # CONFIG_USB_GADGET is not set | ||
557 | # CONFIG_MMC is not set | 556 | # CONFIG_MMC is not set |
558 | # CONFIG_NEW_LEDS is not set | 557 | # CONFIG_NEW_LEDS is not set |
559 | # CONFIG_EDAC is not set | 558 | # CONFIG_EDAC is not set |
@@ -580,19 +579,9 @@ CONFIG_USB_SUPPORT=y | |||
580 | # | 579 | # |
581 | # File systems | 580 | # File systems |
582 | # | 581 | # |
583 | CONFIG_EXT2_FS=y | 582 | # CONFIG_EXT2_FS is not set |
584 | CONFIG_EXT2_FS_XATTR=y | 583 | # CONFIG_EXT3_FS is not set |
585 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
586 | # CONFIG_EXT2_FS_SECURITY is not set | ||
587 | # CONFIG_EXT2_FS_XIP is not set | ||
588 | CONFIG_EXT3_FS=y | ||
589 | CONFIG_EXT3_FS_XATTR=y | ||
590 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
591 | # CONFIG_EXT3_FS_SECURITY is not set | ||
592 | # CONFIG_EXT4DEV_FS is not set | 584 | # CONFIG_EXT4DEV_FS is not set |
593 | CONFIG_JBD=y | ||
594 | # CONFIG_JBD_DEBUG is not set | ||
595 | CONFIG_FS_MBCACHE=y | ||
596 | # CONFIG_REISERFS_FS is not set | 585 | # CONFIG_REISERFS_FS is not set |
597 | # CONFIG_JFS_FS is not set | 586 | # CONFIG_JFS_FS is not set |
598 | # CONFIG_FS_POSIX_ACL is not set | 587 | # CONFIG_FS_POSIX_ACL is not set |
@@ -601,10 +590,9 @@ CONFIG_FS_MBCACHE=y | |||
601 | # CONFIG_OCFS2_FS is not set | 590 | # CONFIG_OCFS2_FS is not set |
602 | # CONFIG_MINIX_FS is not set | 591 | # CONFIG_MINIX_FS is not set |
603 | # CONFIG_ROMFS_FS is not set | 592 | # CONFIG_ROMFS_FS is not set |
604 | CONFIG_INOTIFY=y | 593 | # CONFIG_INOTIFY is not set |
605 | CONFIG_INOTIFY_USER=y | ||
606 | # CONFIG_QUOTA is not set | 594 | # CONFIG_QUOTA is not set |
607 | CONFIG_DNOTIFY=y | 595 | # CONFIG_DNOTIFY is not set |
608 | # CONFIG_AUTOFS_FS is not set | 596 | # CONFIG_AUTOFS_FS is not set |
609 | # CONFIG_AUTOFS4_FS is not set | 597 | # CONFIG_AUTOFS4_FS is not set |
610 | # CONFIG_FUSE_FS is not set | 598 | # CONFIG_FUSE_FS is not set |
@@ -645,6 +633,7 @@ CONFIG_RAMFS=y | |||
645 | # CONFIG_BEFS_FS is not set | 633 | # CONFIG_BEFS_FS is not set |
646 | # CONFIG_BFS_FS is not set | 634 | # CONFIG_BFS_FS is not set |
647 | # CONFIG_EFS_FS is not set | 635 | # CONFIG_EFS_FS is not set |
636 | # CONFIG_JFFS2_FS is not set | ||
648 | CONFIG_CRAMFS=y | 637 | CONFIG_CRAMFS=y |
649 | # CONFIG_VXFS_FS is not set | 638 | # CONFIG_VXFS_FS is not set |
650 | # CONFIG_HPFS_FS is not set | 639 | # CONFIG_HPFS_FS is not set |
@@ -711,15 +700,13 @@ CONFIG_MSDOS_PARTITION=y | |||
711 | # | 700 | # |
712 | # Library routines | 701 | # Library routines |
713 | # | 702 | # |
714 | CONFIG_BITREVERSE=y | 703 | # CONFIG_CRC_CCITT is not set |
715 | CONFIG_CRC_CCITT=y | ||
716 | # CONFIG_CRC16 is not set | 704 | # CONFIG_CRC16 is not set |
717 | # CONFIG_CRC_ITU_T is not set | 705 | # CONFIG_CRC_ITU_T is not set |
718 | CONFIG_CRC32=y | 706 | # CONFIG_CRC32 is not set |
719 | # CONFIG_CRC7 is not set | 707 | # CONFIG_CRC7 is not set |
720 | # CONFIG_LIBCRC32C is not set | 708 | # CONFIG_LIBCRC32C is not set |
721 | CONFIG_ZLIB_INFLATE=y | 709 | CONFIG_ZLIB_INFLATE=y |
722 | CONFIG_PLIST=y | ||
723 | CONFIG_HAS_IOMEM=y | 710 | CONFIG_HAS_IOMEM=y |
724 | CONFIG_HAS_IOPORT=y | 711 | CONFIG_HAS_IOPORT=y |
725 | CONFIG_HAS_DMA=y | 712 | CONFIG_HAS_DMA=y |
@@ -734,11 +721,33 @@ CONFIG_HAS_DMA=y | |||
734 | # | 721 | # |
735 | # CONFIG_PRINTK_TIME is not set | 722 | # CONFIG_PRINTK_TIME is not set |
736 | CONFIG_ENABLE_MUST_CHECK=y | 723 | CONFIG_ENABLE_MUST_CHECK=y |
737 | # CONFIG_MAGIC_SYSRQ is not set | 724 | CONFIG_MAGIC_SYSRQ=y |
738 | # CONFIG_UNUSED_SYMBOLS is not set | 725 | # CONFIG_UNUSED_SYMBOLS is not set |
739 | # CONFIG_DEBUG_FS is not set | 726 | # CONFIG_DEBUG_FS is not set |
740 | # CONFIG_HEADERS_CHECK is not set | 727 | # CONFIG_HEADERS_CHECK is not set |
741 | # CONFIG_DEBUG_KERNEL is not set | 728 | CONFIG_DEBUG_KERNEL=y |
729 | # CONFIG_DEBUG_SHIRQ is not set | ||
730 | CONFIG_DETECT_SOFTLOCKUP=y | ||
731 | CONFIG_SCHED_DEBUG=y | ||
732 | # CONFIG_SCHEDSTATS is not set | ||
733 | # CONFIG_TIMER_STATS is not set | ||
734 | # CONFIG_SLUB_DEBUG_ON is not set | ||
735 | # CONFIG_DEBUG_SPINLOCK is not set | ||
736 | # CONFIG_DEBUG_MUTEXES is not set | ||
737 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
738 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
739 | # CONFIG_DEBUG_KOBJECT is not set | ||
740 | CONFIG_DEBUG_BUGVERBOSE=y | ||
741 | CONFIG_DEBUG_INFO=y | ||
742 | # CONFIG_DEBUG_VM is not set | ||
743 | # CONFIG_DEBUG_LIST is not set | ||
744 | CONFIG_FORCED_INLINING=y | ||
745 | # CONFIG_FAULT_INJECTION is not set | ||
746 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
747 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
748 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
749 | # CONFIG_DEBUGGER is not set | ||
750 | # CONFIG_BDI_SWITCH is not set | ||
742 | # CONFIG_PPC_EARLY_DEBUG is not set | 751 | # CONFIG_PPC_EARLY_DEBUG is not set |
743 | 752 | ||
744 | # | 753 | # |
diff --git a/arch/powerpc/platforms/8xx/Kconfig b/arch/powerpc/platforms/8xx/Kconfig index 322b155f24ec..0d4ff0ae0746 100644 --- a/arch/powerpc/platforms/8xx/Kconfig +++ b/arch/powerpc/platforms/8xx/Kconfig | |||
@@ -26,6 +26,7 @@ config MPC86XADS | |||
26 | config MPC885ADS | 26 | config MPC885ADS |
27 | bool "MPC885ADS" | 27 | bool "MPC885ADS" |
28 | select CPM1 | 28 | select CPM1 |
29 | select PPC_CPM_NEW_BINDING | ||
29 | help | 30 | help |
30 | Freescale Semiconductor MPC885 Application Development System (ADS). | 31 | Freescale Semiconductor MPC885 Application Development System (ADS). |
31 | Also known as DUET. | 32 | Also known as DUET. |
diff --git a/arch/powerpc/platforms/8xx/mpc885ads.h b/arch/powerpc/platforms/8xx/mpc885ads.h index a21e528f26c6..a5076668bad6 100644 --- a/arch/powerpc/platforms/8xx/mpc885ads.h +++ b/arch/powerpc/platforms/8xx/mpc885ads.h | |||
@@ -17,25 +17,10 @@ | |||
17 | 17 | ||
18 | #include <sysdev/fsl_soc.h> | 18 | #include <sysdev/fsl_soc.h> |
19 | 19 | ||
20 | /* U-Boot maps BCSR to 0xff080000 */ | ||
21 | #define BCSR_ADDR ((uint)0xff080000) | ||
22 | #define BCSR_SIZE ((uint)32) | ||
23 | #define BCSR0 ((uint)(BCSR_ADDR + 0x00)) | ||
24 | #define BCSR1 ((uint)(BCSR_ADDR + 0x04)) | ||
25 | #define BCSR2 ((uint)(BCSR_ADDR + 0x08)) | ||
26 | #define BCSR3 ((uint)(BCSR_ADDR + 0x0c)) | ||
27 | #define BCSR4 ((uint)(BCSR_ADDR + 0x10)) | ||
28 | |||
29 | #define CFG_PHYDEV_ADDR ((uint)0xff0a0000) | ||
30 | #define BCSR5 ((uint)(CFG_PHYDEV_ADDR + 0x300)) | ||
31 | |||
32 | #define MPC8xx_CPM_OFFSET (0x9c0) | 20 | #define MPC8xx_CPM_OFFSET (0x9c0) |
33 | #define CPM_MAP_ADDR (get_immrbase() + MPC8xx_CPM_OFFSET) | 21 | #define CPM_MAP_ADDR (get_immrbase() + MPC8xx_CPM_OFFSET) |
34 | #define CPM_IRQ_OFFSET 16 // for compability with cpm_uart driver | 22 | #define CPM_IRQ_OFFSET 16 // for compability with cpm_uart driver |
35 | 23 | ||
36 | #define PCMCIA_MEM_ADDR ((uint)0xff020000) | ||
37 | #define PCMCIA_MEM_SIZE ((uint)(64 * 1024)) | ||
38 | |||
39 | /* Bits of interest in the BCSRs. | 24 | /* Bits of interest in the BCSRs. |
40 | */ | 25 | */ |
41 | #define BCSR1_ETHEN ((uint)0x20000000) | 26 | #define BCSR1_ETHEN ((uint)0x20000000) |
@@ -64,28 +49,5 @@ | |||
64 | #define BCSR5_MII1_EN 0x02 | 49 | #define BCSR5_MII1_EN 0x02 |
65 | #define BCSR5_MII1_RST 0x01 | 50 | #define BCSR5_MII1_RST 0x01 |
66 | 51 | ||
67 | /* Interrupt level assignments */ | ||
68 | #define PHY_INTERRUPT SIU_IRQ7 /* PHY link change interrupt */ | ||
69 | #define SIU_INT_FEC1 SIU_LEVEL1 /* FEC1 interrupt */ | ||
70 | #define SIU_INT_FEC2 SIU_LEVEL3 /* FEC2 interrupt */ | ||
71 | #define FEC_INTERRUPT SIU_INT_FEC1 /* FEC interrupt */ | ||
72 | |||
73 | /* We don't use the 8259 */ | ||
74 | #define NR_8259_INTS 0 | ||
75 | |||
76 | /* CPM Ethernet through SCC3 */ | ||
77 | #define PA_ENET_RXD ((ushort)0x0040) | ||
78 | #define PA_ENET_TXD ((ushort)0x0080) | ||
79 | #define PE_ENET_TCLK ((uint)0x00004000) | ||
80 | #define PE_ENET_RCLK ((uint)0x00008000) | ||
81 | #define PE_ENET_TENA ((uint)0x00000010) | ||
82 | #define PC_ENET_CLSN ((ushort)0x0400) | ||
83 | #define PC_ENET_RENA ((ushort)0x0800) | ||
84 | |||
85 | /* Control bits in the SICR to route TCLK (CLK5) and RCLK (CLK6) to | ||
86 | * SCC3. Also, make sure GR3 (bit 8) and SC3 (bit 9) are zero */ | ||
87 | #define SICR_ENET_MASK ((uint)0x00ff0000) | ||
88 | #define SICR_ENET_CLKRT ((uint)0x002c0000) | ||
89 | |||
90 | #endif /* __ASM_MPC885ADS_H__ */ | 52 | #endif /* __ASM_MPC885ADS_H__ */ |
91 | #endif /* __KERNEL__ */ | 53 | #endif /* __KERNEL__ */ |
diff --git a/arch/powerpc/platforms/8xx/mpc885ads_setup.c b/arch/powerpc/platforms/8xx/mpc885ads_setup.c index bad08683f7ae..2cf1b6a75173 100644 --- a/arch/powerpc/platforms/8xx/mpc885ads_setup.c +++ b/arch/powerpc/platforms/8xx/mpc885ads_setup.c | |||
@@ -1,11 +1,13 @@ | |||
1 | /*arch/powerpc/platforms/8xx/mpc885ads_setup.c | 1 | /* |
2 | * | ||
3 | * Platform setup for the Freescale mpc885ads board | 2 | * Platform setup for the Freescale mpc885ads board |
4 | * | 3 | * |
5 | * Vitaly Bordug <vbordug@ru.mvista.com> | 4 | * Vitaly Bordug <vbordug@ru.mvista.com> |
6 | * | 5 | * |
7 | * Copyright 2005 MontaVista Software Inc. | 6 | * Copyright 2005 MontaVista Software Inc. |
8 | * | 7 | * |
8 | * Heavily modified by Scott Wood <scottwood@freescale.com> | ||
9 | * Copyright 2007 Freescale Semiconductor, Inc. | ||
10 | * | ||
9 | * This file is licensed under the terms of the GNU General Public License | 11 | * This file is licensed under the terms of the GNU General Public License |
10 | * version 2. This program is licensed "as is" without any warranty of any | 12 | * version 2. This program is licensed "as is" without any warranty of any |
11 | * kind, whether express or implied. | 13 | * kind, whether express or implied. |
@@ -18,12 +20,12 @@ | |||
18 | #include <linux/ioport.h> | 20 | #include <linux/ioport.h> |
19 | #include <linux/device.h> | 21 | #include <linux/device.h> |
20 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
21 | #include <linux/root_dev.h> | ||
22 | 23 | ||
23 | #include <linux/fs_enet_pd.h> | 24 | #include <linux/fs_enet_pd.h> |
24 | #include <linux/fs_uart_pd.h> | 25 | #include <linux/fs_uart_pd.h> |
25 | #include <linux/fsl_devices.h> | 26 | #include <linux/fsl_devices.h> |
26 | #include <linux/mii.h> | 27 | #include <linux/mii.h> |
28 | #include <linux/of_platform.h> | ||
27 | 29 | ||
28 | #include <asm/delay.h> | 30 | #include <asm/delay.h> |
29 | #include <asm/io.h> | 31 | #include <asm/io.h> |
@@ -36,34 +38,24 @@ | |||
36 | #include <asm/8xx_immap.h> | 38 | #include <asm/8xx_immap.h> |
37 | #include <asm/commproc.h> | 39 | #include <asm/commproc.h> |
38 | #include <asm/fs_pd.h> | 40 | #include <asm/fs_pd.h> |
39 | #include <asm/prom.h> | 41 | #include <asm/udbg.h> |
40 | 42 | ||
41 | #include <sysdev/commproc.h> | 43 | #include <sysdev/commproc.h> |
42 | 44 | ||
43 | static void init_smc1_uart_ioports(struct fs_uart_platform_info *fpi); | 45 | static u32 __iomem *bcsr, *bcsr5; |
44 | static void init_smc2_uart_ioports(struct fs_uart_platform_info *fpi); | ||
45 | static void init_scc3_ioports(struct fs_platform_info *ptr); | ||
46 | 46 | ||
47 | #ifdef CONFIG_PCMCIA_M8XX | 47 | #ifdef CONFIG_PCMCIA_M8XX |
48 | static void pcmcia_hw_setup(int slot, int enable) | 48 | static void pcmcia_hw_setup(int slot, int enable) |
49 | { | 49 | { |
50 | unsigned *bcsr_io; | ||
51 | |||
52 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
53 | if (enable) | 50 | if (enable) |
54 | clrbits32(bcsr_io, BCSR1_PCCEN); | 51 | clrbits32(&bcsr[1], BCSR1_PCCEN); |
55 | else | 52 | else |
56 | setbits32(bcsr_io, BCSR1_PCCEN); | 53 | setbits32(&bcsr[1], BCSR1_PCCEN); |
57 | |||
58 | iounmap(bcsr_io); | ||
59 | } | 54 | } |
60 | 55 | ||
61 | static int pcmcia_set_voltage(int slot, int vcc, int vpp) | 56 | static int pcmcia_set_voltage(int slot, int vcc, int vpp) |
62 | { | 57 | { |
63 | u32 reg = 0; | 58 | u32 reg = 0; |
64 | unsigned *bcsr_io; | ||
65 | |||
66 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
67 | 59 | ||
68 | switch (vcc) { | 60 | switch (vcc) { |
69 | case 0: | 61 | case 0: |
@@ -98,334 +90,196 @@ static int pcmcia_set_voltage(int slot, int vcc, int vpp) | |||
98 | } | 90 | } |
99 | 91 | ||
100 | /* first, turn off all power */ | 92 | /* first, turn off all power */ |
101 | clrbits32(bcsr_io, 0x00610000); | 93 | clrbits32(&bcsr[1], 0x00610000); |
102 | 94 | ||
103 | /* enable new powersettings */ | 95 | /* enable new powersettings */ |
104 | setbits32(bcsr_io, reg); | 96 | setbits32(&bcsr[1], reg); |
105 | 97 | ||
106 | iounmap(bcsr_io); | ||
107 | return 0; | 98 | return 0; |
108 | } | 99 | } |
109 | #endif | 100 | #endif |
110 | 101 | ||
111 | void __init mpc885ads_board_setup(void) | 102 | struct cpm_pin { |
112 | { | 103 | int port, pin, flags; |
113 | cpm8xx_t *cp; | 104 | }; |
114 | unsigned int *bcsr_io; | ||
115 | u8 tmpval8; | ||
116 | |||
117 | #ifdef CONFIG_FS_ENET | ||
118 | iop8xx_t *io_port; | ||
119 | #endif | ||
120 | |||
121 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
122 | cp = (cpm8xx_t *) immr_map(im_cpm); | ||
123 | |||
124 | if (bcsr_io == NULL) { | ||
125 | printk(KERN_CRIT "Could not remap BCSR\n"); | ||
126 | return; | ||
127 | } | ||
128 | #ifdef CONFIG_SERIAL_CPM_SMC1 | ||
129 | clrbits32(bcsr_io, BCSR1_RS232EN_1); | ||
130 | clrbits32(&cp->cp_simode, 0xe0000000 >> 17); /* brg1 */ | ||
131 | tmpval8 = in_8(&(cp->cp_smc[0].smc_smcm)) | (SMCM_RX | SMCM_TX); | ||
132 | out_8(&(cp->cp_smc[0].smc_smcm), tmpval8); | ||
133 | clrbits16(&cp->cp_smc[0].smc_smcmr, SMCMR_REN | SMCMR_TEN); /* brg1 */ | ||
134 | #else | ||
135 | setbits32(bcsr_io, BCSR1_RS232EN_1); | ||
136 | out_be16(&cp->cp_smc[0].smc_smcmr, 0); | ||
137 | out_8(&cp->cp_smc[0].smc_smce, 0); | ||
138 | #endif | ||
139 | |||
140 | #ifdef CONFIG_SERIAL_CPM_SMC2 | ||
141 | clrbits32(bcsr_io, BCSR1_RS232EN_2); | ||
142 | clrbits32(&cp->cp_simode, 0xe0000000 >> 1); | ||
143 | setbits32(&cp->cp_simode, 0x20000000 >> 1); /* brg2 */ | ||
144 | tmpval8 = in_8(&(cp->cp_smc[1].smc_smcm)) | (SMCM_RX | SMCM_TX); | ||
145 | out_8(&(cp->cp_smc[1].smc_smcm), tmpval8); | ||
146 | clrbits16(&cp->cp_smc[1].smc_smcmr, SMCMR_REN | SMCMR_TEN); | ||
147 | |||
148 | init_smc2_uart_ioports(0); | ||
149 | #else | ||
150 | setbits32(bcsr_io, BCSR1_RS232EN_2); | ||
151 | out_be16(&cp->cp_smc[1].smc_smcmr, 0); | ||
152 | out_8(&cp->cp_smc[1].smc_smce, 0); | ||
153 | #endif | ||
154 | immr_unmap(cp); | ||
155 | iounmap(bcsr_io); | ||
156 | |||
157 | #ifdef CONFIG_FS_ENET | ||
158 | /* use MDC for MII (common) */ | ||
159 | io_port = (iop8xx_t *) immr_map(im_ioport); | ||
160 | setbits16(&io_port->iop_pdpar, 0x0080); | ||
161 | clrbits16(&io_port->iop_pddir, 0x0080); | ||
162 | |||
163 | bcsr_io = ioremap(BCSR5, sizeof(unsigned long)); | ||
164 | clrbits32(bcsr_io, BCSR5_MII1_EN); | ||
165 | clrbits32(bcsr_io, BCSR5_MII1_RST); | ||
166 | #ifndef CONFIG_FC_ENET_HAS_SCC | ||
167 | clrbits32(bcsr_io, BCSR5_MII2_EN); | ||
168 | clrbits32(bcsr_io, BCSR5_MII2_RST); | ||
169 | 105 | ||
170 | #endif | 106 | static struct cpm_pin mpc885ads_pins[] = { |
171 | iounmap(bcsr_io); | 107 | /* SMC1 */ |
172 | immr_unmap(io_port); | 108 | {CPM_PORTB, 24, CPM_PIN_INPUT}, /* RX */ |
109 | {CPM_PORTB, 25, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* TX */ | ||
173 | 110 | ||
111 | /* SMC2 */ | ||
112 | #ifndef CONFIG_MPC8xx_SECOND_ETH_FEC2 | ||
113 | {CPM_PORTE, 21, CPM_PIN_INPUT}, /* RX */ | ||
114 | {CPM_PORTE, 20, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* TX */ | ||
174 | #endif | 115 | #endif |
175 | 116 | ||
176 | #ifdef CONFIG_PCMCIA_M8XX | 117 | /* SCC3 */ |
177 | /*Set up board specific hook-ups */ | 118 | {CPM_PORTA, 9, CPM_PIN_INPUT}, /* RX */ |
178 | m8xx_pcmcia_ops.hw_ctrl = pcmcia_hw_setup; | 119 | {CPM_PORTA, 8, CPM_PIN_INPUT}, /* TX */ |
179 | m8xx_pcmcia_ops.voltage_set = pcmcia_set_voltage; | 120 | {CPM_PORTC, 4, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_GPIO}, /* RENA */ |
121 | {CPM_PORTC, 5, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_GPIO}, /* CLSN */ | ||
122 | {CPM_PORTE, 27, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* TENA */ | ||
123 | {CPM_PORTE, 17, CPM_PIN_INPUT}, /* CLK5 */ | ||
124 | {CPM_PORTE, 16, CPM_PIN_INPUT}, /* CLK6 */ | ||
125 | |||
126 | /* MII1 */ | ||
127 | {CPM_PORTA, 0, CPM_PIN_INPUT}, | ||
128 | {CPM_PORTA, 1, CPM_PIN_INPUT}, | ||
129 | {CPM_PORTA, 2, CPM_PIN_INPUT}, | ||
130 | {CPM_PORTA, 3, CPM_PIN_INPUT}, | ||
131 | {CPM_PORTA, 4, CPM_PIN_OUTPUT}, | ||
132 | {CPM_PORTA, 10, CPM_PIN_OUTPUT}, | ||
133 | {CPM_PORTA, 11, CPM_PIN_OUTPUT}, | ||
134 | {CPM_PORTB, 19, CPM_PIN_INPUT}, | ||
135 | {CPM_PORTB, 31, CPM_PIN_INPUT}, | ||
136 | {CPM_PORTC, 12, CPM_PIN_INPUT}, | ||
137 | {CPM_PORTC, 13, CPM_PIN_INPUT}, | ||
138 | {CPM_PORTE, 30, CPM_PIN_OUTPUT}, | ||
139 | {CPM_PORTE, 31, CPM_PIN_OUTPUT}, | ||
140 | |||
141 | /* MII2 */ | ||
142 | #ifdef CONFIG_MPC8xx_SECOND_ETH_FEC2 | ||
143 | {CPM_PORTE, 14, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
144 | {CPM_PORTE, 15, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
145 | {CPM_PORTE, 16, CPM_PIN_OUTPUT}, | ||
146 | {CPM_PORTE, 17, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
147 | {CPM_PORTE, 18, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
148 | {CPM_PORTE, 19, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
149 | {CPM_PORTE, 20, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
150 | {CPM_PORTE, 21, CPM_PIN_OUTPUT}, | ||
151 | {CPM_PORTE, 22, CPM_PIN_OUTPUT}, | ||
152 | {CPM_PORTE, 23, CPM_PIN_OUTPUT}, | ||
153 | {CPM_PORTE, 24, CPM_PIN_OUTPUT}, | ||
154 | {CPM_PORTE, 25, CPM_PIN_OUTPUT}, | ||
155 | {CPM_PORTE, 26, CPM_PIN_OUTPUT}, | ||
156 | {CPM_PORTE, 27, CPM_PIN_OUTPUT}, | ||
157 | {CPM_PORTE, 28, CPM_PIN_OUTPUT}, | ||
158 | {CPM_PORTE, 29, CPM_PIN_OUTPUT}, | ||
180 | #endif | 159 | #endif |
181 | } | 160 | }; |
182 | 161 | ||
183 | static void init_fec1_ioports(struct fs_platform_info *ptr) | 162 | static void __init init_ioports(void) |
184 | { | 163 | { |
185 | cpm8xx_t *cp = (cpm8xx_t *) immr_map(im_cpm); | 164 | int i; |
186 | iop8xx_t *io_port = (iop8xx_t *) immr_map(im_ioport); | ||
187 | |||
188 | /* configure FEC1 pins */ | ||
189 | setbits16(&io_port->iop_papar, 0xf830); | ||
190 | setbits16(&io_port->iop_padir, 0x0830); | ||
191 | clrbits16(&io_port->iop_padir, 0xf000); | ||
192 | |||
193 | setbits32(&cp->cp_pbpar, 0x00001001); | ||
194 | clrbits32(&cp->cp_pbdir, 0x00001001); | ||
195 | 165 | ||
196 | setbits16(&io_port->iop_pcpar, 0x000c); | 166 | for (i = 0; i < ARRAY_SIZE(mpc885ads_pins); i++) { |
197 | clrbits16(&io_port->iop_pcdir, 0x000c); | 167 | struct cpm_pin *pin = &mpc885ads_pins[i]; |
168 | cpm1_set_pin(pin->port, pin->pin, pin->flags); | ||
169 | } | ||
198 | 170 | ||
199 | setbits32(&cp->cp_pepar, 0x00000003); | 171 | cpm1_clk_setup(CPM_CLK_SMC1, CPM_BRG1, CPM_CLK_RTX); |
200 | setbits32(&cp->cp_pedir, 0x00000003); | 172 | cpm1_clk_setup(CPM_CLK_SMC2, CPM_BRG2, CPM_CLK_RTX); |
201 | clrbits32(&cp->cp_peso, 0x00000003); | 173 | cpm1_clk_setup(CPM_CLK_SCC3, CPM_CLK5, CPM_CLK_TX); |
202 | clrbits32(&cp->cp_cptr, 0x00000100); | 174 | cpm1_clk_setup(CPM_CLK_SCC3, CPM_CLK6, CPM_CLK_RX); |
203 | 175 | ||
204 | immr_unmap(io_port); | 176 | /* Set FEC1 and FEC2 to MII mode */ |
205 | immr_unmap(cp); | 177 | clrbits32(&mpc8xx_immr->im_cpm.cp_cptr, 0x00000180); |
206 | } | 178 | } |
207 | 179 | ||
208 | static void init_fec2_ioports(struct fs_platform_info *ptr) | 180 | static void __init mpc885ads_setup_arch(void) |
209 | { | 181 | { |
210 | cpm8xx_t *cp = (cpm8xx_t *) immr_map(im_cpm); | 182 | struct device_node *np; |
211 | iop8xx_t *io_port = (iop8xx_t *) immr_map(im_ioport); | ||
212 | |||
213 | /* configure FEC2 pins */ | ||
214 | setbits32(&cp->cp_pepar, 0x0003fffc); | ||
215 | setbits32(&cp->cp_pedir, 0x0003fffc); | ||
216 | clrbits32(&cp->cp_peso, 0x000087fc); | ||
217 | setbits32(&cp->cp_peso, 0x00037800); | ||
218 | clrbits32(&cp->cp_cptr, 0x00000080); | ||
219 | |||
220 | immr_unmap(io_port); | ||
221 | immr_unmap(cp); | ||
222 | } | ||
223 | 183 | ||
224 | void init_fec_ioports(struct fs_platform_info *fpi) | 184 | cpm_reset(); |
225 | { | 185 | init_ioports(); |
226 | int fec_no = fs_get_fec_index(fpi->fs_no); | ||
227 | 186 | ||
228 | switch (fec_no) { | 187 | np = of_find_compatible_node(NULL, NULL, "fsl,mpc885ads-bcsr"); |
229 | case 0: | 188 | if (!np) { |
230 | init_fec1_ioports(fpi); | 189 | printk(KERN_CRIT "Could not find fsl,mpc885ads-bcsr node\n"); |
231 | break; | ||
232 | case 1: | ||
233 | init_fec2_ioports(fpi); | ||
234 | break; | ||
235 | default: | ||
236 | printk(KERN_ERR "init_fec_ioports: invalid FEC number\n"); | ||
237 | return; | 190 | return; |
238 | } | 191 | } |
239 | } | ||
240 | 192 | ||
241 | static void init_scc3_ioports(struct fs_platform_info *fpi) | 193 | bcsr = of_iomap(np, 0); |
242 | { | 194 | bcsr5 = of_iomap(np, 1); |
243 | unsigned *bcsr_io; | 195 | of_node_put(np); |
244 | iop8xx_t *io_port; | ||
245 | cpm8xx_t *cp; | ||
246 | 196 | ||
247 | bcsr_io = ioremap(BCSR_ADDR, BCSR_SIZE); | 197 | if (!bcsr || !bcsr5) { |
248 | io_port = (iop8xx_t *) immr_map(im_ioport); | ||
249 | cp = (cpm8xx_t *) immr_map(im_cpm); | ||
250 | |||
251 | if (bcsr_io == NULL) { | ||
252 | printk(KERN_CRIT "Could not remap BCSR\n"); | 198 | printk(KERN_CRIT "Could not remap BCSR\n"); |
253 | return; | 199 | return; |
254 | } | 200 | } |
255 | 201 | ||
256 | /* Enable the PHY. | 202 | clrbits32(&bcsr[1], BCSR1_RS232EN_1); |
257 | */ | 203 | #ifdef CONFIG_MPC8xx_SECOND_ETH_FEC2 |
258 | clrbits32(bcsr_io + 4, BCSR4_ETH10_RST); | 204 | setbits32(&bcsr[1], BCSR1_RS232EN_2); |
259 | udelay(1000); | 205 | #else |
260 | setbits32(bcsr_io + 4, BCSR4_ETH10_RST); | 206 | clrbits32(&bcsr[1], BCSR1_RS232EN_2); |
261 | /* Configure port A pins for Txd and Rxd. | 207 | #endif |
262 | */ | ||
263 | setbits16(&io_port->iop_papar, PA_ENET_RXD | PA_ENET_TXD); | ||
264 | clrbits16(&io_port->iop_padir, PA_ENET_RXD | PA_ENET_TXD); | ||
265 | 208 | ||
266 | /* Configure port C pins to enable CLSN and RENA. | 209 | clrbits32(bcsr5, BCSR5_MII1_EN); |
267 | */ | 210 | setbits32(bcsr5, BCSR5_MII1_RST); |
268 | clrbits16(&io_port->iop_pcpar, PC_ENET_CLSN | PC_ENET_RENA); | 211 | udelay(1000); |
269 | clrbits16(&io_port->iop_pcdir, PC_ENET_CLSN | PC_ENET_RENA); | 212 | clrbits32(bcsr5, BCSR5_MII1_RST); |
270 | setbits16(&io_port->iop_pcso, PC_ENET_CLSN | PC_ENET_RENA); | ||
271 | 213 | ||
272 | /* Configure port E for TCLK and RCLK. | 214 | #ifdef CONFIG_MPC8xx_SECOND_ETH_FEC2 |
273 | */ | 215 | clrbits32(bcsr5, BCSR5_MII2_EN); |
274 | setbits32(&cp->cp_pepar, PE_ENET_TCLK | PE_ENET_RCLK); | 216 | setbits32(bcsr5, BCSR5_MII2_RST); |
275 | clrbits32(&cp->cp_pepar, PE_ENET_TENA); | 217 | udelay(1000); |
276 | clrbits32(&cp->cp_pedir, PE_ENET_TCLK | PE_ENET_RCLK | PE_ENET_TENA); | 218 | clrbits32(bcsr5, BCSR5_MII2_RST); |
277 | clrbits32(&cp->cp_peso, PE_ENET_TCLK | PE_ENET_RCLK); | 219 | #else |
278 | setbits32(&cp->cp_peso, PE_ENET_TENA); | 220 | setbits32(bcsr5, BCSR5_MII2_EN); |
279 | 221 | #endif | |
280 | /* Configure Serial Interface clock routing. | ||
281 | * First, clear all SCC bits to zero, then set the ones we want. | ||
282 | */ | ||
283 | clrbits32(&cp->cp_sicr, SICR_ENET_MASK); | ||
284 | setbits32(&cp->cp_sicr, SICR_ENET_CLKRT); | ||
285 | 222 | ||
286 | /* Disable Rx and Tx. SMC1 sshould be stopped if SCC3 eternet are used. | 223 | #ifdef CONFIG_MPC8xx_SECOND_ETH_SCC3 |
287 | */ | 224 | clrbits32(&bcsr[4], BCSR4_ETH10_RST); |
288 | clrbits16(&cp->cp_smc[0].smc_smcmr, SMCMR_REN | SMCMR_TEN); | 225 | udelay(1000); |
289 | /* On the MPC885ADS SCC ethernet PHY is initialized in the full duplex mode | 226 | setbits32(&bcsr[4], BCSR4_ETH10_RST); |
290 | * by H/W setting after reset. SCC ethernet controller support only half duplex. | ||
291 | * This discrepancy of modes causes a lot of carrier lost errors. | ||
292 | */ | ||
293 | 227 | ||
294 | /* In the original SCC enet driver the following code is placed at | 228 | setbits32(&bcsr[1], BCSR1_ETHEN); |
295 | the end of the initialization */ | ||
296 | setbits32(&cp->cp_pepar, PE_ENET_TENA); | ||
297 | clrbits32(&cp->cp_pedir, PE_ENET_TENA); | ||
298 | setbits32(&cp->cp_peso, PE_ENET_TENA); | ||
299 | 229 | ||
300 | setbits32(bcsr_io + 4, BCSR1_ETHEN); | 230 | np = of_find_node_by_path("/soc@ff000000/cpm@9c0/serial@a80"); |
301 | iounmap(bcsr_io); | 231 | #else |
302 | immr_unmap(io_port); | 232 | np = of_find_node_by_path("/soc@ff000000/cpm@9c0/ethernet@a40"); |
303 | immr_unmap(cp); | 233 | #endif |
304 | } | ||
305 | 234 | ||
306 | void init_scc_ioports(struct fs_platform_info *fpi) | 235 | /* The SCC3 enet registers overlap the SMC1 registers, so |
307 | { | 236 | * one of the two must be removed from the device tree. |
308 | int scc_no = fs_get_scc_index(fpi->fs_no); | 237 | */ |
309 | 238 | ||
310 | switch (scc_no) { | 239 | if (np) { |
311 | case 2: | 240 | of_detach_node(np); |
312 | init_scc3_ioports(fpi); | 241 | of_node_put(np); |
313 | break; | ||
314 | default: | ||
315 | printk(KERN_ERR "init_scc_ioports: invalid SCC number\n"); | ||
316 | return; | ||
317 | } | 242 | } |
318 | } | ||
319 | |||
320 | static void init_smc1_uart_ioports(struct fs_uart_platform_info *ptr) | ||
321 | { | ||
322 | unsigned *bcsr_io; | ||
323 | cpm8xx_t *cp; | ||
324 | |||
325 | cp = (cpm8xx_t *) immr_map(im_cpm); | ||
326 | setbits32(&cp->cp_pepar, 0x000000c0); | ||
327 | clrbits32(&cp->cp_pedir, 0x000000c0); | ||
328 | clrbits32(&cp->cp_peso, 0x00000040); | ||
329 | setbits32(&cp->cp_peso, 0x00000080); | ||
330 | immr_unmap(cp); | ||
331 | |||
332 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
333 | 243 | ||
334 | if (bcsr_io == NULL) { | 244 | #ifdef CONFIG_PCMCIA_M8XX |
335 | printk(KERN_CRIT "Could not remap BCSR1\n"); | 245 | /* Set up board specific hook-ups.*/ |
336 | return; | 246 | m8xx_pcmcia_ops.hw_ctrl = pcmcia_hw_setup; |
337 | } | 247 | m8xx_pcmcia_ops.voltage_set = pcmcia_set_voltage; |
338 | clrbits32(bcsr_io, BCSR1_RS232EN_1); | 248 | #endif |
339 | iounmap(bcsr_io); | ||
340 | } | 249 | } |
341 | 250 | ||
342 | static void init_smc2_uart_ioports(struct fs_uart_platform_info *fpi) | 251 | static int __init mpc885ads_probe(void) |
343 | { | 252 | { |
344 | unsigned *bcsr_io; | 253 | unsigned long root = of_get_flat_dt_root(); |
345 | cpm8xx_t *cp; | 254 | return of_flat_dt_is_compatible(root, "fsl,mpc885ads"); |
346 | |||
347 | cp = (cpm8xx_t *) immr_map(im_cpm); | ||
348 | setbits32(&cp->cp_pepar, 0x00000c00); | ||
349 | clrbits32(&cp->cp_pedir, 0x00000c00); | ||
350 | clrbits32(&cp->cp_peso, 0x00000400); | ||
351 | setbits32(&cp->cp_peso, 0x00000800); | ||
352 | immr_unmap(cp); | ||
353 | |||
354 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
355 | |||
356 | if (bcsr_io == NULL) { | ||
357 | printk(KERN_CRIT "Could not remap BCSR1\n"); | ||
358 | return; | ||
359 | } | ||
360 | clrbits32(bcsr_io, BCSR1_RS232EN_2); | ||
361 | iounmap(bcsr_io); | ||
362 | } | 255 | } |
363 | 256 | ||
364 | void init_smc_ioports(struct fs_uart_platform_info *data) | 257 | static struct of_device_id __initdata of_bus_ids[] = { |
365 | { | 258 | { .name = "soc", }, |
366 | int smc_no = fs_uart_id_fsid2smc(data->fs_no); | 259 | { .name = "cpm", }, |
367 | 260 | { .name = "localbus", }, | |
368 | switch (smc_no) { | 261 | {}, |
369 | case 0: | 262 | }; |
370 | init_smc1_uart_ioports(data); | ||
371 | data->brg = data->clk_rx; | ||
372 | break; | ||
373 | case 1: | ||
374 | init_smc2_uart_ioports(data); | ||
375 | data->brg = data->clk_rx; | ||
376 | break; | ||
377 | default: | ||
378 | printk(KERN_ERR "init_scc_ioports: invalid SCC number\n"); | ||
379 | return; | ||
380 | } | ||
381 | } | ||
382 | 263 | ||
383 | int platform_device_skip(const char *model, int id) | 264 | static int __init declare_of_platform_devices(void) |
384 | { | 265 | { |
385 | #ifdef CONFIG_MPC8xx_SECOND_ETH_SCC3 | 266 | /* Publish the QE devices */ |
386 | const char *dev = "FEC"; | 267 | if (machine_is(mpc885_ads)) |
387 | int n = 2; | 268 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
388 | #else | ||
389 | const char *dev = "SCC"; | ||
390 | int n = 3; | ||
391 | #endif | ||
392 | |||
393 | if (!strcmp(model, dev) && n == id) | ||
394 | return 1; | ||
395 | 269 | ||
396 | return 0; | 270 | return 0; |
397 | } | 271 | } |
398 | 272 | device_initcall(declare_of_platform_devices); | |
399 | static void __init mpc885ads_setup_arch(void) | 273 | |
400 | { | 274 | define_machine(mpc885_ads) { |
401 | cpm_reset(); | 275 | .name = "Freescale MPC885 ADS", |
402 | 276 | .probe = mpc885ads_probe, | |
403 | mpc885ads_board_setup(); | 277 | .setup_arch = mpc885ads_setup_arch, |
404 | 278 | .init_IRQ = m8xx_pic_init, | |
405 | ROOT_DEV = Root_NFS; | 279 | .get_irq = mpc8xx_get_irq, |
406 | } | 280 | .restart = mpc8xx_restart, |
407 | 281 | .calibrate_decr = mpc8xx_calibrate_decr, | |
408 | static int __init mpc885ads_probe(void) | 282 | .set_rtc_time = mpc8xx_set_rtc_time, |
409 | { | 283 | .get_rtc_time = mpc8xx_get_rtc_time, |
410 | char *model = of_get_flat_dt_prop(of_get_flat_dt_root(), | 284 | .progress = udbg_progress, |
411 | "model", NULL); | ||
412 | if (model == NULL) | ||
413 | return 0; | ||
414 | if (strcmp(model, "MPC885ADS")) | ||
415 | return 0; | ||
416 | |||
417 | return 1; | ||
418 | } | ||
419 | |||
420 | define_machine(mpc885_ads) | ||
421 | { | ||
422 | .name = "MPC885 ADS", | ||
423 | .probe = mpc885ads_probe, | ||
424 | .setup_arch = mpc885ads_setup_arch, | ||
425 | .init_IRQ = m8xx_pic_init, | ||
426 | .get_irq = mpc8xx_get_irq, | ||
427 | .restart = mpc8xx_restart, | ||
428 | .calibrate_decr = mpc8xx_calibrate_decr, | ||
429 | .set_rtc_time = mpc8xx_set_rtc_time, | ||
430 | .get_rtc_time = mpc8xx_get_rtc_time, | ||
431 | }; | 285 | }; |