aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt70
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/spi.txt7
-rw-r--r--arch/powerpc/boot/dts/mpc5121ads.dts55
-rw-r--r--arch/powerpc/configs/mpc512x_defconfig1694
-rw-r--r--arch/powerpc/include/asm/mpc5121.h24
-rw-r--r--arch/powerpc/include/asm/mpc52xx_psc.h4
-rw-r--r--arch/powerpc/platforms/512x/clock.c6
-rw-r--r--arch/powerpc/platforms/512x/mpc5121_ads.c3
-rw-r--r--arch/powerpc/platforms/512x/mpc5121_generic.c3
-rw-r--r--arch/powerpc/platforms/512x/mpc512x.h3
-rw-r--r--arch/powerpc/platforms/512x/mpc512x_shared.c43
-rw-r--r--drivers/rtc/Kconfig10
-rw-r--r--drivers/rtc/Makefile1
-rw-r--r--drivers/rtc/rtc-mpc5121.c387
-rw-r--r--drivers/serial/mpc52xx_uart.c251
-rw-r--r--drivers/video/fsl-diu-fb.c5
16 files changed, 2522 insertions, 44 deletions
diff --git a/Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt b/Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt
new file mode 100644
index 000000000000..8832e8798912
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt
@@ -0,0 +1,70 @@
1MPC5121 PSC Device Tree Bindings
2
3PSC in UART mode
4----------------
5
6For PSC in UART mode the needed PSC serial devices
7are specified by fsl,mpc5121-psc-uart nodes in the
8fsl,mpc5121-immr SoC node. Additionally the PSC FIFO
9Controller node fsl,mpc5121-psc-fifo is requered there:
10
11fsl,mpc5121-psc-uart nodes
12--------------------------
13
14Required properties :
15 - compatible : Should contain "fsl,mpc5121-psc-uart" and "fsl,mpc5121-psc"
16 - cell-index : Index of the PSC in hardware
17 - reg : Offset and length of the register set for the PSC device
18 - interrupts : <a b> where a is the interrupt number of the
19 PSC FIFO Controller and b is a field that represents an
20 encoding of the sense and level information for the interrupt.
21 - interrupt-parent : the phandle for the interrupt controller that
22 services interrupts for this device.
23
24Recommended properties :
25 - fsl,rx-fifo-size : the size of the RX fifo slice (a multiple of 4)
26 - fsl,tx-fifo-size : the size of the TX fifo slice (a multiple of 4)
27
28
29fsl,mpc5121-psc-fifo node
30-------------------------
31
32Required properties :
33 - compatible : Should be "fsl,mpc5121-psc-fifo"
34 - reg : Offset and length of the register set for the PSC
35 FIFO Controller
36 - interrupts : <a b> where a is the interrupt number of the
37 PSC FIFO Controller and b is a field that represents an
38 encoding of the sense and level information for the interrupt.
39 - interrupt-parent : the phandle for the interrupt controller that
40 services interrupts for this device.
41
42
43Example for a board using PSC0 and PSC1 devices in serial mode:
44
45serial@11000 {
46 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
47 cell-index = <0>;
48 reg = <0x11000 0x100>;
49 interrupts = <40 0x8>;
50 interrupt-parent = < &ipic >;
51 fsl,rx-fifo-size = <16>;
52 fsl,tx-fifo-size = <16>;
53};
54
55serial@11100 {
56 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
57 cell-index = <1>;
58 reg = <0x11100 0x100>;
59 interrupts = <40 0x8>;
60 interrupt-parent = < &ipic >;
61 fsl,rx-fifo-size = <16>;
62 fsl,tx-fifo-size = <16>;
63};
64
65pscfifo@11f00 {
66 compatible = "fsl,mpc5121-psc-fifo";
67 reg = <0x11f00 0x100>;
68 interrupts = <40 0x8>;
69 interrupt-parent = < &ipic >;
70};
diff --git a/Documentation/powerpc/dts-bindings/fsl/spi.txt b/Documentation/powerpc/dts-bindings/fsl/spi.txt
index e7d9a344c4f4..80510c018eea 100644
--- a/Documentation/powerpc/dts-bindings/fsl/spi.txt
+++ b/Documentation/powerpc/dts-bindings/fsl/spi.txt
@@ -13,6 +13,11 @@ Required properties:
13- interrupt-parent : the phandle for the interrupt controller that 13- interrupt-parent : the phandle for the interrupt controller that
14 services interrupts for this device. 14 services interrupts for this device.
15 15
16Optional properties:
17- gpios : specifies the gpio pins to be used for chipselects.
18 The gpios will be referred to as reg = <index> in the SPI child nodes.
19 If unspecified, a single SPI device without a chip select can be used.
20
16Example: 21Example:
17 spi@4c0 { 22 spi@4c0 {
18 cell-index = <0>; 23 cell-index = <0>;
@@ -21,4 +26,6 @@ Example:
21 interrupts = <82 0>; 26 interrupts = <82 0>;
22 interrupt-parent = <700>; 27 interrupt-parent = <700>;
23 mode = "cpu"; 28 mode = "cpu";
29 gpios = <&gpio 18 1 // device reg=<0>
30 &gpio 19 1>; // device reg=<1>
24 }; 31 };
diff --git a/arch/powerpc/boot/dts/mpc5121ads.dts b/arch/powerpc/boot/dts/mpc5121ads.dts
index c353dac33416..c9ef6bbe26cf 100644
--- a/arch/powerpc/boot/dts/mpc5121ads.dts
+++ b/arch/powerpc/boot/dts/mpc5121ads.dts
@@ -62,17 +62,12 @@
62 interrupt-parent = < &ipic >; 62 interrupt-parent = < &ipic >;
63 #address-cells = <1>; 63 #address-cells = <1>;
64 #size-cells = <1>; 64 #size-cells = <1>;
65 bank-width = <1>;
66 // ADS has two Hynix 512MB Nand flash chips in a single 65 // ADS has two Hynix 512MB Nand flash chips in a single
67 // stacked package . 66 // stacked package.
68 chips = <2>; 67 chips = <2>;
69 nand0@0 { 68 nand@0 {
70 label = "nand0"; 69 label = "nand";
71 reg = <0x00000000 0x02000000>; // first 32 MB of chip 0 70 reg = <0x00000000 0x40000000>; // 512MB + 512MB
72 };
73 nand1@20000000 {
74 label = "nand1";
75 reg = <0x20000000 0x02000000>; // first 32 MB of chip 1
76 }; 71 };
77 }; 72 };
78 73
@@ -166,6 +161,11 @@
166 interrupt-parent = < &ipic >; 161 interrupt-parent = < &ipic >;
167 }; 162 };
168 163
164 reset@e00 { // Reset module
165 compatible = "fsl,mpc5121-reset";
166 reg = <0xe00 0x100>;
167 };
168
169 clock@f00 { // Clock control 169 clock@f00 { // Clock control
170 compatible = "fsl,mpc5121-clock"; 170 compatible = "fsl,mpc5121-clock";
171 reg = <0xf00 0x100>; 171 reg = <0xf00 0x100>;
@@ -185,17 +185,15 @@
185 interrupt-parent = < &ipic >; 185 interrupt-parent = < &ipic >;
186 }; 186 };
187 187
188 mscan@1300 { 188 can@1300 {
189 compatible = "fsl,mpc5121-mscan"; 189 compatible = "fsl,mpc5121-mscan";
190 cell-index = <0>;
191 interrupts = <12 0x8>; 190 interrupts = <12 0x8>;
192 interrupt-parent = < &ipic >; 191 interrupt-parent = < &ipic >;
193 reg = <0x1300 0x80>; 192 reg = <0x1300 0x80>;
194 }; 193 };
195 194
196 mscan@1380 { 195 can@1380 {
197 compatible = "fsl,mpc5121-mscan"; 196 compatible = "fsl,mpc5121-mscan";
198 cell-index = <1>;
199 interrupts = <13 0x8>; 197 interrupts = <13 0x8>;
200 interrupt-parent = < &ipic >; 198 interrupt-parent = < &ipic >;
201 reg = <0x1380 0x80>; 199 reg = <0x1380 0x80>;
@@ -205,17 +203,31 @@
205 #address-cells = <1>; 203 #address-cells = <1>;
206 #size-cells = <0>; 204 #size-cells = <0>;
207 compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 205 compatible = "fsl,mpc5121-i2c", "fsl-i2c";
208 cell-index = <0>;
209 reg = <0x1700 0x20>; 206 reg = <0x1700 0x20>;
210 interrupts = <9 0x8>; 207 interrupts = <9 0x8>;
211 interrupt-parent = < &ipic >; 208 interrupt-parent = < &ipic >;
209 fsl,preserve-clocking;
210
211 hwmon@4a {
212 compatible = "adi,ad7414";
213 reg = <0x4a>;
214 };
215
216 eeprom@50 {
217 compatible = "at,24c32";
218 reg = <0x50>;
219 };
220
221 rtc@68 {
222 compatible = "stm,m41t62";
223 reg = <0x68>;
224 };
212 }; 225 };
213 226
214 i2c@1720 { 227 i2c@1720 {
215 #address-cells = <1>; 228 #address-cells = <1>;
216 #size-cells = <0>; 229 #size-cells = <0>;
217 compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 230 compatible = "fsl,mpc5121-i2c", "fsl-i2c";
218 cell-index = <1>;
219 reg = <0x1720 0x20>; 231 reg = <0x1720 0x20>;
220 interrupts = <10 0x8>; 232 interrupts = <10 0x8>;
221 interrupt-parent = < &ipic >; 233 interrupt-parent = < &ipic >;
@@ -225,7 +237,6 @@
225 #address-cells = <1>; 237 #address-cells = <1>;
226 #size-cells = <0>; 238 #size-cells = <0>;
227 compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 239 compatible = "fsl,mpc5121-i2c", "fsl-i2c";
228 cell-index = <2>;
229 reg = <0x1740 0x20>; 240 reg = <0x1740 0x20>;
230 interrupts = <11 0x8>; 241 interrupts = <11 0x8>;
231 interrupt-parent = < &ipic >; 242 interrupt-parent = < &ipic >;
@@ -244,7 +255,7 @@
244 }; 255 };
245 256
246 display@2100 { 257 display@2100 {
247 compatible = "fsl,mpc5121-diu", "fsl-diu"; 258 compatible = "fsl,mpc5121-diu";
248 reg = <0x2100 0x100>; 259 reg = <0x2100 0x100>;
249 interrupts = <64 0x8>; 260 interrupts = <64 0x8>;
250 interrupt-parent = < &ipic >; 261 interrupt-parent = < &ipic >;
@@ -277,7 +288,7 @@
277 288
278 // USB1 using external ULPI PHY 289 // USB1 using external ULPI PHY
279 //usb@3000 { 290 //usb@3000 {
280 // compatible = "fsl,mpc5121-usb2-dr", "fsl-usb2-dr"; 291 // compatible = "fsl,mpc5121-usb2-dr";
281 // reg = <0x3000 0x1000>; 292 // reg = <0x3000 0x1000>;
282 // #address-cells = <1>; 293 // #address-cells = <1>;
283 // #size-cells = <0>; 294 // #size-cells = <0>;
@@ -285,12 +296,11 @@
285 // interrupts = <43 0x8>; 296 // interrupts = <43 0x8>;
286 // dr_mode = "otg"; 297 // dr_mode = "otg";
287 // phy_type = "ulpi"; 298 // phy_type = "ulpi";
288 // port1;
289 //}; 299 //};
290 300
291 // USB0 using internal UTMI PHY 301 // USB0 using internal UTMI PHY
292 usb@4000 { 302 usb@4000 {
293 compatible = "fsl,mpc5121-usb2-dr", "fsl-usb2-dr"; 303 compatible = "fsl,mpc5121-usb2-dr";
294 reg = <0x4000 0x1000>; 304 reg = <0x4000 0x1000>;
295 #address-cells = <1>; 305 #address-cells = <1>;
296 #size-cells = <0>; 306 #size-cells = <0>;
@@ -298,7 +308,8 @@
298 interrupts = <44 0x8>; 308 interrupts = <44 0x8>;
299 dr_mode = "otg"; 309 dr_mode = "otg";
300 phy_type = "utmi_wide"; 310 phy_type = "utmi_wide";
301 port0; 311 fsl,invert-drvvbus;
312 fsl,invert-pwr-fault;
302 }; 313 };
303 314
304 // IO control 315 // IO control
@@ -365,7 +376,7 @@
365 }; 376 };
366 377
367 dma@14000 { 378 dma@14000 {
368 compatible = "fsl,mpc5121-dma2"; 379 compatible = "fsl,mpc5121-dma";
369 reg = <0x14000 0x1800>; 380 reg = <0x14000 0x1800>;
370 interrupts = <65 0x8>; 381 interrupts = <65 0x8>;
371 interrupt-parent = < &ipic >; 382 interrupt-parent = < &ipic >;
diff --git a/arch/powerpc/configs/mpc512x_defconfig b/arch/powerpc/configs/mpc512x_defconfig
new file mode 100644
index 000000000000..a04727295d46
--- /dev/null
+++ b/arch/powerpc/configs/mpc512x_defconfig
@@ -0,0 +1,1694 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc6
4# Fri Feb 5 11:48:29 2010
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11CONFIG_PPC_BOOK3S_32=y
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
19CONFIG_PPC_FPU=y
20# CONFIG_ALTIVEC is not set
21CONFIG_PPC_STD_MMU=y
22CONFIG_PPC_STD_MMU_32=y
23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
25# CONFIG_SMP is not set
26CONFIG_NOT_COHERENT_CACHE=y
27CONFIG_PPC32=y
28CONFIG_WORD_SIZE=32
29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
30CONFIG_MMU=y
31CONFIG_GENERIC_CMOS_UPDATE=y
32CONFIG_GENERIC_TIME=y
33CONFIG_GENERIC_TIME_VSYSCALL=y
34CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y
36CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
37# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
38# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
39CONFIG_IRQ_PER_CPU=y
40CONFIG_NR_IRQS=512
41CONFIG_STACKTRACE_SUPPORT=y
42CONFIG_HAVE_LATENCYTOP_SUPPORT=y
43CONFIG_TRACE_IRQFLAGS_SUPPORT=y
44CONFIG_LOCKDEP_SUPPORT=y
45CONFIG_RWSEM_XCHGADD_ALGORITHM=y
46CONFIG_ARCH_HAS_ILOG2_U32=y
47CONFIG_GENERIC_HWEIGHT=y
48CONFIG_GENERIC_FIND_NEXT_BIT=y
49# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
50CONFIG_PPC=y
51CONFIG_EARLY_PRINTK=y
52CONFIG_GENERIC_NVRAM=y
53CONFIG_SCHED_OMIT_FRAME_POINTER=y
54CONFIG_ARCH_MAY_HAVE_PC_FDC=y
55CONFIG_PPC_OF=y
56CONFIG_OF=y
57# CONFIG_PPC_UDBG_16550 is not set
58# CONFIG_GENERIC_TBSYNC is not set
59CONFIG_AUDIT_ARCH=y
60CONFIG_GENERIC_BUG=y
61CONFIG_DTC=y
62CONFIG_DEFAULT_UIMAGE=y
63CONFIG_ARCH_HIBERNATION_POSSIBLE=y
64# CONFIG_PPC_DCR_NATIVE is not set
65# CONFIG_PPC_DCR_MMIO is not set
66CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
67CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
68CONFIG_CONSTRUCTORS=y
69
70#
71# General setup
72#
73CONFIG_EXPERIMENTAL=y
74CONFIG_BROKEN_ON_SMP=y
75CONFIG_INIT_ENV_ARG_LIMIT=32
76CONFIG_LOCALVERSION=""
77CONFIG_LOCALVERSION_AUTO=y
78# CONFIG_SWAP is not set
79CONFIG_SYSVIPC=y
80CONFIG_SYSVIPC_SYSCTL=y
81# CONFIG_POSIX_MQUEUE is not set
82# CONFIG_BSD_PROCESS_ACCT is not set
83# CONFIG_TASKSTATS is not set
84# CONFIG_AUDIT is not set
85
86#
87# RCU Subsystem
88#
89CONFIG_TREE_RCU=y
90# CONFIG_TREE_PREEMPT_RCU is not set
91# CONFIG_TINY_RCU is not set
92# CONFIG_RCU_TRACE is not set
93CONFIG_RCU_FANOUT=32
94# CONFIG_RCU_FANOUT_EXACT is not set
95# CONFIG_TREE_RCU_TRACE is not set
96# CONFIG_IKCONFIG is not set
97CONFIG_LOG_BUF_SHIFT=16
98# CONFIG_GROUP_SCHED is not set
99# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y
101CONFIG_SYSFS_DEPRECATED_V2=y
102# CONFIG_RELAY is not set
103CONFIG_NAMESPACES=y
104# CONFIG_UTS_NS is not set
105# CONFIG_IPC_NS is not set
106# CONFIG_USER_NS is not set
107# CONFIG_PID_NS is not set
108# CONFIG_NET_NS is not set
109CONFIG_BLK_DEV_INITRD=y
110CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y
112CONFIG_RD_BZIP2=y
113CONFIG_RD_LZMA=y
114CONFIG_RD_LZO=y
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y
118# CONFIG_EMBEDDED is not set
119CONFIG_SYSCTL_SYSCALL=y
120CONFIG_KALLSYMS=y
121# CONFIG_KALLSYMS_EXTRA_PASS is not set
122CONFIG_HOTPLUG=y
123CONFIG_PRINTK=y
124CONFIG_BUG=y
125CONFIG_ELF_CORE=y
126CONFIG_BASE_FULL=y
127CONFIG_FUTEX=y
128CONFIG_EPOLL=y
129CONFIG_SIGNALFD=y
130CONFIG_TIMERFD=y
131CONFIG_EVENTFD=y
132CONFIG_SHMEM=y
133CONFIG_AIO=y
134CONFIG_HAVE_PERF_EVENTS=y
135
136#
137# Kernel Performance Events And Counters
138#
139# CONFIG_PERF_EVENTS is not set
140# CONFIG_PERF_COUNTERS is not set
141CONFIG_VM_EVENT_COUNTERS=y
142# CONFIG_COMPAT_BRK is not set
143CONFIG_SLAB=y
144# CONFIG_SLUB is not set
145# CONFIG_SLOB is not set
146# CONFIG_PROFILING is not set
147CONFIG_HAVE_OPROFILE=y
148# CONFIG_KPROBES is not set
149CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
150CONFIG_HAVE_IOREMAP_PROT=y
151CONFIG_HAVE_KPROBES=y
152CONFIG_HAVE_KRETPROBES=y
153CONFIG_HAVE_ARCH_TRACEHOOK=y
154CONFIG_HAVE_DMA_ATTRS=y
155CONFIG_HAVE_CLK=y
156CONFIG_HAVE_DMA_API_DEBUG=y
157
158#
159# GCOV-based kernel profiling
160#
161# CONFIG_SLOW_WORK is not set
162# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
163CONFIG_SLABINFO=y
164CONFIG_RT_MUTEXES=y
165CONFIG_BASE_SMALL=0
166CONFIG_MODULES=y
167# CONFIG_MODULE_FORCE_LOAD is not set
168CONFIG_MODULE_UNLOAD=y
169# CONFIG_MODULE_FORCE_UNLOAD is not set
170# CONFIG_MODVERSIONS is not set
171# CONFIG_MODULE_SRCVERSION_ALL is not set
172CONFIG_BLOCK=y
173CONFIG_LBDAF=y
174# CONFIG_BLK_DEV_BSG is not set
175# CONFIG_BLK_DEV_INTEGRITY is not set
176
177#
178# IO Schedulers
179#
180CONFIG_IOSCHED_NOOP=y
181CONFIG_IOSCHED_DEADLINE=y
182# CONFIG_IOSCHED_CFQ is not set
183CONFIG_DEFAULT_DEADLINE=y
184# CONFIG_DEFAULT_CFQ is not set
185# CONFIG_DEFAULT_NOOP is not set
186CONFIG_DEFAULT_IOSCHED="deadline"
187# CONFIG_INLINE_SPIN_TRYLOCK is not set
188# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
189# CONFIG_INLINE_SPIN_LOCK is not set
190# CONFIG_INLINE_SPIN_LOCK_BH is not set
191# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
192# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
193CONFIG_INLINE_SPIN_UNLOCK=y
194# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
195CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
196# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
197# CONFIG_INLINE_READ_TRYLOCK is not set
198# CONFIG_INLINE_READ_LOCK is not set
199# CONFIG_INLINE_READ_LOCK_BH is not set
200# CONFIG_INLINE_READ_LOCK_IRQ is not set
201# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
202CONFIG_INLINE_READ_UNLOCK=y
203# CONFIG_INLINE_READ_UNLOCK_BH is not set
204CONFIG_INLINE_READ_UNLOCK_IRQ=y
205# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
206# CONFIG_INLINE_WRITE_TRYLOCK is not set
207# CONFIG_INLINE_WRITE_LOCK is not set
208# CONFIG_INLINE_WRITE_LOCK_BH is not set
209# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
210# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
211CONFIG_INLINE_WRITE_UNLOCK=y
212# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
213CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
214# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
215# CONFIG_MUTEX_SPIN_ON_OWNER is not set
216# CONFIG_FREEZER is not set
217
218#
219# Platform support
220#
221# CONFIG_PPC_CHRP is not set
222CONFIG_PPC_MPC512x=y
223CONFIG_PPC_MPC5121=y
224CONFIG_MPC5121_ADS=y
225# CONFIG_MPC5121_GENERIC is not set
226# CONFIG_PPC_MPC52xx is not set
227# CONFIG_PPC_PMAC is not set
228# CONFIG_PPC_CELL is not set
229# CONFIG_PPC_CELL_NATIVE is not set
230# CONFIG_PPC_82xx is not set
231# CONFIG_PQ2ADS is not set
232# CONFIG_PPC_83xx is not set
233# CONFIG_PPC_86xx is not set
234# CONFIG_EMBEDDED6xx is not set
235# CONFIG_AMIGAONE is not set
236CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
237CONFIG_IPIC=y
238# CONFIG_MPIC is not set
239# CONFIG_MPIC_WEIRD is not set
240# CONFIG_PPC_I8259 is not set
241# CONFIG_PPC_RTAS is not set
242# CONFIG_MMIO_NVRAM is not set
243# CONFIG_PPC_MPC106 is not set
244# CONFIG_PPC_970_NAP is not set
245# CONFIG_PPC_INDIRECT_IO is not set
246# CONFIG_GENERIC_IOMAP is not set
247# CONFIG_CPU_FREQ is not set
248# CONFIG_TAU is not set
249# CONFIG_QUICC_ENGINE is not set
250# CONFIG_FSL_ULI1575 is not set
251# CONFIG_SIMPLE_GPIO is not set
252
253#
254# Kernel options
255#
256# CONFIG_HIGHMEM is not set
257CONFIG_TICK_ONESHOT=y
258CONFIG_NO_HZ=y
259# CONFIG_HIGH_RES_TIMERS is not set
260CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
261# CONFIG_HZ_100 is not set
262# CONFIG_HZ_250 is not set
263# CONFIG_HZ_300 is not set
264CONFIG_HZ_1000=y
265CONFIG_HZ=1000
266# CONFIG_SCHED_HRTICK is not set
267CONFIG_PREEMPT_NONE=y
268# CONFIG_PREEMPT_VOLUNTARY is not set
269# CONFIG_PREEMPT is not set
270CONFIG_BINFMT_ELF=y
271# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
272# CONFIG_HAVE_AOUT is not set
273# CONFIG_BINFMT_MISC is not set
274# CONFIG_IOMMU_HELPER is not set
275# CONFIG_SWIOTLB is not set
276CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
277CONFIG_ARCH_HAS_WALK_MEMORY=y
278CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
279# CONFIG_KEXEC is not set
280# CONFIG_CRASH_DUMP is not set
281CONFIG_SPARSE_IRQ=y
282CONFIG_MAX_ACTIVE_REGIONS=32
283CONFIG_ARCH_FLATMEM_ENABLE=y
284CONFIG_ARCH_POPULATES_NODE_MAP=y
285CONFIG_SELECT_MEMORY_MODEL=y
286CONFIG_FLATMEM_MANUAL=y
287# CONFIG_DISCONTIGMEM_MANUAL is not set
288# CONFIG_SPARSEMEM_MANUAL is not set
289CONFIG_FLATMEM=y
290CONFIG_FLAT_NODE_MEM_MAP=y
291CONFIG_PAGEFLAGS_EXTENDED=y
292CONFIG_SPLIT_PTLOCK_CPUS=4
293# CONFIG_MIGRATION is not set
294# CONFIG_PHYS_ADDR_T_64BIT is not set
295CONFIG_ZONE_DMA_FLAG=1
296CONFIG_BOUNCE=y
297CONFIG_VIRT_TO_BUS=y
298# CONFIG_KSM is not set
299CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
300CONFIG_PPC_4K_PAGES=y
301# CONFIG_PPC_16K_PAGES is not set
302# CONFIG_PPC_64K_PAGES is not set
303# CONFIG_PPC_256K_PAGES is not set
304CONFIG_FORCE_MAX_ZONEORDER=11
305CONFIG_PROC_DEVICETREE=y
306# CONFIG_CMDLINE_BOOL is not set
307CONFIG_EXTRA_TARGETS=""
308# CONFIG_PM is not set
309# CONFIG_SECCOMP is not set
310CONFIG_ISA_DMA_API=y
311
312#
313# Bus options
314#
315CONFIG_ZONE_DMA=y
316CONFIG_GENERIC_ISA_DMA=y
317CONFIG_FSL_SOC=y
318CONFIG_PPC_PCI_CHOICE=y
319# CONFIG_PCI is not set
320# CONFIG_PCI_DOMAINS is not set
321# CONFIG_PCI_SYSCALL is not set
322# CONFIG_ARCH_SUPPORTS_MSI is not set
323# CONFIG_PCCARD is not set
324# CONFIG_HAS_RAPIDIO is not set
325
326#
327# Advanced setup
328#
329# CONFIG_ADVANCED_OPTIONS is not set
330
331#
332# Default settings for advanced configuration options are used
333#
334CONFIG_LOWMEM_SIZE=0x30000000
335CONFIG_PAGE_OFFSET=0xc0000000
336CONFIG_KERNEL_START=0xc0000000
337CONFIG_PHYSICAL_START=0x00000000
338CONFIG_TASK_SIZE=0xc0000000
339CONFIG_CONSISTENT_SIZE=0x00200000
340CONFIG_NET=y
341
342#
343# Networking options
344#
345CONFIG_PACKET=y
346# CONFIG_PACKET_MMAP is not set
347CONFIG_UNIX=y
348# CONFIG_NET_KEY is not set
349CONFIG_INET=y
350# CONFIG_IP_MULTICAST is not set
351# CONFIG_IP_ADVANCED_ROUTER is not set
352CONFIG_IP_FIB_HASH=y
353CONFIG_IP_PNP=y
354# CONFIG_IP_PNP_DHCP is not set
355# CONFIG_IP_PNP_BOOTP is not set
356# CONFIG_IP_PNP_RARP is not set
357# CONFIG_NET_IPIP is not set
358# CONFIG_NET_IPGRE is not set
359# CONFIG_ARPD is not set
360# CONFIG_SYN_COOKIES is not set
361# CONFIG_INET_AH is not set
362# CONFIG_INET_ESP is not set
363# CONFIG_INET_IPCOMP is not set
364# CONFIG_INET_XFRM_TUNNEL is not set
365# CONFIG_INET_TUNNEL is not set
366# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
367# CONFIG_INET_XFRM_MODE_TUNNEL is not set
368# CONFIG_INET_XFRM_MODE_BEET is not set
369# CONFIG_INET_LRO is not set
370# CONFIG_INET_DIAG is not set
371# CONFIG_TCP_CONG_ADVANCED is not set
372CONFIG_TCP_CONG_CUBIC=y
373CONFIG_DEFAULT_TCP_CONG="cubic"
374# CONFIG_TCP_MD5SIG is not set
375# CONFIG_IPV6 is not set
376# CONFIG_NETWORK_SECMARK is not set
377# CONFIG_NETFILTER is not set
378# CONFIG_IP_DCCP is not set
379# CONFIG_IP_SCTP is not set
380# CONFIG_RDS is not set
381# CONFIG_TIPC is not set
382# CONFIG_ATM is not set
383# CONFIG_BRIDGE is not set
384# CONFIG_NET_DSA is not set
385# CONFIG_VLAN_8021Q is not set
386# CONFIG_DECNET is not set
387# CONFIG_LLC2 is not set
388# CONFIG_IPX is not set
389# CONFIG_ATALK is not set
390# CONFIG_X25 is not set
391# CONFIG_LAPB is not set
392# CONFIG_ECONET is not set
393# CONFIG_WAN_ROUTER is not set
394# CONFIG_PHONET is not set
395# CONFIG_IEEE802154 is not set
396# CONFIG_NET_SCHED is not set
397# CONFIG_DCB is not set
398
399#
400# Network testing
401#
402# CONFIG_NET_PKTGEN is not set
403# CONFIG_HAMRADIO is not set
404CONFIG_CAN=y
405CONFIG_CAN_RAW=y
406CONFIG_CAN_BCM=y
407
408#
409# CAN Device Drivers
410#
411CONFIG_CAN_VCAN=y
412CONFIG_CAN_DEV=y
413# CONFIG_CAN_CALC_BITTIMING is not set
414CONFIG_CAN_MSCAN=y
415# CONFIG_CAN_SJA1000 is not set
416
417#
418# CAN USB interfaces
419#
420# CONFIG_CAN_EMS_USB is not set
421CONFIG_CAN_DEBUG_DEVICES=y
422# CONFIG_IRDA is not set
423# CONFIG_BT is not set
424# CONFIG_AF_RXRPC is not set
425# CONFIG_WIRELESS is not set
426# CONFIG_WIMAX is not set
427# CONFIG_RFKILL is not set
428# CONFIG_NET_9P is not set
429
430#
431# Device Drivers
432#
433
434#
435# Generic Driver Options
436#
437CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
438# CONFIG_DEVTMPFS is not set
439CONFIG_STANDALONE=y
440# CONFIG_PREVENT_FIRMWARE_BUILD is not set
441CONFIG_FW_LOADER=y
442# CONFIG_FIRMWARE_IN_KERNEL is not set
443CONFIG_EXTRA_FIRMWARE=""
444# CONFIG_SYS_HYPERVISOR is not set
445# CONFIG_CONNECTOR is not set
446CONFIG_MTD=y
447# CONFIG_MTD_DEBUG is not set
448# CONFIG_MTD_TESTS is not set
449CONFIG_MTD_CONCAT=y
450CONFIG_MTD_PARTITIONS=y
451# CONFIG_MTD_REDBOOT_PARTS is not set
452CONFIG_MTD_CMDLINE_PARTS=y
453CONFIG_MTD_OF_PARTS=y
454# CONFIG_MTD_AR7_PARTS is not set
455
456#
457# User Modules And Translation Layers
458#
459CONFIG_MTD_CHAR=y
460CONFIG_MTD_BLKDEVS=y
461CONFIG_MTD_BLOCK=y
462# CONFIG_FTL is not set
463# CONFIG_NFTL is not set
464# CONFIG_INFTL is not set
465# CONFIG_RFD_FTL is not set
466# CONFIG_SSFDC is not set
467# CONFIG_MTD_OOPS is not set
468
469#
470# RAM/ROM/Flash chip drivers
471#
472CONFIG_MTD_CFI=y
473# CONFIG_MTD_JEDECPROBE is not set
474CONFIG_MTD_GEN_PROBE=y
475# CONFIG_MTD_CFI_ADV_OPTIONS is not set
476CONFIG_MTD_MAP_BANK_WIDTH_1=y
477CONFIG_MTD_MAP_BANK_WIDTH_2=y
478CONFIG_MTD_MAP_BANK_WIDTH_4=y
479# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
480# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
481# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
482CONFIG_MTD_CFI_I1=y
483CONFIG_MTD_CFI_I2=y
484# CONFIG_MTD_CFI_I4 is not set
485# CONFIG_MTD_CFI_I8 is not set
486# CONFIG_MTD_CFI_INTELEXT is not set
487CONFIG_MTD_CFI_AMDSTD=y
488# CONFIG_MTD_CFI_STAA is not set
489CONFIG_MTD_CFI_UTIL=y
490# CONFIG_MTD_RAM is not set
491CONFIG_MTD_ROM=y
492# CONFIG_MTD_ABSENT is not set
493
494#
495# Mapping drivers for chip access
496#
497# CONFIG_MTD_COMPLEX_MAPPINGS is not set
498# CONFIG_MTD_PHYSMAP is not set
499CONFIG_MTD_PHYSMAP_OF=y
500# CONFIG_MTD_PLATRAM is not set
501
502#
503# Self-contained MTD device drivers
504#
505# CONFIG_MTD_SLRAM is not set
506# CONFIG_MTD_PHRAM is not set
507# CONFIG_MTD_MTDRAM is not set
508# CONFIG_MTD_BLOCK2MTD is not set
509
510#
511# Disk-On-Chip Device Drivers
512#
513# CONFIG_MTD_DOC2000 is not set
514# CONFIG_MTD_DOC2001 is not set
515# CONFIG_MTD_DOC2001PLUS is not set
516CONFIG_MTD_NAND=y
517# CONFIG_MTD_NAND_VERIFY_WRITE is not set
518# CONFIG_MTD_NAND_ECC_SMC is not set
519# CONFIG_MTD_NAND_MUSEUM_IDS is not set
520CONFIG_MTD_NAND_IDS=y
521# CONFIG_MTD_NAND_DISKONCHIP is not set
522# CONFIG_MTD_NAND_NANDSIM is not set
523# CONFIG_MTD_NAND_PLATFORM is not set
524# CONFIG_MTD_ALAUDA is not set
525# CONFIG_MTD_NAND_FSL_ELBC is not set
526CONFIG_MTD_NAND_MPC5121_NFC=y
527# CONFIG_MTD_ONENAND is not set
528
529#
530# LPDDR flash memory drivers
531#
532# CONFIG_MTD_LPDDR is not set
533
534#
535# UBI - Unsorted block images
536#
537CONFIG_MTD_UBI=y
538CONFIG_MTD_UBI_WL_THRESHOLD=4096
539CONFIG_MTD_UBI_BEB_RESERVE=1
540# CONFIG_MTD_UBI_GLUEBI is not set
541
542#
543# UBI debugging options
544#
545# CONFIG_MTD_UBI_DEBUG is not set
546CONFIG_OF_DEVICE=y
547CONFIG_OF_I2C=y
548CONFIG_OF_MDIO=y
549# CONFIG_PARPORT is not set
550CONFIG_BLK_DEV=y
551# CONFIG_BLK_DEV_FD is not set
552# CONFIG_BLK_DEV_COW_COMMON is not set
553# CONFIG_BLK_DEV_LOOP is not set
554
555#
556# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
557#
558# CONFIG_BLK_DEV_NBD is not set
559# CONFIG_BLK_DEV_UB is not set
560CONFIG_BLK_DEV_RAM=y
561CONFIG_BLK_DEV_RAM_COUNT=1
562CONFIG_BLK_DEV_RAM_SIZE=8192
563CONFIG_BLK_DEV_XIP=y
564# CONFIG_CDROM_PKTCDVD is not set
565# CONFIG_ATA_OVER_ETH is not set
566# CONFIG_BLK_DEV_HD is not set
567CONFIG_MISC_DEVICES=y
568# CONFIG_AD525X_DPOT is not set
569# CONFIG_ICS932S401 is not set
570# CONFIG_ENCLOSURE_SERVICES is not set
571# CONFIG_ISL29003 is not set
572# CONFIG_DS1682 is not set
573# CONFIG_C2PORT is not set
574
575#
576# EEPROM support
577#
578CONFIG_EEPROM_AT24=y
579# CONFIG_EEPROM_LEGACY is not set
580# CONFIG_EEPROM_MAX6875 is not set
581# CONFIG_EEPROM_93CX6 is not set
582CONFIG_HAVE_IDE=y
583# CONFIG_IDE is not set
584
585#
586# SCSI device support
587#
588# CONFIG_RAID_ATTRS is not set
589CONFIG_SCSI=y
590CONFIG_SCSI_DMA=y
591# CONFIG_SCSI_TGT is not set
592# CONFIG_SCSI_NETLINK is not set
593# CONFIG_SCSI_PROC_FS is not set
594
595#
596# SCSI support type (disk, tape, CD-ROM)
597#
598CONFIG_BLK_DEV_SD=y
599# CONFIG_CHR_DEV_ST is not set
600# CONFIG_CHR_DEV_OSST is not set
601# CONFIG_BLK_DEV_SR is not set
602CONFIG_CHR_DEV_SG=y
603# CONFIG_CHR_DEV_SCH is not set
604# CONFIG_SCSI_MULTI_LUN is not set
605# CONFIG_SCSI_CONSTANTS is not set
606# CONFIG_SCSI_LOGGING is not set
607# CONFIG_SCSI_SCAN_ASYNC is not set
608CONFIG_SCSI_WAIT_SCAN=m
609
610#
611# SCSI Transports
612#
613# CONFIG_SCSI_SPI_ATTRS is not set
614# CONFIG_SCSI_FC_ATTRS is not set
615# CONFIG_SCSI_ISCSI_ATTRS is not set
616# CONFIG_SCSI_SAS_LIBSAS is not set
617# CONFIG_SCSI_SRP_ATTRS is not set
618CONFIG_SCSI_LOWLEVEL=y
619# CONFIG_ISCSI_TCP is not set
620# CONFIG_LIBFC is not set
621# CONFIG_LIBFCOE is not set
622# CONFIG_SCSI_DEBUG is not set
623# CONFIG_SCSI_DH is not set
624# CONFIG_SCSI_OSD_INITIATOR is not set
625# CONFIG_ATA is not set
626# CONFIG_MD is not set
627# CONFIG_MACINTOSH_DRIVERS is not set
628CONFIG_NETDEVICES=y
629# CONFIG_DUMMY is not set
630# CONFIG_BONDING is not set
631# CONFIG_MACVLAN is not set
632# CONFIG_EQUALIZER is not set
633# CONFIG_TUN is not set
634# CONFIG_VETH is not set
635CONFIG_PHYLIB=y
636
637#
638# MII PHY device drivers
639#
640CONFIG_MARVELL_PHY=y
641CONFIG_DAVICOM_PHY=y
642CONFIG_QSEMI_PHY=y
643CONFIG_LXT_PHY=y
644CONFIG_CICADA_PHY=y
645CONFIG_VITESSE_PHY=y
646CONFIG_SMSC_PHY=y
647CONFIG_BROADCOM_PHY=y
648CONFIG_ICPLUS_PHY=y
649CONFIG_REALTEK_PHY=y
650CONFIG_NATIONAL_PHY=y
651CONFIG_STE10XP=y
652CONFIG_LSI_ET1011C_PHY=y
653CONFIG_FIXED_PHY=y
654CONFIG_MDIO_BITBANG=y
655CONFIG_NET_ETHERNET=y
656CONFIG_MII=y
657# CONFIG_ETHOC is not set
658# CONFIG_DNET is not set
659# CONFIG_IBM_NEW_EMAC_ZMII is not set
660# CONFIG_IBM_NEW_EMAC_RGMII is not set
661# CONFIG_IBM_NEW_EMAC_TAH is not set
662# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
663# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
664# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
665# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
666# CONFIG_B44 is not set
667# CONFIG_KS8842 is not set
668# CONFIG_KS8851_MLL is not set
669# CONFIG_XILINX_EMACLITE is not set
670CONFIG_FS_ENET=y
671CONFIG_FS_ENET_MPC5121_FEC=y
672CONFIG_FS_ENET_HAS_FEC=y
673CONFIG_FS_ENET_MDIO_FEC=y
674# CONFIG_NETDEV_1000 is not set
675# CONFIG_NETDEV_10000 is not set
676# CONFIG_WLAN is not set
677
678#
679# Enable WiMAX (Networking options) to see the WiMAX drivers
680#
681
682#
683# USB Network Adapters
684#
685# CONFIG_USB_CATC is not set
686# CONFIG_USB_KAWETH is not set
687# CONFIG_USB_PEGASUS is not set
688# CONFIG_USB_RTL8150 is not set
689# CONFIG_USB_USBNET is not set
690# CONFIG_WAN is not set
691# CONFIG_PPP is not set
692# CONFIG_SLIP is not set
693# CONFIG_NETCONSOLE is not set
694# CONFIG_NETPOLL is not set
695# CONFIG_NET_POLL_CONTROLLER is not set
696# CONFIG_ISDN is not set
697# CONFIG_PHONE is not set
698
699#
700# Input device support
701#
702CONFIG_INPUT=y
703# CONFIG_INPUT_FF_MEMLESS is not set
704# CONFIG_INPUT_POLLDEV is not set
705# CONFIG_INPUT_SPARSEKMAP is not set
706
707#
708# Userland interfaces
709#
710CONFIG_INPUT_MOUSEDEV=y
711# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
712CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
713CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
714# CONFIG_INPUT_JOYDEV is not set
715CONFIG_INPUT_EVDEV=y
716# CONFIG_INPUT_EVBUG is not set
717
718#
719# Input Device Drivers
720#
721CONFIG_INPUT_KEYBOARD=y
722# CONFIG_KEYBOARD_ADP5588 is not set
723CONFIG_KEYBOARD_ATKBD=y
724# CONFIG_QT2160 is not set
725# CONFIG_KEYBOARD_LKKBD is not set
726# CONFIG_KEYBOARD_MAX7359 is not set
727# CONFIG_KEYBOARD_NEWTON is not set
728# CONFIG_KEYBOARD_OPENCORES is not set
729# CONFIG_KEYBOARD_STOWAWAY is not set
730# CONFIG_KEYBOARD_SUNKBD is not set
731# CONFIG_KEYBOARD_XTKBD is not set
732CONFIG_INPUT_MOUSE=y
733CONFIG_MOUSE_PS2=y
734CONFIG_MOUSE_PS2_ALPS=y
735CONFIG_MOUSE_PS2_LOGIPS2PP=y
736CONFIG_MOUSE_PS2_SYNAPTICS=y
737CONFIG_MOUSE_PS2_TRACKPOINT=y
738# CONFIG_MOUSE_PS2_ELANTECH is not set
739# CONFIG_MOUSE_PS2_SENTELIC is not set
740# CONFIG_MOUSE_PS2_TOUCHKIT is not set
741# CONFIG_MOUSE_SERIAL is not set
742# CONFIG_MOUSE_APPLETOUCH is not set
743# CONFIG_MOUSE_BCM5974 is not set
744# CONFIG_MOUSE_VSXXXAA is not set
745# CONFIG_MOUSE_SYNAPTICS_I2C is not set
746# CONFIG_INPUT_JOYSTICK is not set
747# CONFIG_INPUT_TABLET is not set
748# CONFIG_INPUT_TOUCHSCREEN is not set
749# CONFIG_INPUT_MISC is not set
750
751#
752# Hardware I/O ports
753#
754CONFIG_SERIO=y
755CONFIG_SERIO_I8042=y
756CONFIG_SERIO_SERPORT=y
757CONFIG_SERIO_LIBPS2=y
758# CONFIG_SERIO_RAW is not set
759# CONFIG_SERIO_XILINX_XPS_PS2 is not set
760# CONFIG_SERIO_ALTERA_PS2 is not set
761# CONFIG_GAMEPORT is not set
762
763#
764# Character devices
765#
766CONFIG_VT=y
767CONFIG_CONSOLE_TRANSLATIONS=y
768CONFIG_VT_CONSOLE=y
769CONFIG_HW_CONSOLE=y
770CONFIG_VT_HW_CONSOLE_BINDING=y
771# CONFIG_DEVKMEM is not set
772# CONFIG_SERIAL_NONSTANDARD is not set
773
774#
775# Serial drivers
776#
777# CONFIG_SERIAL_8250 is not set
778
779#
780# Non-8250 serial port support
781#
782# CONFIG_SERIAL_UARTLITE is not set
783CONFIG_SERIAL_CORE=y
784CONFIG_SERIAL_CORE_CONSOLE=y
785CONFIG_SERIAL_MPC52xx=y
786CONFIG_SERIAL_MPC52xx_CONSOLE=y
787CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
788# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
789CONFIG_UNIX98_PTYS=y
790# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
791CONFIG_LEGACY_PTYS=y
792CONFIG_LEGACY_PTY_COUNT=256
793# CONFIG_HVC_UDBG is not set
794# CONFIG_IPMI_HANDLER is not set
795# CONFIG_HW_RANDOM is not set
796# CONFIG_NVRAM is not set
797# CONFIG_R3964 is not set
798# CONFIG_RAW_DRIVER is not set
799# CONFIG_TCG_TPM is not set
800CONFIG_I2C=y
801CONFIG_I2C_BOARDINFO=y
802CONFIG_I2C_COMPAT=y
803CONFIG_I2C_CHARDEV=y
804CONFIG_I2C_HELPER_AUTO=y
805
806#
807# I2C Hardware Bus support
808#
809
810#
811# I2C system bus drivers (mostly embedded / system-on-chip)
812#
813# CONFIG_I2C_DESIGNWARE is not set
814CONFIG_I2C_MPC=y
815# CONFIG_I2C_OCORES is not set
816# CONFIG_I2C_SIMTEC is not set
817
818#
819# External I2C/SMBus adapter drivers
820#
821# CONFIG_I2C_PARPORT_LIGHT is not set
822# CONFIG_I2C_TAOS_EVM is not set
823# CONFIG_I2C_TINY_USB is not set
824
825#
826# Other I2C/SMBus bus drivers
827#
828# CONFIG_I2C_PCA_PLATFORM is not set
829# CONFIG_I2C_STUB is not set
830
831#
832# Miscellaneous I2C Chip support
833#
834# CONFIG_SENSORS_TSL2550 is not set
835# CONFIG_I2C_DEBUG_CORE is not set
836# CONFIG_I2C_DEBUG_ALGO is not set
837# CONFIG_I2C_DEBUG_BUS is not set
838# CONFIG_I2C_DEBUG_CHIP is not set
839# CONFIG_SPI is not set
840
841#
842# PPS support
843#
844# CONFIG_PPS is not set
845CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
846# CONFIG_GPIOLIB is not set
847# CONFIG_W1 is not set
848# CONFIG_POWER_SUPPLY is not set
849# CONFIG_HWMON is not set
850# CONFIG_THERMAL is not set
851# CONFIG_WATCHDOG is not set
852CONFIG_SSB_POSSIBLE=y
853
854#
855# Sonics Silicon Backplane
856#
857# CONFIG_SSB is not set
858
859#
860# Multifunction device drivers
861#
862# CONFIG_MFD_CORE is not set
863# CONFIG_MFD_SM501 is not set
864# CONFIG_HTC_PASIC3 is not set
865# CONFIG_TWL4030_CORE is not set
866# CONFIG_MFD_TMIO is not set
867# CONFIG_PMIC_DA903X is not set
868# CONFIG_PMIC_ADP5520 is not set
869# CONFIG_MFD_WM8400 is not set
870# CONFIG_MFD_WM831X is not set
871# CONFIG_MFD_WM8350_I2C is not set
872# CONFIG_MFD_PCF50633 is not set
873# CONFIG_AB3100_CORE is not set
874# CONFIG_MFD_88PM8607 is not set
875# CONFIG_REGULATOR is not set
876CONFIG_MEDIA_SUPPORT=y
877
878#
879# Multimedia core support
880#
881CONFIG_VIDEO_DEV=y
882CONFIG_VIDEO_V4L2_COMMON=y
883# CONFIG_VIDEO_ALLOW_V4L1 is not set
884CONFIG_VIDEO_V4L1_COMPAT=y
885# CONFIG_DVB_CORE is not set
886CONFIG_VIDEO_MEDIA=y
887
888#
889# Multimedia drivers
890#
891CONFIG_IR_CORE=y
892CONFIG_VIDEO_IR=y
893# CONFIG_MEDIA_ATTACH is not set
894CONFIG_MEDIA_TUNER=y
895# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
896CONFIG_MEDIA_TUNER_SIMPLE=y
897CONFIG_MEDIA_TUNER_TDA8290=y
898CONFIG_MEDIA_TUNER_TDA9887=y
899CONFIG_MEDIA_TUNER_TEA5761=y
900CONFIG_MEDIA_TUNER_TEA5767=y
901CONFIG_MEDIA_TUNER_MT20XX=y
902CONFIG_MEDIA_TUNER_XC2028=y
903CONFIG_MEDIA_TUNER_XC5000=y
904CONFIG_MEDIA_TUNER_MC44S803=y
905CONFIG_VIDEO_V4L2=y
906CONFIG_VIDEO_CAPTURE_DRIVERS=y
907CONFIG_VIDEO_ADV_DEBUG=y
908# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
909# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
910CONFIG_VIDEO_IR_I2C=y
911
912#
913# Encoders/decoders and other helper chips
914#
915
916#
917# Audio decoders
918#
919# CONFIG_VIDEO_TVAUDIO is not set
920# CONFIG_VIDEO_TDA7432 is not set
921# CONFIG_VIDEO_TDA9840 is not set
922# CONFIG_VIDEO_TDA9875 is not set
923# CONFIG_VIDEO_TEA6415C is not set
924# CONFIG_VIDEO_TEA6420 is not set
925# CONFIG_VIDEO_MSP3400 is not set
926# CONFIG_VIDEO_CS5345 is not set
927# CONFIG_VIDEO_CS53L32A is not set
928# CONFIG_VIDEO_M52790 is not set
929# CONFIG_VIDEO_TLV320AIC23B is not set
930# CONFIG_VIDEO_WM8775 is not set
931# CONFIG_VIDEO_WM8739 is not set
932# CONFIG_VIDEO_VP27SMPX is not set
933
934#
935# RDS decoders
936#
937# CONFIG_VIDEO_SAA6588 is not set
938
939#
940# Video decoders
941#
942# CONFIG_VIDEO_ADV7180 is not set
943# CONFIG_VIDEO_BT819 is not set
944# CONFIG_VIDEO_BT856 is not set
945# CONFIG_VIDEO_BT866 is not set
946# CONFIG_VIDEO_KS0127 is not set
947# CONFIG_VIDEO_OV7670 is not set
948# CONFIG_VIDEO_MT9V011 is not set
949# CONFIG_VIDEO_TCM825X is not set
950# CONFIG_VIDEO_SAA7110 is not set
951CONFIG_VIDEO_SAA711X=y
952# CONFIG_VIDEO_SAA717X is not set
953# CONFIG_VIDEO_TVP514X is not set
954# CONFIG_VIDEO_TVP5150 is not set
955# CONFIG_VIDEO_VPX3220 is not set
956
957#
958# Video and audio decoders
959#
960# CONFIG_VIDEO_CX25840 is not set
961
962#
963# MPEG video encoders
964#
965# CONFIG_VIDEO_CX2341X is not set
966
967#
968# Video encoders
969#
970# CONFIG_VIDEO_SAA7127 is not set
971# CONFIG_VIDEO_SAA7185 is not set
972# CONFIG_VIDEO_ADV7170 is not set
973# CONFIG_VIDEO_ADV7175 is not set
974# CONFIG_VIDEO_THS7303 is not set
975# CONFIG_VIDEO_ADV7343 is not set
976
977#
978# Video improvement chips
979#
980# CONFIG_VIDEO_UPD64031A is not set
981# CONFIG_VIDEO_UPD64083 is not set
982# CONFIG_VIDEO_VIVI is not set
983# CONFIG_VIDEO_SAA5246A is not set
984# CONFIG_VIDEO_SAA5249 is not set
985# CONFIG_SOC_CAMERA is not set
986CONFIG_V4L_USB_DRIVERS=y
987# CONFIG_USB_VIDEO_CLASS is not set
988CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
989CONFIG_USB_GSPCA=m
990# CONFIG_USB_M5602 is not set
991# CONFIG_USB_STV06XX is not set
992# CONFIG_USB_GL860 is not set
993# CONFIG_USB_GSPCA_CONEX is not set
994# CONFIG_USB_GSPCA_ETOMS is not set
995# CONFIG_USB_GSPCA_FINEPIX is not set
996# CONFIG_USB_GSPCA_JEILINJ is not set
997# CONFIG_USB_GSPCA_MARS is not set
998# CONFIG_USB_GSPCA_MR97310A is not set
999# CONFIG_USB_GSPCA_OV519 is not set
1000# CONFIG_USB_GSPCA_OV534 is not set
1001# CONFIG_USB_GSPCA_PAC207 is not set
1002# CONFIG_USB_GSPCA_PAC7302 is not set
1003# CONFIG_USB_GSPCA_PAC7311 is not set
1004# CONFIG_USB_GSPCA_SN9C20X is not set
1005# CONFIG_USB_GSPCA_SONIXB is not set
1006# CONFIG_USB_GSPCA_SONIXJ is not set
1007# CONFIG_USB_GSPCA_SPCA500 is not set
1008# CONFIG_USB_GSPCA_SPCA501 is not set
1009# CONFIG_USB_GSPCA_SPCA505 is not set
1010# CONFIG_USB_GSPCA_SPCA506 is not set
1011# CONFIG_USB_GSPCA_SPCA508 is not set
1012# CONFIG_USB_GSPCA_SPCA561 is not set
1013# CONFIG_USB_GSPCA_SQ905 is not set
1014# CONFIG_USB_GSPCA_SQ905C is not set
1015# CONFIG_USB_GSPCA_STK014 is not set
1016# CONFIG_USB_GSPCA_STV0680 is not set
1017# CONFIG_USB_GSPCA_SUNPLUS is not set
1018# CONFIG_USB_GSPCA_T613 is not set
1019# CONFIG_USB_GSPCA_TV8532 is not set
1020# CONFIG_USB_GSPCA_VC032X is not set
1021# CONFIG_USB_GSPCA_ZC3XX is not set
1022# CONFIG_VIDEO_PVRUSB2 is not set
1023# CONFIG_VIDEO_HDPVR is not set
1024# CONFIG_VIDEO_EM28XX is not set
1025# CONFIG_VIDEO_CX231XX is not set
1026# CONFIG_VIDEO_USBVISION is not set
1027# CONFIG_USB_ET61X251 is not set
1028# CONFIG_USB_SN9C102 is not set
1029# CONFIG_USB_ZC0301 is not set
1030CONFIG_USB_PWC_INPUT_EVDEV=y
1031# CONFIG_USB_ZR364XX is not set
1032# CONFIG_USB_STKWEBCAM is not set
1033# CONFIG_USB_S2255 is not set
1034CONFIG_RADIO_ADAPTERS=y
1035# CONFIG_I2C_SI4713 is not set
1036# CONFIG_RADIO_SI4713 is not set
1037# CONFIG_USB_DSBR is not set
1038# CONFIG_RADIO_SI470X is not set
1039# CONFIG_USB_MR800 is not set
1040# CONFIG_RADIO_TEA5764 is not set
1041# CONFIG_RADIO_TEF6862 is not set
1042# CONFIG_DAB is not set
1043
1044#
1045# Graphics support
1046#
1047# CONFIG_VGASTATE is not set
1048# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1049CONFIG_FB=y
1050# CONFIG_FIRMWARE_EDID is not set
1051# CONFIG_FB_DDC is not set
1052# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1053CONFIG_FB_CFB_FILLRECT=y
1054CONFIG_FB_CFB_COPYAREA=y
1055CONFIG_FB_CFB_IMAGEBLIT=y
1056# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1057# CONFIG_FB_SYS_FILLRECT is not set
1058# CONFIG_FB_SYS_COPYAREA is not set
1059# CONFIG_FB_SYS_IMAGEBLIT is not set
1060# CONFIG_FB_FOREIGN_ENDIAN is not set
1061# CONFIG_FB_SYS_FOPS is not set
1062# CONFIG_FB_SVGALIB is not set
1063# CONFIG_FB_MACMODES is not set
1064# CONFIG_FB_BACKLIGHT is not set
1065# CONFIG_FB_MODE_HELPERS is not set
1066# CONFIG_FB_TILEBLITTING is not set
1067
1068#
1069# Frame buffer hardware drivers
1070#
1071# CONFIG_FB_OF is not set
1072# CONFIG_FB_VGA16 is not set
1073# CONFIG_FB_S1D13XXX is not set
1074CONFIG_FB_FSL_DIU=y
1075# CONFIG_FB_IBM_GXT4500 is not set
1076# CONFIG_FB_VIRTUAL is not set
1077# CONFIG_FB_METRONOME is not set
1078# CONFIG_FB_MB862XX is not set
1079# CONFIG_FB_BROADSHEET is not set
1080# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1081
1082#
1083# Display device support
1084#
1085# CONFIG_DISPLAY_SUPPORT is not set
1086
1087#
1088# Console display driver support
1089#
1090# CONFIG_VGA_CONSOLE is not set
1091CONFIG_DUMMY_CONSOLE=y
1092CONFIG_FRAMEBUFFER_CONSOLE=y
1093# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1094# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1095# CONFIG_FONTS is not set
1096CONFIG_FONT_8x8=y
1097CONFIG_FONT_8x16=y
1098# CONFIG_LOGO is not set
1099# CONFIG_SOUND is not set
1100CONFIG_HID_SUPPORT=y
1101CONFIG_HID=y
1102# CONFIG_HIDRAW is not set
1103
1104#
1105# USB Input Devices
1106#
1107CONFIG_USB_HID=y
1108# CONFIG_HID_PID is not set
1109# CONFIG_USB_HIDDEV is not set
1110
1111#
1112# Special HID drivers
1113#
1114CONFIG_HID_A4TECH=y
1115CONFIG_HID_APPLE=y
1116CONFIG_HID_BELKIN=y
1117CONFIG_HID_CHERRY=y
1118CONFIG_HID_CHICONY=y
1119CONFIG_HID_CYPRESS=y
1120CONFIG_HID_DRAGONRISE=y
1121# CONFIG_DRAGONRISE_FF is not set
1122CONFIG_HID_EZKEY=y
1123CONFIG_HID_KYE=y
1124CONFIG_HID_GYRATION=y
1125CONFIG_HID_TWINHAN=y
1126CONFIG_HID_KENSINGTON=y
1127CONFIG_HID_LOGITECH=y
1128# CONFIG_LOGITECH_FF is not set
1129# CONFIG_LOGIRUMBLEPAD2_FF is not set
1130CONFIG_HID_MICROSOFT=y
1131CONFIG_HID_MONTEREY=y
1132CONFIG_HID_NTRIG=y
1133CONFIG_HID_PANTHERLORD=y
1134# CONFIG_PANTHERLORD_FF is not set
1135CONFIG_HID_PETALYNX=y
1136CONFIG_HID_SAMSUNG=y
1137CONFIG_HID_SONY=y
1138CONFIG_HID_SUNPLUS=y
1139CONFIG_HID_GREENASIA=y
1140# CONFIG_GREENASIA_FF is not set
1141CONFIG_HID_SMARTJOYPLUS=y
1142# CONFIG_SMARTJOYPLUS_FF is not set
1143CONFIG_HID_TOPSEED=y
1144CONFIG_HID_THRUSTMASTER=y
1145# CONFIG_THRUSTMASTER_FF is not set
1146CONFIG_HID_ZEROPLUS=y
1147# CONFIG_ZEROPLUS_FF is not set
1148CONFIG_USB_SUPPORT=y
1149CONFIG_USB_ARCH_HAS_HCD=y
1150# CONFIG_USB_ARCH_HAS_OHCI is not set
1151CONFIG_USB_ARCH_HAS_EHCI=y
1152CONFIG_USB=y
1153# CONFIG_USB_DEBUG is not set
1154# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1155
1156#
1157# Miscellaneous USB options
1158#
1159# CONFIG_USB_DEVICEFS is not set
1160CONFIG_USB_DEVICE_CLASS=y
1161# CONFIG_USB_DYNAMIC_MINORS is not set
1162# CONFIG_USB_OTG is not set
1163# CONFIG_USB_MON is not set
1164# CONFIG_USB_WUSB is not set
1165# CONFIG_USB_WUSB_CBAF is not set
1166
1167#
1168# USB Host Controller Drivers
1169#
1170# CONFIG_USB_C67X00_HCD is not set
1171CONFIG_USB_EHCI_HCD=y
1172CONFIG_USB_EHCI_ROOT_HUB_TT=y
1173# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1174CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
1175CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y
1176# CONFIG_XPS_USB_HCD_XILINX is not set
1177CONFIG_USB_EHCI_FSL=y
1178CONFIG_USB_EHCI_HCD_PPC_OF=y
1179# CONFIG_USB_OXU210HP_HCD is not set
1180# CONFIG_USB_ISP116X_HCD is not set
1181# CONFIG_USB_ISP1760_HCD is not set
1182# CONFIG_USB_ISP1362_HCD is not set
1183# CONFIG_USB_SL811_HCD is not set
1184# CONFIG_USB_R8A66597_HCD is not set
1185# CONFIG_USB_HWA_HCD is not set
1186
1187#
1188# USB Device Class drivers
1189#
1190# CONFIG_USB_ACM is not set
1191# CONFIG_USB_PRINTER is not set
1192# CONFIG_USB_WDM is not set
1193# CONFIG_USB_TMC is not set
1194
1195#
1196# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1197#
1198
1199#
1200# also be needed; see USB_STORAGE Help for more info
1201#
1202CONFIG_USB_STORAGE=y
1203# CONFIG_USB_STORAGE_DEBUG is not set
1204# CONFIG_USB_STORAGE_DATAFAB is not set
1205# CONFIG_USB_STORAGE_FREECOM is not set
1206# CONFIG_USB_STORAGE_ISD200 is not set
1207# CONFIG_USB_STORAGE_USBAT is not set
1208# CONFIG_USB_STORAGE_SDDR09 is not set
1209# CONFIG_USB_STORAGE_SDDR55 is not set
1210# CONFIG_USB_STORAGE_JUMPSHOT is not set
1211# CONFIG_USB_STORAGE_ALAUDA is not set
1212# CONFIG_USB_STORAGE_ONETOUCH is not set
1213# CONFIG_USB_STORAGE_KARMA is not set
1214# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1215# CONFIG_USB_LIBUSUAL is not set
1216
1217#
1218# USB Imaging devices
1219#
1220# CONFIG_USB_MDC800 is not set
1221# CONFIG_USB_MICROTEK is not set
1222
1223#
1224# USB port drivers
1225#
1226# CONFIG_USB_SERIAL is not set
1227
1228#
1229# USB Miscellaneous drivers
1230#
1231# CONFIG_USB_EMI62 is not set
1232# CONFIG_USB_EMI26 is not set
1233# CONFIG_USB_ADUTUX is not set
1234# CONFIG_USB_SEVSEG is not set
1235# CONFIG_USB_RIO500 is not set
1236# CONFIG_USB_LEGOTOWER is not set
1237# CONFIG_USB_LCD is not set
1238# CONFIG_USB_BERRY_CHARGE is not set
1239# CONFIG_USB_LED is not set
1240# CONFIG_USB_CYPRESS_CY7C63 is not set
1241# CONFIG_USB_CYTHERM is not set
1242# CONFIG_USB_IDMOUSE is not set
1243# CONFIG_USB_FTDI_ELAN is not set
1244# CONFIG_USB_APPLEDISPLAY is not set
1245# CONFIG_USB_SISUSBVGA is not set
1246# CONFIG_USB_LD is not set
1247# CONFIG_USB_TRANCEVIBRATOR is not set
1248# CONFIG_USB_IOWARRIOR is not set
1249# CONFIG_USB_TEST is not set
1250# CONFIG_USB_ISIGHTFW is not set
1251# CONFIG_USB_VST is not set
1252# CONFIG_USB_GADGET is not set
1253
1254#
1255# OTG and related infrastructure
1256#
1257# CONFIG_NOP_USB_XCEIV is not set
1258# CONFIG_MMC is not set
1259# CONFIG_MEMSTICK is not set
1260# CONFIG_NEW_LEDS is not set
1261# CONFIG_ACCESSIBILITY is not set
1262# CONFIG_EDAC is not set
1263CONFIG_RTC_LIB=y
1264CONFIG_RTC_CLASS=y
1265CONFIG_RTC_HCTOSYS=y
1266CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1267# CONFIG_RTC_DEBUG is not set
1268
1269#
1270# RTC interfaces
1271#
1272CONFIG_RTC_INTF_SYSFS=y
1273CONFIG_RTC_INTF_PROC=y
1274CONFIG_RTC_INTF_DEV=y
1275# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1276# CONFIG_RTC_DRV_TEST is not set
1277
1278#
1279# I2C RTC drivers
1280#
1281# CONFIG_RTC_DRV_DS1307 is not set
1282# CONFIG_RTC_DRV_DS1374 is not set
1283# CONFIG_RTC_DRV_DS1672 is not set
1284# CONFIG_RTC_DRV_MAX6900 is not set
1285# CONFIG_RTC_DRV_RS5C372 is not set
1286# CONFIG_RTC_DRV_ISL1208 is not set
1287# CONFIG_RTC_DRV_X1205 is not set
1288# CONFIG_RTC_DRV_PCF8563 is not set
1289# CONFIG_RTC_DRV_PCF8583 is not set
1290CONFIG_RTC_DRV_M41T80=y
1291# CONFIG_RTC_DRV_M41T80_WDT is not set
1292# CONFIG_RTC_DRV_BQ32K is not set
1293# CONFIG_RTC_DRV_S35390A is not set
1294# CONFIG_RTC_DRV_FM3130 is not set
1295# CONFIG_RTC_DRV_RX8581 is not set
1296# CONFIG_RTC_DRV_RX8025 is not set
1297
1298#
1299# SPI RTC drivers
1300#
1301
1302#
1303# Platform RTC drivers
1304#
1305# CONFIG_RTC_DRV_CMOS is not set
1306# CONFIG_RTC_DRV_DS1286 is not set
1307# CONFIG_RTC_DRV_DS1511 is not set
1308# CONFIG_RTC_DRV_DS1553 is not set
1309# CONFIG_RTC_DRV_DS1742 is not set
1310# CONFIG_RTC_DRV_STK17TA8 is not set
1311# CONFIG_RTC_DRV_M48T86 is not set
1312# CONFIG_RTC_DRV_M48T35 is not set
1313# CONFIG_RTC_DRV_M48T59 is not set
1314# CONFIG_RTC_DRV_MSM6242 is not set
1315# CONFIG_RTC_DRV_BQ4802 is not set
1316# CONFIG_RTC_DRV_RP5C01 is not set
1317# CONFIG_RTC_DRV_V3020 is not set
1318
1319#
1320# on-CPU RTC drivers
1321#
1322# CONFIG_RTC_DRV_GENERIC is not set
1323CONFIG_RTC_DRV_MPC5121=y
1324CONFIG_DMADEVICES=y
1325
1326#
1327# DMA Devices
1328#
1329# CONFIG_FSL_DMA is not set
1330CONFIG_MPC512X_DMA=y
1331CONFIG_DMA_ENGINE=y
1332
1333#
1334# DMA Clients
1335#
1336# CONFIG_NET_DMA is not set
1337# CONFIG_ASYNC_TX_DMA is not set
1338# CONFIG_DMATEST is not set
1339# CONFIG_AUXDISPLAY is not set
1340# CONFIG_UIO is not set
1341
1342#
1343# TI VLYNQ
1344#
1345# CONFIG_STAGING is not set
1346
1347#
1348# File systems
1349#
1350CONFIG_EXT2_FS=y
1351# CONFIG_EXT2_FS_XATTR is not set
1352CONFIG_EXT2_FS_XIP=y
1353CONFIG_EXT3_FS=y
1354# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1355CONFIG_EXT3_FS_XATTR=y
1356# CONFIG_EXT3_FS_POSIX_ACL is not set
1357# CONFIG_EXT3_FS_SECURITY is not set
1358# CONFIG_EXT4_FS is not set
1359CONFIG_FS_XIP=y
1360CONFIG_JBD=y
1361CONFIG_FS_MBCACHE=y
1362# CONFIG_REISERFS_FS is not set
1363# CONFIG_JFS_FS is not set
1364# CONFIG_FS_POSIX_ACL is not set
1365# CONFIG_XFS_FS is not set
1366# CONFIG_GFS2_FS is not set
1367# CONFIG_OCFS2_FS is not set
1368# CONFIG_BTRFS_FS is not set
1369# CONFIG_NILFS2_FS is not set
1370CONFIG_FILE_LOCKING=y
1371CONFIG_FSNOTIFY=y
1372# CONFIG_DNOTIFY is not set
1373# CONFIG_INOTIFY is not set
1374CONFIG_INOTIFY_USER=y
1375# CONFIG_QUOTA is not set
1376# CONFIG_AUTOFS_FS is not set
1377# CONFIG_AUTOFS4_FS is not set
1378# CONFIG_FUSE_FS is not set
1379
1380#
1381# Caches
1382#
1383# CONFIG_FSCACHE is not set
1384
1385#
1386# CD-ROM/DVD Filesystems
1387#
1388# CONFIG_ISO9660_FS is not set
1389# CONFIG_UDF_FS is not set
1390
1391#
1392# DOS/FAT/NT Filesystems
1393#
1394CONFIG_FAT_FS=y
1395# CONFIG_MSDOS_FS is not set
1396CONFIG_VFAT_FS=y
1397CONFIG_FAT_DEFAULT_CODEPAGE=437
1398CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1399# CONFIG_NTFS_FS is not set
1400
1401#
1402# Pseudo filesystems
1403#
1404CONFIG_PROC_FS=y
1405# CONFIG_PROC_KCORE is not set
1406CONFIG_PROC_SYSCTL=y
1407CONFIG_PROC_PAGE_MONITOR=y
1408CONFIG_SYSFS=y
1409CONFIG_TMPFS=y
1410# CONFIG_TMPFS_POSIX_ACL is not set
1411# CONFIG_HUGETLB_PAGE is not set
1412# CONFIG_CONFIGFS_FS is not set
1413CONFIG_MISC_FILESYSTEMS=y
1414# CONFIG_ADFS_FS is not set
1415# CONFIG_AFFS_FS is not set
1416# CONFIG_HFS_FS is not set
1417# CONFIG_HFSPLUS_FS is not set
1418# CONFIG_BEFS_FS is not set
1419# CONFIG_BFS_FS is not set
1420# CONFIG_EFS_FS is not set
1421CONFIG_JFFS2_FS=y
1422CONFIG_JFFS2_FS_DEBUG=0
1423CONFIG_JFFS2_FS_WRITEBUFFER=y
1424# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1425# CONFIG_JFFS2_SUMMARY is not set
1426# CONFIG_JFFS2_FS_XATTR is not set
1427# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1428CONFIG_JFFS2_ZLIB=y
1429# CONFIG_JFFS2_LZO is not set
1430CONFIG_JFFS2_RTIME=y
1431# CONFIG_JFFS2_RUBIN is not set
1432CONFIG_UBIFS_FS=y
1433# CONFIG_UBIFS_FS_XATTR is not set
1434# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
1435CONFIG_UBIFS_FS_LZO=y
1436CONFIG_UBIFS_FS_ZLIB=y
1437# CONFIG_UBIFS_FS_DEBUG is not set
1438# CONFIG_CRAMFS is not set
1439# CONFIG_SQUASHFS is not set
1440# CONFIG_VXFS_FS is not set
1441# CONFIG_MINIX_FS is not set
1442# CONFIG_OMFS_FS is not set
1443# CONFIG_HPFS_FS is not set
1444# CONFIG_QNX4FS_FS is not set
1445# CONFIG_ROMFS_FS is not set
1446# CONFIG_SYSV_FS is not set
1447# CONFIG_UFS_FS is not set
1448CONFIG_NETWORK_FILESYSTEMS=y
1449CONFIG_NFS_FS=y
1450CONFIG_NFS_V3=y
1451# CONFIG_NFS_V3_ACL is not set
1452# CONFIG_NFS_V4 is not set
1453CONFIG_ROOT_NFS=y
1454# CONFIG_NFSD is not set
1455CONFIG_LOCKD=y
1456CONFIG_LOCKD_V4=y
1457CONFIG_NFS_COMMON=y
1458CONFIG_SUNRPC=y
1459# CONFIG_RPCSEC_GSS_KRB5 is not set
1460# CONFIG_RPCSEC_GSS_SPKM3 is not set
1461# CONFIG_SMB_FS is not set
1462# CONFIG_CIFS is not set
1463# CONFIG_NCP_FS is not set
1464# CONFIG_CODA_FS is not set
1465# CONFIG_AFS_FS is not set
1466
1467#
1468# Partition Types
1469#
1470CONFIG_PARTITION_ADVANCED=y
1471# CONFIG_ACORN_PARTITION is not set
1472# CONFIG_OSF_PARTITION is not set
1473# CONFIG_AMIGA_PARTITION is not set
1474# CONFIG_ATARI_PARTITION is not set
1475# CONFIG_MAC_PARTITION is not set
1476CONFIG_MSDOS_PARTITION=y
1477# CONFIG_BSD_DISKLABEL is not set
1478# CONFIG_MINIX_SUBPARTITION is not set
1479# CONFIG_SOLARIS_X86_PARTITION is not set
1480# CONFIG_UNIXWARE_DISKLABEL is not set
1481# CONFIG_LDM_PARTITION is not set
1482# CONFIG_SGI_PARTITION is not set
1483# CONFIG_ULTRIX_PARTITION is not set
1484# CONFIG_SUN_PARTITION is not set
1485# CONFIG_KARMA_PARTITION is not set
1486# CONFIG_EFI_PARTITION is not set
1487# CONFIG_SYSV68_PARTITION is not set
1488CONFIG_NLS=y
1489CONFIG_NLS_DEFAULT="iso8859-1"
1490CONFIG_NLS_CODEPAGE_437=y
1491# CONFIG_NLS_CODEPAGE_737 is not set
1492# CONFIG_NLS_CODEPAGE_775 is not set
1493# CONFIG_NLS_CODEPAGE_850 is not set
1494# CONFIG_NLS_CODEPAGE_852 is not set
1495# CONFIG_NLS_CODEPAGE_855 is not set
1496# CONFIG_NLS_CODEPAGE_857 is not set
1497# CONFIG_NLS_CODEPAGE_860 is not set
1498# CONFIG_NLS_CODEPAGE_861 is not set
1499# CONFIG_NLS_CODEPAGE_862 is not set
1500# CONFIG_NLS_CODEPAGE_863 is not set
1501# CONFIG_NLS_CODEPAGE_864 is not set
1502# CONFIG_NLS_CODEPAGE_865 is not set
1503# CONFIG_NLS_CODEPAGE_866 is not set
1504# CONFIG_NLS_CODEPAGE_869 is not set
1505# CONFIG_NLS_CODEPAGE_936 is not set
1506# CONFIG_NLS_CODEPAGE_950 is not set
1507# CONFIG_NLS_CODEPAGE_932 is not set
1508# CONFIG_NLS_CODEPAGE_949 is not set
1509# CONFIG_NLS_CODEPAGE_874 is not set
1510# CONFIG_NLS_ISO8859_8 is not set
1511# CONFIG_NLS_CODEPAGE_1250 is not set
1512# CONFIG_NLS_CODEPAGE_1251 is not set
1513# CONFIG_NLS_ASCII is not set
1514CONFIG_NLS_ISO8859_1=y
1515# CONFIG_NLS_ISO8859_2 is not set
1516# CONFIG_NLS_ISO8859_3 is not set
1517# CONFIG_NLS_ISO8859_4 is not set
1518# CONFIG_NLS_ISO8859_5 is not set
1519# CONFIG_NLS_ISO8859_6 is not set
1520# CONFIG_NLS_ISO8859_7 is not set
1521# CONFIG_NLS_ISO8859_9 is not set
1522# CONFIG_NLS_ISO8859_13 is not set
1523# CONFIG_NLS_ISO8859_14 is not set
1524# CONFIG_NLS_ISO8859_15 is not set
1525# CONFIG_NLS_KOI8_R is not set
1526# CONFIG_NLS_KOI8_U is not set
1527# CONFIG_NLS_UTF8 is not set
1528# CONFIG_DLM is not set
1529# CONFIG_BINARY_PRINTF is not set
1530
1531#
1532# Library routines
1533#
1534CONFIG_BITREVERSE=y
1535CONFIG_GENERIC_FIND_LAST_BIT=y
1536# CONFIG_CRC_CCITT is not set
1537CONFIG_CRC16=y
1538# CONFIG_CRC_T10DIF is not set
1539# CONFIG_CRC_ITU_T is not set
1540CONFIG_CRC32=y
1541# CONFIG_CRC7 is not set
1542# CONFIG_LIBCRC32C is not set
1543CONFIG_ZLIB_INFLATE=y
1544CONFIG_ZLIB_DEFLATE=y
1545CONFIG_LZO_COMPRESS=y
1546CONFIG_LZO_DECOMPRESS=y
1547CONFIG_DECOMPRESS_GZIP=y
1548CONFIG_DECOMPRESS_BZIP2=y
1549CONFIG_DECOMPRESS_LZMA=y
1550CONFIG_DECOMPRESS_LZO=y
1551CONFIG_HAS_IOMEM=y
1552CONFIG_HAS_IOPORT=y
1553CONFIG_HAS_DMA=y
1554CONFIG_HAVE_LMB=y
1555CONFIG_NLATTR=y
1556CONFIG_GENERIC_ATOMIC64=y
1557
1558#
1559# Kernel hacking
1560#
1561# CONFIG_PRINTK_TIME is not set
1562# CONFIG_ENABLE_WARN_DEPRECATED is not set
1563# CONFIG_ENABLE_MUST_CHECK is not set
1564CONFIG_FRAME_WARN=1024
1565# CONFIG_MAGIC_SYSRQ is not set
1566# CONFIG_STRIP_ASM_SYMS is not set
1567# CONFIG_UNUSED_SYMBOLS is not set
1568# CONFIG_DEBUG_FS is not set
1569# CONFIG_HEADERS_CHECK is not set
1570# CONFIG_DEBUG_KERNEL is not set
1571CONFIG_DEBUG_BUGVERBOSE=y
1572CONFIG_DEBUG_MEMORY_INIT=y
1573# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1574# CONFIG_LATENCYTOP is not set
1575# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1576CONFIG_HAVE_FUNCTION_TRACER=y
1577CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1578CONFIG_HAVE_DYNAMIC_FTRACE=y
1579CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1580CONFIG_TRACING_SUPPORT=y
1581# CONFIG_FTRACE is not set
1582# CONFIG_DMA_API_DEBUG is not set
1583# CONFIG_SAMPLES is not set
1584CONFIG_HAVE_ARCH_KGDB=y
1585# CONFIG_PPC_DISABLE_WERROR is not set
1586CONFIG_PPC_WERROR=y
1587CONFIG_PRINT_STACK_DEPTH=64
1588# CONFIG_IRQSTACKS is not set
1589# CONFIG_BOOTX_TEXT is not set
1590# CONFIG_PPC_EARLY_DEBUG is not set
1591
1592#
1593# Security options
1594#
1595# CONFIG_KEYS is not set
1596# CONFIG_SECURITY is not set
1597# CONFIG_SECURITYFS is not set
1598# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1599# CONFIG_DEFAULT_SECURITY_SMACK is not set
1600# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1601CONFIG_DEFAULT_SECURITY_DAC=y
1602CONFIG_DEFAULT_SECURITY=""
1603CONFIG_CRYPTO=y
1604
1605#
1606# Crypto core or helper
1607#
1608CONFIG_CRYPTO_ALGAPI=y
1609CONFIG_CRYPTO_ALGAPI2=y
1610# CONFIG_CRYPTO_MANAGER is not set
1611# CONFIG_CRYPTO_MANAGER2 is not set
1612# CONFIG_CRYPTO_GF128MUL is not set
1613# CONFIG_CRYPTO_NULL is not set
1614# CONFIG_CRYPTO_CRYPTD is not set
1615# CONFIG_CRYPTO_AUTHENC is not set
1616# CONFIG_CRYPTO_TEST is not set
1617
1618#
1619# Authenticated Encryption with Associated Data
1620#
1621# CONFIG_CRYPTO_CCM is not set
1622# CONFIG_CRYPTO_GCM is not set
1623# CONFIG_CRYPTO_SEQIV is not set
1624
1625#
1626# Block modes
1627#
1628# CONFIG_CRYPTO_CBC is not set
1629# CONFIG_CRYPTO_CTR is not set
1630# CONFIG_CRYPTO_CTS is not set
1631# CONFIG_CRYPTO_ECB is not set
1632# CONFIG_CRYPTO_LRW is not set
1633# CONFIG_CRYPTO_PCBC is not set
1634# CONFIG_CRYPTO_XTS is not set
1635
1636#
1637# Hash modes
1638#
1639# CONFIG_CRYPTO_HMAC is not set
1640# CONFIG_CRYPTO_XCBC is not set
1641# CONFIG_CRYPTO_VMAC is not set
1642
1643#
1644# Digest
1645#
1646# CONFIG_CRYPTO_CRC32C is not set
1647# CONFIG_CRYPTO_GHASH is not set
1648# CONFIG_CRYPTO_MD4 is not set
1649# CONFIG_CRYPTO_MD5 is not set
1650# CONFIG_CRYPTO_MICHAEL_MIC is not set
1651# CONFIG_CRYPTO_RMD128 is not set
1652# CONFIG_CRYPTO_RMD160 is not set
1653# CONFIG_CRYPTO_RMD256 is not set
1654# CONFIG_CRYPTO_RMD320 is not set
1655# CONFIG_CRYPTO_SHA1 is not set
1656# CONFIG_CRYPTO_SHA256 is not set
1657# CONFIG_CRYPTO_SHA512 is not set
1658# CONFIG_CRYPTO_TGR192 is not set
1659# CONFIG_CRYPTO_WP512 is not set
1660
1661#
1662# Ciphers
1663#
1664# CONFIG_CRYPTO_AES is not set
1665# CONFIG_CRYPTO_ANUBIS is not set
1666# CONFIG_CRYPTO_ARC4 is not set
1667# CONFIG_CRYPTO_BLOWFISH is not set
1668# CONFIG_CRYPTO_CAMELLIA is not set
1669# CONFIG_CRYPTO_CAST5 is not set
1670# CONFIG_CRYPTO_CAST6 is not set
1671# CONFIG_CRYPTO_DES is not set
1672# CONFIG_CRYPTO_FCRYPT is not set
1673# CONFIG_CRYPTO_KHAZAD is not set
1674# CONFIG_CRYPTO_SALSA20 is not set
1675# CONFIG_CRYPTO_SEED is not set
1676# CONFIG_CRYPTO_SERPENT is not set
1677# CONFIG_CRYPTO_TEA is not set
1678# CONFIG_CRYPTO_TWOFISH is not set
1679
1680#
1681# Compression
1682#
1683CONFIG_CRYPTO_DEFLATE=y
1684# CONFIG_CRYPTO_ZLIB is not set
1685CONFIG_CRYPTO_LZO=y
1686
1687#
1688# Random Number Generation
1689#
1690# CONFIG_CRYPTO_ANSI_CPRNG is not set
1691# CONFIG_CRYPTO_HW is not set
1692CONFIG_PPC_CLOCK=y
1693CONFIG_PPC_LIB_RHEAP=y
1694# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/include/asm/mpc5121.h b/arch/powerpc/include/asm/mpc5121.h
new file mode 100644
index 000000000000..e6a30bb1d16a
--- /dev/null
+++ b/arch/powerpc/include/asm/mpc5121.h
@@ -0,0 +1,24 @@
1/*
2 * MPC5121 Prototypes and definitions
3 *
4 * This file is licensed under the terms of the GNU General Public
5 * License version 2.
6 */
7
8#ifndef __ASM_POWERPC_MPC5121_H__
9#define __ASM_POWERPC_MPC5121_H__
10
11/* MPC512x Reset module registers */
12struct mpc512x_reset_module {
13 u32 rcwlr; /* Reset Configuration Word Low Register */
14 u32 rcwhr; /* Reset Configuration Word High Register */
15 u32 reserved1;
16 u32 reserved2;
17 u32 rsr; /* Reset Status Register */
18 u32 rmr; /* Reset Mode Register */
19 u32 rpr; /* Reset Protection Register */
20 u32 rcr; /* Reset Control Register */
21 u32 rcer; /* Reset Control Enable Register */
22};
23
24#endif /* __ASM_POWERPC_MPC5121_H__ */
diff --git a/arch/powerpc/include/asm/mpc52xx_psc.h b/arch/powerpc/include/asm/mpc52xx_psc.h
index fb8412057450..42561f4f032d 100644
--- a/arch/powerpc/include/asm/mpc52xx_psc.h
+++ b/arch/powerpc/include/asm/mpc52xx_psc.h
@@ -25,7 +25,11 @@
25#include <asm/types.h> 25#include <asm/types.h>
26 26
27/* Max number of PSCs */ 27/* Max number of PSCs */
28#ifdef CONFIG_PPC_MPC512x
29#define MPC52xx_PSC_MAXNUM 12
30#else
28#define MPC52xx_PSC_MAXNUM 6 31#define MPC52xx_PSC_MAXNUM 6
32#endif
29 33
30/* Programmable Serial Controller (PSC) status register bits */ 34/* Programmable Serial Controller (PSC) status register bits */
31#define MPC52xx_PSC_SR_UNEX_RX 0x0001 35#define MPC52xx_PSC_SR_UNEX_RX 0x0001
diff --git a/arch/powerpc/platforms/512x/clock.c b/arch/powerpc/platforms/512x/clock.c
index 84544d072043..4c42246b86a7 100644
--- a/arch/powerpc/platforms/512x/clock.c
+++ b/arch/powerpc/platforms/512x/clock.c
@@ -698,8 +698,7 @@ static struct clk_interface mpc5121_clk_functions = {
698 .clk_get_parent = NULL, 698 .clk_get_parent = NULL,
699}; 699};
700 700
701static int 701int __init mpc5121_clk_init(void)
702mpc5121_clk_init(void)
703{ 702{
704 struct device_node *np; 703 struct device_node *np;
705 704
@@ -724,6 +723,3 @@ mpc5121_clk_init(void)
724 clk_functions = mpc5121_clk_functions; 723 clk_functions = mpc5121_clk_functions;
725 return 0; 724 return 0;
726} 725}
727
728
729arch_initcall(mpc5121_clk_init);
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads.c b/arch/powerpc/platforms/512x/mpc5121_ads.c
index 441abc488851..ee6ae129c25c 100644
--- a/arch/powerpc/platforms/512x/mpc5121_ads.c
+++ b/arch/powerpc/platforms/512x/mpc5121_ads.c
@@ -64,8 +64,9 @@ define_machine(mpc5121_ads) {
64 .name = "MPC5121 ADS", 64 .name = "MPC5121 ADS",
65 .probe = mpc5121_ads_probe, 65 .probe = mpc5121_ads_probe,
66 .setup_arch = mpc5121_ads_setup_arch, 66 .setup_arch = mpc5121_ads_setup_arch,
67 .init = mpc512x_declare_of_platform_devices, 67 .init = mpc512x_init,
68 .init_IRQ = mpc5121_ads_init_IRQ, 68 .init_IRQ = mpc5121_ads_init_IRQ,
69 .get_irq = ipic_get_irq, 69 .get_irq = ipic_get_irq,
70 .calibrate_decr = generic_calibrate_decr, 70 .calibrate_decr = generic_calibrate_decr,
71 .restart = mpc512x_restart,
71}; 72};
diff --git a/arch/powerpc/platforms/512x/mpc5121_generic.c b/arch/powerpc/platforms/512x/mpc5121_generic.c
index 2479de9e2d12..a6c0e3a2615d 100644
--- a/arch/powerpc/platforms/512x/mpc5121_generic.c
+++ b/arch/powerpc/platforms/512x/mpc5121_generic.c
@@ -51,8 +51,9 @@ static int __init mpc5121_generic_probe(void)
51define_machine(mpc5121_generic) { 51define_machine(mpc5121_generic) {
52 .name = "MPC5121 generic", 52 .name = "MPC5121 generic",
53 .probe = mpc5121_generic_probe, 53 .probe = mpc5121_generic_probe,
54 .init = mpc512x_declare_of_platform_devices, 54 .init = mpc512x_init,
55 .init_IRQ = mpc512x_init_IRQ, 55 .init_IRQ = mpc512x_init_IRQ,
56 .get_irq = ipic_get_irq, 56 .get_irq = ipic_get_irq,
57 .calibrate_decr = generic_calibrate_decr, 57 .calibrate_decr = generic_calibrate_decr,
58 .restart = mpc512x_restart,
58}; 59};
diff --git a/arch/powerpc/platforms/512x/mpc512x.h b/arch/powerpc/platforms/512x/mpc512x.h
index 22a5352407e0..b2daca0d1488 100644
--- a/arch/powerpc/platforms/512x/mpc512x.h
+++ b/arch/powerpc/platforms/512x/mpc512x.h
@@ -12,5 +12,8 @@
12#ifndef __MPC512X_H__ 12#ifndef __MPC512X_H__
13#define __MPC512X_H__ 13#define __MPC512X_H__
14extern void __init mpc512x_init_IRQ(void); 14extern void __init mpc512x_init_IRQ(void);
15extern void __init mpc512x_init(void);
16extern int __init mpc5121_clk_init(void);
15void __init mpc512x_declare_of_platform_devices(void); 17void __init mpc512x_declare_of_platform_devices(void);
18extern void mpc512x_restart(char *cmd);
16#endif /* __MPC512X_H__ */ 19#endif /* __MPC512X_H__ */
diff --git a/arch/powerpc/platforms/512x/mpc512x_shared.c b/arch/powerpc/platforms/512x/mpc512x_shared.c
index 434d683df5a0..b7f518a60f03 100644
--- a/arch/powerpc/platforms/512x/mpc512x_shared.c
+++ b/arch/powerpc/platforms/512x/mpc512x_shared.c
@@ -21,9 +21,38 @@
21#include <asm/ipic.h> 21#include <asm/ipic.h>
22#include <asm/prom.h> 22#include <asm/prom.h>
23#include <asm/time.h> 23#include <asm/time.h>
24#include <asm/mpc5121.h>
24 25
25#include "mpc512x.h" 26#include "mpc512x.h"
26 27
28static struct mpc512x_reset_module __iomem *reset_module_base;
29
30static void __init mpc512x_restart_init(void)
31{
32 struct device_node *np;
33
34 np = of_find_compatible_node(NULL, NULL, "fsl,mpc5121-reset");
35 if (!np)
36 return;
37
38 reset_module_base = of_iomap(np, 0);
39 of_node_put(np);
40}
41
42void mpc512x_restart(char *cmd)
43{
44 if (reset_module_base) {
45 /* Enable software reset "RSTE" */
46 out_be32(&reset_module_base->rpr, 0x52535445);
47 /* Set software hard reset */
48 out_be32(&reset_module_base->rcr, 0x2);
49 } else {
50 pr_err("Restart module not mapped.\n");
51 }
52 for (;;)
53 ;
54}
55
27void __init mpc512x_init_IRQ(void) 56void __init mpc512x_init_IRQ(void)
28{ 57{
29 struct device_node *np; 58 struct device_node *np;
@@ -53,8 +82,22 @@ static struct of_device_id __initdata of_bus_ids[] = {
53 82
54void __init mpc512x_declare_of_platform_devices(void) 83void __init mpc512x_declare_of_platform_devices(void)
55{ 84{
85 struct device_node *np;
86
56 if (of_platform_bus_probe(NULL, of_bus_ids, NULL)) 87 if (of_platform_bus_probe(NULL, of_bus_ids, NULL))
57 printk(KERN_ERR __FILE__ ": " 88 printk(KERN_ERR __FILE__ ": "
58 "Error while probing of_platform bus\n"); 89 "Error while probing of_platform bus\n");
90
91 np = of_find_compatible_node(NULL, NULL, "fsl,mpc5121-nfc");
92 if (np) {
93 of_platform_device_create(np, NULL, NULL);
94 of_node_put(np);
95 }
59} 96}
60 97
98void __init mpc512x_init(void)
99{
100 mpc512x_declare_of_platform_devices();
101 mpc5121_clk_init();
102 mpc512x_restart_init();
103}
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 8167e9e6827a..2bb8a8b7ffaf 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -868,4 +868,14 @@ config RTC_DRV_MC13783
868 help 868 help
869 This enables support for the Freescale MC13783 PMIC RTC 869 This enables support for the Freescale MC13783 PMIC RTC
870 870
871config RTC_DRV_MPC5121
872 tristate "Freescale MPC5121 built-in RTC"
873 depends on PPC_MPC512x && RTC_CLASS
874 help
875 If you say yes here you will get support for the
876 built-in RTC MPC5121.
877
878 This driver can also be built as a module. If so, the module
879 will be called rtc-mpc5121.
880
871endif # RTC_CLASS 881endif # RTC_CLASS
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index e5160fddc446..b7148afb8f55 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -55,6 +55,7 @@ obj-$(CONFIG_RTC_DRV_MAX6900) += rtc-max6900.o
55obj-$(CONFIG_RTC_DRV_MAX6902) += rtc-max6902.o 55obj-$(CONFIG_RTC_DRV_MAX6902) += rtc-max6902.o
56obj-$(CONFIG_RTC_DRV_MC13783) += rtc-mc13783.o 56obj-$(CONFIG_RTC_DRV_MC13783) += rtc-mc13783.o
57obj-$(CONFIG_RTC_DRV_MSM6242) += rtc-msm6242.o 57obj-$(CONFIG_RTC_DRV_MSM6242) += rtc-msm6242.o
58obj-$(CONFIG_RTC_DRV_MPC5121) += rtc-mpc5121.o
58obj-$(CONFIG_RTC_DRV_MV) += rtc-mv.o 59obj-$(CONFIG_RTC_DRV_MV) += rtc-mv.o
59obj-$(CONFIG_RTC_DRV_NUC900) += rtc-nuc900.o 60obj-$(CONFIG_RTC_DRV_NUC900) += rtc-nuc900.o
60obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o 61obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o
diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c
new file mode 100644
index 000000000000..4313ca03a96d
--- /dev/null
+++ b/drivers/rtc/rtc-mpc5121.c
@@ -0,0 +1,387 @@
1/*
2 * Real-time clock driver for MPC5121
3 *
4 * Copyright 2007, Domen Puncer <domen.puncer@telargo.com>
5 * Copyright 2008, Freescale Semiconductor, Inc. All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/init.h>
13#include <linux/module.h>
14#include <linux/rtc.h>
15#include <linux/of_device.h>
16#include <linux/of_platform.h>
17#include <linux/io.h>
18
19struct mpc5121_rtc_regs {
20 u8 set_time; /* RTC + 0x00 */
21 u8 hour_set; /* RTC + 0x01 */
22 u8 minute_set; /* RTC + 0x02 */
23 u8 second_set; /* RTC + 0x03 */
24
25 u8 set_date; /* RTC + 0x04 */
26 u8 month_set; /* RTC + 0x05 */
27 u8 weekday_set; /* RTC + 0x06 */
28 u8 date_set; /* RTC + 0x07 */
29
30 u8 write_sw; /* RTC + 0x08 */
31 u8 sw_set; /* RTC + 0x09 */
32 u16 year_set; /* RTC + 0x0a */
33
34 u8 alm_enable; /* RTC + 0x0c */
35 u8 alm_hour_set; /* RTC + 0x0d */
36 u8 alm_min_set; /* RTC + 0x0e */
37 u8 int_enable; /* RTC + 0x0f */
38
39 u8 reserved1;
40 u8 hour; /* RTC + 0x11 */
41 u8 minute; /* RTC + 0x12 */
42 u8 second; /* RTC + 0x13 */
43
44 u8 month; /* RTC + 0x14 */
45 u8 wday_mday; /* RTC + 0x15 */
46 u16 year; /* RTC + 0x16 */
47
48 u8 int_alm; /* RTC + 0x18 */
49 u8 int_sw; /* RTC + 0x19 */
50 u8 alm_status; /* RTC + 0x1a */
51 u8 sw_minute; /* RTC + 0x1b */
52
53 u8 bus_error_1; /* RTC + 0x1c */
54 u8 int_day; /* RTC + 0x1d */
55 u8 int_min; /* RTC + 0x1e */
56 u8 int_sec; /* RTC + 0x1f */
57
58 /*
59 * target_time:
60 * intended to be used for hibernation but hibernation
61 * does not work on silicon rev 1.5 so use it for non-volatile
62 * storage of offset between the actual_time register and linux
63 * time
64 */
65 u32 target_time; /* RTC + 0x20 */
66 /*
67 * actual_time:
68 * readonly time since VBAT_RTC was last connected
69 */
70 u32 actual_time; /* RTC + 0x24 */
71 u32 keep_alive; /* RTC + 0x28 */
72};
73
74struct mpc5121_rtc_data {
75 unsigned irq;
76 unsigned irq_periodic;
77 struct mpc5121_rtc_regs __iomem *regs;
78 struct rtc_device *rtc;
79 struct rtc_wkalrm wkalarm;
80};
81
82/*
83 * Update second/minute/hour registers.
84 *
85 * This is just so alarm will work.
86 */
87static void mpc5121_rtc_update_smh(struct mpc5121_rtc_regs __iomem *regs,
88 struct rtc_time *tm)
89{
90 out_8(&regs->second_set, tm->tm_sec);
91 out_8(&regs->minute_set, tm->tm_min);
92 out_8(&regs->hour_set, tm->tm_hour);
93
94 /* set time sequence */
95 out_8(&regs->set_time, 0x1);
96 out_8(&regs->set_time, 0x3);
97 out_8(&regs->set_time, 0x1);
98 out_8(&regs->set_time, 0x0);
99}
100
101static int mpc5121_rtc_read_time(struct device *dev, struct rtc_time *tm)
102{
103 struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
104 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
105 unsigned long now;
106
107 /*
108 * linux time is actual_time plus the offset saved in target_time
109 */
110 now = in_be32(&regs->actual_time) + in_be32(&regs->target_time);
111
112 rtc_time_to_tm(now, tm);
113
114 /*
115 * update second minute hour registers
116 * so alarms will work
117 */
118 mpc5121_rtc_update_smh(regs, tm);
119
120 return rtc_valid_tm(tm);
121}
122
123static int mpc5121_rtc_set_time(struct device *dev, struct rtc_time *tm)
124{
125 struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
126 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
127 int ret;
128 unsigned long now;
129
130 /*
131 * The actual_time register is read only so we write the offset
132 * between it and linux time to the target_time register.
133 */
134 ret = rtc_tm_to_time(tm, &now);
135 if (ret == 0)
136 out_be32(&regs->target_time, now - in_be32(&regs->actual_time));
137
138 /*
139 * update second minute hour registers
140 * so alarms will work
141 */
142 mpc5121_rtc_update_smh(regs, tm);
143
144 return 0;
145}
146
147static int mpc5121_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)
148{
149 struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
150 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
151
152 *alarm = rtc->wkalarm;
153
154 alarm->pending = in_8(&regs->alm_status);
155
156 return 0;
157}
158
159static int mpc5121_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
160{
161 struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
162 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
163
164 /*
165 * the alarm has no seconds so deal with it
166 */
167 if (alarm->time.tm_sec) {
168 alarm->time.tm_sec = 0;
169 alarm->time.tm_min++;
170 if (alarm->time.tm_min >= 60) {
171 alarm->time.tm_min = 0;
172 alarm->time.tm_hour++;
173 if (alarm->time.tm_hour >= 24)
174 alarm->time.tm_hour = 0;
175 }
176 }
177
178 alarm->time.tm_mday = -1;
179 alarm->time.tm_mon = -1;
180 alarm->time.tm_year = -1;
181
182 out_8(&regs->alm_min_set, alarm->time.tm_min);
183 out_8(&regs->alm_hour_set, alarm->time.tm_hour);
184
185 out_8(&regs->alm_enable, alarm->enabled);
186
187 rtc->wkalarm = *alarm;
188 return 0;
189}
190
191static irqreturn_t mpc5121_rtc_handler(int irq, void *dev)
192{
193 struct mpc5121_rtc_data *rtc = dev_get_drvdata((struct device *)dev);
194 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
195
196 if (in_8(&regs->int_alm)) {
197 /* acknowledge and clear status */
198 out_8(&regs->int_alm, 1);
199 out_8(&regs->alm_status, 1);
200
201 rtc_update_irq(rtc->rtc, 1, RTC_IRQF | RTC_AF);
202 return IRQ_HANDLED;
203 }
204
205 return IRQ_NONE;
206}
207
208static irqreturn_t mpc5121_rtc_handler_upd(int irq, void *dev)
209{
210 struct mpc5121_rtc_data *rtc = dev_get_drvdata((struct device *)dev);
211 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
212
213 if (in_8(&regs->int_sec) && (in_8(&regs->int_enable) & 0x1)) {
214 /* acknowledge */
215 out_8(&regs->int_sec, 1);
216
217 rtc_update_irq(rtc->rtc, 1, RTC_IRQF | RTC_UF);
218 return IRQ_HANDLED;
219 }
220
221 return IRQ_NONE;
222}
223
224static int mpc5121_rtc_alarm_irq_enable(struct device *dev,
225 unsigned int enabled)
226{
227 struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
228 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
229 int val;
230
231 if (enabled)
232 val = 1;
233 else
234 val = 0;
235
236 out_8(&regs->alm_enable, val);
237 rtc->wkalarm.enabled = val;
238
239 return 0;
240}
241
242static int mpc5121_rtc_update_irq_enable(struct device *dev,
243 unsigned int enabled)
244{
245 struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
246 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
247 int val;
248
249 val = in_8(&regs->int_enable);
250
251 if (enabled)
252 val = (val & ~0x8) | 0x1;
253 else
254 val &= ~0x1;
255
256 out_8(&regs->int_enable, val);
257
258 return 0;
259}
260
261static const struct rtc_class_ops mpc5121_rtc_ops = {
262 .read_time = mpc5121_rtc_read_time,
263 .set_time = mpc5121_rtc_set_time,
264 .read_alarm = mpc5121_rtc_read_alarm,
265 .set_alarm = mpc5121_rtc_set_alarm,
266 .alarm_irq_enable = mpc5121_rtc_alarm_irq_enable,
267 .update_irq_enable = mpc5121_rtc_update_irq_enable,
268};
269
270static int __devinit mpc5121_rtc_probe(struct of_device *op,
271 const struct of_device_id *match)
272{
273 struct mpc5121_rtc_data *rtc;
274 int err = 0;
275 u32 ka;
276
277 rtc = kzalloc(sizeof(*rtc), GFP_KERNEL);
278 if (!rtc)
279 return -ENOMEM;
280
281 rtc->regs = of_iomap(op->node, 0);
282 if (!rtc->regs) {
283 dev_err(&op->dev, "%s: couldn't map io space\n", __func__);
284 err = -ENOSYS;
285 goto out_free;
286 }
287
288 device_init_wakeup(&op->dev, 1);
289
290 dev_set_drvdata(&op->dev, rtc);
291
292 rtc->irq = irq_of_parse_and_map(op->node, 1);
293 err = request_irq(rtc->irq, mpc5121_rtc_handler, IRQF_DISABLED,
294 "mpc5121-rtc", &op->dev);
295 if (err) {
296 dev_err(&op->dev, "%s: could not request irq: %i\n",
297 __func__, rtc->irq);
298 goto out_dispose;
299 }
300
301 rtc->irq_periodic = irq_of_parse_and_map(op->node, 0);
302 err = request_irq(rtc->irq_periodic, mpc5121_rtc_handler_upd,
303 IRQF_DISABLED, "mpc5121-rtc_upd", &op->dev);
304 if (err) {
305 dev_err(&op->dev, "%s: could not request irq: %i\n",
306 __func__, rtc->irq_periodic);
307 goto out_dispose2;
308 }
309
310 ka = in_be32(&rtc->regs->keep_alive);
311 if (ka & 0x02) {
312 dev_warn(&op->dev,
313 "mpc5121-rtc: Battery or oscillator failure!\n");
314 out_be32(&rtc->regs->keep_alive, ka);
315 }
316
317 rtc->rtc = rtc_device_register("mpc5121-rtc", &op->dev,
318 &mpc5121_rtc_ops, THIS_MODULE);
319 if (IS_ERR(rtc->rtc)) {
320 err = PTR_ERR(rtc->rtc);
321 goto out_free_irq;
322 }
323
324 return 0;
325
326out_free_irq:
327 free_irq(rtc->irq_periodic, &op->dev);
328out_dispose2:
329 irq_dispose_mapping(rtc->irq_periodic);
330 free_irq(rtc->irq, &op->dev);
331out_dispose:
332 irq_dispose_mapping(rtc->irq);
333 iounmap(rtc->regs);
334out_free:
335 kfree(rtc);
336
337 return err;
338}
339
340static int __devexit mpc5121_rtc_remove(struct of_device *op)
341{
342 struct mpc5121_rtc_data *rtc = dev_get_drvdata(&op->dev);
343 struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
344
345 /* disable interrupt, so there are no nasty surprises */
346 out_8(&regs->alm_enable, 0);
347 out_8(&regs->int_enable, in_8(&regs->int_enable) & ~0x1);
348
349 rtc_device_unregister(rtc->rtc);
350 iounmap(rtc->regs);
351 free_irq(rtc->irq, &op->dev);
352 free_irq(rtc->irq_periodic, &op->dev);
353 irq_dispose_mapping(rtc->irq);
354 irq_dispose_mapping(rtc->irq_periodic);
355 dev_set_drvdata(&op->dev, NULL);
356 kfree(rtc);
357
358 return 0;
359}
360
361static struct of_device_id mpc5121_rtc_match[] __devinitdata = {
362 { .compatible = "fsl,mpc5121-rtc", },
363 {},
364};
365
366static struct of_platform_driver mpc5121_rtc_driver = {
367 .owner = THIS_MODULE,
368 .name = "mpc5121-rtc",
369 .match_table = mpc5121_rtc_match,
370 .probe = mpc5121_rtc_probe,
371 .remove = __devexit_p(mpc5121_rtc_remove),
372};
373
374static int __init mpc5121_rtc_init(void)
375{
376 return of_register_platform_driver(&mpc5121_rtc_driver);
377}
378module_init(mpc5121_rtc_init);
379
380static void __exit mpc5121_rtc_exit(void)
381{
382 of_unregister_platform_driver(&mpc5121_rtc_driver);
383}
384module_exit(mpc5121_rtc_exit);
385
386MODULE_LICENSE("GPL");
387MODULE_AUTHOR("John Rigby <jcrigby@gmail.com>");
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 7ce9e9f567a3..3119fddaedb5 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -74,6 +74,7 @@
74#include <linux/io.h> 74#include <linux/io.h>
75#include <linux/of.h> 75#include <linux/of.h>
76#include <linux/of_platform.h> 76#include <linux/of_platform.h>
77#include <linux/clk.h>
77 78
78#include <asm/mpc52xx.h> 79#include <asm/mpc52xx.h>
79#include <asm/mpc52xx_psc.h> 80#include <asm/mpc52xx_psc.h>
@@ -113,6 +114,7 @@ static void mpc52xx_uart_of_enumerate(void);
113 114
114/* Forward declaration of the interruption handling routine */ 115/* Forward declaration of the interruption handling routine */
115static irqreturn_t mpc52xx_uart_int(int irq, void *dev_id); 116static irqreturn_t mpc52xx_uart_int(int irq, void *dev_id);
117static irqreturn_t mpc5xxx_uart_process_int(struct uart_port *port);
116 118
117 119
118/* Simple macro to test if a port is console or not. This one is taken 120/* Simple macro to test if a port is console or not. This one is taken
@@ -145,6 +147,11 @@ struct psc_ops {
145 void (*cw_disable_ints)(struct uart_port *port); 147 void (*cw_disable_ints)(struct uart_port *port);
146 void (*cw_restore_ints)(struct uart_port *port); 148 void (*cw_restore_ints)(struct uart_port *port);
147 unsigned long (*getuartclk)(void *p); 149 unsigned long (*getuartclk)(void *p);
150 int (*clock)(struct uart_port *port, int enable);
151 int (*fifoc_init)(void);
152 void (*fifoc_uninit)(void);
153 void (*get_irq)(struct uart_port *, struct device_node *);
154 irqreturn_t (*handle_irq)(struct uart_port *port);
148}; 155};
149 156
150#ifdef CONFIG_PPC_MPC52xx 157#ifdef CONFIG_PPC_MPC52xx
@@ -256,6 +263,18 @@ static unsigned long mpc52xx_getuartclk(void *p)
256 return mpc5xxx_get_bus_frequency(p) / 2; 263 return mpc5xxx_get_bus_frequency(p) / 2;
257} 264}
258 265
266static void mpc52xx_psc_get_irq(struct uart_port *port, struct device_node *np)
267{
268 port->irqflags = IRQF_DISABLED;
269 port->irq = irq_of_parse_and_map(np, 0);
270}
271
272/* 52xx specific interrupt handler. The caller holds the port lock */
273static irqreturn_t mpc52xx_psc_handle_irq(struct uart_port *port)
274{
275 return mpc5xxx_uart_process_int(port);
276}
277
259static struct psc_ops mpc52xx_psc_ops = { 278static struct psc_ops mpc52xx_psc_ops = {
260 .fifo_init = mpc52xx_psc_fifo_init, 279 .fifo_init = mpc52xx_psc_fifo_init,
261 .raw_rx_rdy = mpc52xx_psc_raw_rx_rdy, 280 .raw_rx_rdy = mpc52xx_psc_raw_rx_rdy,
@@ -273,14 +292,32 @@ static struct psc_ops mpc52xx_psc_ops = {
273 .cw_disable_ints = mpc52xx_psc_cw_disable_ints, 292 .cw_disable_ints = mpc52xx_psc_cw_disable_ints,
274 .cw_restore_ints = mpc52xx_psc_cw_restore_ints, 293 .cw_restore_ints = mpc52xx_psc_cw_restore_ints,
275 .getuartclk = mpc52xx_getuartclk, 294 .getuartclk = mpc52xx_getuartclk,
295 .get_irq = mpc52xx_psc_get_irq,
296 .handle_irq = mpc52xx_psc_handle_irq,
276}; 297};
277 298
278#endif /* CONFIG_MPC52xx */ 299#endif /* CONFIG_MPC52xx */
279 300
280#ifdef CONFIG_PPC_MPC512x 301#ifdef CONFIG_PPC_MPC512x
281#define FIFO_512x(port) ((struct mpc512x_psc_fifo __iomem *)(PSC(port)+1)) 302#define FIFO_512x(port) ((struct mpc512x_psc_fifo __iomem *)(PSC(port)+1))
303
304/* PSC FIFO Controller for mpc512x */
305struct psc_fifoc {
306 u32 fifoc_cmd;
307 u32 fifoc_int;
308 u32 fifoc_dma;
309 u32 fifoc_axe;
310 u32 fifoc_debug;
311};
312
313static struct psc_fifoc __iomem *psc_fifoc;
314static unsigned int psc_fifoc_irq;
315
282static void mpc512x_psc_fifo_init(struct uart_port *port) 316static void mpc512x_psc_fifo_init(struct uart_port *port)
283{ 317{
318 /* /32 prescaler */
319 out_be16(&PSC(port)->mpc52xx_psc_clock_select, 0xdd00);
320
284 out_be32(&FIFO_512x(port)->txcmd, MPC512x_PSC_FIFO_RESET_SLICE); 321 out_be32(&FIFO_512x(port)->txcmd, MPC512x_PSC_FIFO_RESET_SLICE);
285 out_be32(&FIFO_512x(port)->txcmd, MPC512x_PSC_FIFO_ENABLE_SLICE); 322 out_be32(&FIFO_512x(port)->txcmd, MPC512x_PSC_FIFO_ENABLE_SLICE);
286 out_be32(&FIFO_512x(port)->txalarm, 1); 323 out_be32(&FIFO_512x(port)->txalarm, 1);
@@ -393,6 +430,160 @@ static unsigned long mpc512x_getuartclk(void *p)
393 return mpc5xxx_get_bus_frequency(p); 430 return mpc5xxx_get_bus_frequency(p);
394} 431}
395 432
433#define DEFAULT_FIFO_SIZE 16
434
435static unsigned int __init get_fifo_size(struct device_node *np,
436 char *fifo_name)
437{
438 const unsigned int *fp;
439
440 fp = of_get_property(np, fifo_name, NULL);
441 if (fp)
442 return *fp;
443
444 pr_warning("no %s property in %s node, defaulting to %d\n",
445 fifo_name, np->full_name, DEFAULT_FIFO_SIZE);
446
447 return DEFAULT_FIFO_SIZE;
448}
449
450#define FIFOC(_base) ((struct mpc512x_psc_fifo __iomem *) \
451 ((u32)(_base) + sizeof(struct mpc52xx_psc)))
452
453/* Init PSC FIFO Controller */
454static int __init mpc512x_psc_fifoc_init(void)
455{
456 struct device_node *np;
457 void __iomem *psc;
458 unsigned int tx_fifo_size;
459 unsigned int rx_fifo_size;
460 int fifobase = 0; /* current fifo address in 32 bit words */
461
462 np = of_find_compatible_node(NULL, NULL,
463 "fsl,mpc5121-psc-fifo");
464 if (!np) {
465 pr_err("%s: Can't find FIFOC node\n", __func__);
466 return -ENODEV;
467 }
468
469 psc_fifoc = of_iomap(np, 0);
470 if (!psc_fifoc) {
471 pr_err("%s: Can't map FIFOC\n", __func__);
472 return -ENODEV;
473 }
474
475 psc_fifoc_irq = irq_of_parse_and_map(np, 0);
476 of_node_put(np);
477 if (psc_fifoc_irq == NO_IRQ) {
478 pr_err("%s: Can't get FIFOC irq\n", __func__);
479 iounmap(psc_fifoc);
480 return -ENODEV;
481 }
482
483 for_each_compatible_node(np, NULL, "fsl,mpc5121-psc-uart") {
484 tx_fifo_size = get_fifo_size(np, "fsl,tx-fifo-size");
485 rx_fifo_size = get_fifo_size(np, "fsl,rx-fifo-size");
486
487 /* size in register is in 4 byte units */
488 tx_fifo_size /= 4;
489 rx_fifo_size /= 4;
490 if (!tx_fifo_size)
491 tx_fifo_size = 1;
492 if (!rx_fifo_size)
493 rx_fifo_size = 1;
494
495 psc = of_iomap(np, 0);
496 if (!psc) {
497 pr_err("%s: Can't map %s device\n",
498 __func__, np->full_name);
499 continue;
500 }
501
502 /* FIFO space is 4KiB, check if requested size is available */
503 if ((fifobase + tx_fifo_size + rx_fifo_size) > 0x1000) {
504 pr_err("%s: no fifo space available for %s\n",
505 __func__, np->full_name);
506 iounmap(psc);
507 /*
508 * chances are that another device requests less
509 * fifo space, so we continue.
510 */
511 continue;
512 }
513 /* set tx and rx fifo size registers */
514 out_be32(&FIFOC(psc)->txsz, (fifobase << 16) | tx_fifo_size);
515 fifobase += tx_fifo_size;
516 out_be32(&FIFOC(psc)->rxsz, (fifobase << 16) | rx_fifo_size);
517 fifobase += rx_fifo_size;
518
519 /* reset and enable the slices */
520 out_be32(&FIFOC(psc)->txcmd, 0x80);
521 out_be32(&FIFOC(psc)->txcmd, 0x01);
522 out_be32(&FIFOC(psc)->rxcmd, 0x80);
523 out_be32(&FIFOC(psc)->rxcmd, 0x01);
524
525 iounmap(psc);
526 }
527
528 return 0;
529}
530
531static void __exit mpc512x_psc_fifoc_uninit(void)
532{
533 iounmap(psc_fifoc);
534}
535
536/* 512x specific interrupt handler. The caller holds the port lock */
537static irqreturn_t mpc512x_psc_handle_irq(struct uart_port *port)
538{
539 unsigned long fifoc_int;
540 int psc_num;
541
542 /* Read pending PSC FIFOC interrupts */
543 fifoc_int = in_be32(&psc_fifoc->fifoc_int);
544
545 /* Check if it is an interrupt for this port */
546 psc_num = (port->mapbase & 0xf00) >> 8;
547 if (test_bit(psc_num, &fifoc_int) ||
548 test_bit(psc_num + 16, &fifoc_int))
549 return mpc5xxx_uart_process_int(port);
550
551 return IRQ_NONE;
552}
553
554static int mpc512x_psc_clock(struct uart_port *port, int enable)
555{
556 struct clk *psc_clk;
557 int psc_num;
558 char clk_name[10];
559
560 if (uart_console(port))
561 return 0;
562
563 psc_num = (port->mapbase & 0xf00) >> 8;
564 snprintf(clk_name, sizeof(clk_name), "psc%d_clk", psc_num);
565 psc_clk = clk_get(port->dev, clk_name);
566 if (IS_ERR(psc_clk)) {
567 dev_err(port->dev, "Failed to get PSC clock entry!\n");
568 return -ENODEV;
569 }
570
571 dev_dbg(port->dev, "%s %sable\n", clk_name, enable ? "en" : "dis");
572
573 if (enable)
574 clk_enable(psc_clk);
575 else
576 clk_disable(psc_clk);
577
578 return 0;
579}
580
581static void mpc512x_psc_get_irq(struct uart_port *port, struct device_node *np)
582{
583 port->irqflags = IRQF_SHARED;
584 port->irq = psc_fifoc_irq;
585}
586
396static struct psc_ops mpc512x_psc_ops = { 587static struct psc_ops mpc512x_psc_ops = {
397 .fifo_init = mpc512x_psc_fifo_init, 588 .fifo_init = mpc512x_psc_fifo_init,
398 .raw_rx_rdy = mpc512x_psc_raw_rx_rdy, 589 .raw_rx_rdy = mpc512x_psc_raw_rx_rdy,
@@ -410,6 +601,11 @@ static struct psc_ops mpc512x_psc_ops = {
410 .cw_disable_ints = mpc512x_psc_cw_disable_ints, 601 .cw_disable_ints = mpc512x_psc_cw_disable_ints,
411 .cw_restore_ints = mpc512x_psc_cw_restore_ints, 602 .cw_restore_ints = mpc512x_psc_cw_restore_ints,
412 .getuartclk = mpc512x_getuartclk, 603 .getuartclk = mpc512x_getuartclk,
604 .clock = mpc512x_psc_clock,
605 .fifoc_init = mpc512x_psc_fifoc_init,
606 .fifoc_uninit = mpc512x_psc_fifoc_uninit,
607 .get_irq = mpc512x_psc_get_irq,
608 .handle_irq = mpc512x_psc_handle_irq,
413}; 609};
414#endif 610#endif
415 611
@@ -519,10 +715,15 @@ mpc52xx_uart_startup(struct uart_port *port)
519 struct mpc52xx_psc __iomem *psc = PSC(port); 715 struct mpc52xx_psc __iomem *psc = PSC(port);
520 int ret; 716 int ret;
521 717
718 if (psc_ops->clock) {
719 ret = psc_ops->clock(port, 1);
720 if (ret)
721 return ret;
722 }
723
522 /* Request IRQ */ 724 /* Request IRQ */
523 ret = request_irq(port->irq, mpc52xx_uart_int, 725 ret = request_irq(port->irq, mpc52xx_uart_int,
524 IRQF_DISABLED | IRQF_SAMPLE_RANDOM, 726 port->irqflags, "mpc52xx_psc_uart", port);
525 "mpc52xx_psc_uart", port);
526 if (ret) 727 if (ret)
527 return ret; 728 return ret;
528 729
@@ -553,6 +754,9 @@ mpc52xx_uart_shutdown(struct uart_port *port)
553 port->read_status_mask = 0; 754 port->read_status_mask = 0;
554 out_be16(&psc->mpc52xx_psc_imr, port->read_status_mask); 755 out_be16(&psc->mpc52xx_psc_imr, port->read_status_mask);
555 756
757 if (psc_ops->clock)
758 psc_ops->clock(port, 0);
759
556 /* Release interrupt */ 760 /* Release interrupt */
557 free_irq(port->irq, port); 761 free_irq(port->irq, port);
558} 762}
@@ -851,15 +1055,12 @@ mpc52xx_uart_int_tx_chars(struct uart_port *port)
851} 1055}
852 1056
853static irqreturn_t 1057static irqreturn_t
854mpc52xx_uart_int(int irq, void *dev_id) 1058mpc5xxx_uart_process_int(struct uart_port *port)
855{ 1059{
856 struct uart_port *port = dev_id;
857 unsigned long pass = ISR_PASS_LIMIT; 1060 unsigned long pass = ISR_PASS_LIMIT;
858 unsigned int keepgoing; 1061 unsigned int keepgoing;
859 u8 status; 1062 u8 status;
860 1063
861 spin_lock(&port->lock);
862
863 /* While we have stuff to do, we continue */ 1064 /* While we have stuff to do, we continue */
864 do { 1065 do {
865 /* If we don't find anything to do, we stop */ 1066 /* If we don't find anything to do, we stop */
@@ -886,11 +1087,23 @@ mpc52xx_uart_int(int irq, void *dev_id)
886 1087
887 } while (keepgoing); 1088 } while (keepgoing);
888 1089
889 spin_unlock(&port->lock);
890
891 return IRQ_HANDLED; 1090 return IRQ_HANDLED;
892} 1091}
893 1092
1093static irqreturn_t
1094mpc52xx_uart_int(int irq, void *dev_id)
1095{
1096 struct uart_port *port = dev_id;
1097 irqreturn_t ret;
1098
1099 spin_lock(&port->lock);
1100
1101 ret = psc_ops->handle_irq(port);
1102
1103 spin_unlock(&port->lock);
1104
1105 return ret;
1106}
894 1107
895/* ======================================================================== */ 1108/* ======================================================================== */
896/* Console ( if applicable ) */ 1109/* Console ( if applicable ) */
@@ -1152,7 +1365,7 @@ mpc52xx_uart_of_probe(struct of_device *op, const struct of_device_id *match)
1152 return -EINVAL; 1365 return -EINVAL;
1153 } 1366 }
1154 1367
1155 port->irq = irq_of_parse_and_map(op->node, 0); 1368 psc_ops->get_irq(port, op->node);
1156 if (port->irq == NO_IRQ) { 1369 if (port->irq == NO_IRQ) {
1157 dev_dbg(&op->dev, "Could not get irq\n"); 1370 dev_dbg(&op->dev, "Could not get irq\n");
1158 return -EINVAL; 1371 return -EINVAL;
@@ -1163,10 +1376,8 @@ mpc52xx_uart_of_probe(struct of_device *op, const struct of_device_id *match)
1163 1376
1164 /* Add the port to the uart sub-system */ 1377 /* Add the port to the uart sub-system */
1165 ret = uart_add_one_port(&mpc52xx_uart_driver, port); 1378 ret = uart_add_one_port(&mpc52xx_uart_driver, port);
1166 if (ret) { 1379 if (ret)
1167 irq_dispose_mapping(port->irq);
1168 return ret; 1380 return ret;
1169 }
1170 1381
1171 dev_set_drvdata(&op->dev, (void *)port); 1382 dev_set_drvdata(&op->dev, (void *)port);
1172 return 0; 1383 return 0;
@@ -1178,10 +1389,8 @@ mpc52xx_uart_of_remove(struct of_device *op)
1178 struct uart_port *port = dev_get_drvdata(&op->dev); 1389 struct uart_port *port = dev_get_drvdata(&op->dev);
1179 dev_set_drvdata(&op->dev, NULL); 1390 dev_set_drvdata(&op->dev, NULL);
1180 1391
1181 if (port) { 1392 if (port)
1182 uart_remove_one_port(&mpc52xx_uart_driver, port); 1393 uart_remove_one_port(&mpc52xx_uart_driver, port);
1183 irq_dispose_mapping(port->irq);
1184 }
1185 1394
1186 return 0; 1395 return 0;
1187} 1396}
@@ -1288,6 +1497,15 @@ mpc52xx_uart_init(void)
1288 1497
1289 mpc52xx_uart_of_enumerate(); 1498 mpc52xx_uart_of_enumerate();
1290 1499
1500 /*
1501 * Map the PSC FIFO Controller and init if on MPC512x.
1502 */
1503 if (psc_ops->fifoc_init) {
1504 ret = psc_ops->fifoc_init();
1505 if (ret)
1506 return ret;
1507 }
1508
1291 ret = of_register_platform_driver(&mpc52xx_uart_of_driver); 1509 ret = of_register_platform_driver(&mpc52xx_uart_of_driver);
1292 if (ret) { 1510 if (ret) {
1293 printk(KERN_ERR "%s: of_register_platform_driver failed (%i)\n", 1511 printk(KERN_ERR "%s: of_register_platform_driver failed (%i)\n",
@@ -1302,6 +1520,9 @@ mpc52xx_uart_init(void)
1302static void __exit 1520static void __exit
1303mpc52xx_uart_exit(void) 1521mpc52xx_uart_exit(void)
1304{ 1522{
1523 if (psc_ops->fifoc_uninit)
1524 psc_ops->fifoc_uninit();
1525
1305 of_unregister_platform_driver(&mpc52xx_uart_of_driver); 1526 of_unregister_platform_driver(&mpc52xx_uart_of_driver);
1306 uart_unregister_driver(&mpc52xx_uart_driver); 1527 uart_unregister_driver(&mpc52xx_uart_driver);
1307} 1528}
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index 72d68b3dc478..4637bcbe03a4 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c
@@ -1633,6 +1633,11 @@ static int __init fsl_diu_setup(char *options)
1633#endif 1633#endif
1634 1634
1635static struct of_device_id fsl_diu_match[] = { 1635static struct of_device_id fsl_diu_match[] = {
1636#ifdef CONFIG_PPC_MPC512x
1637 {
1638 .compatible = "fsl,mpc5121-diu",
1639 },
1640#endif
1636 { 1641 {
1637 .compatible = "fsl,diu", 1642 .compatible = "fsl,diu",
1638 }, 1643 },