summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2012-11-28 12:37:29 -0200
committerOtavio Salvador <otavio@ossystems.com.br>2012-11-30 16:36:35 -0200
commita3227c59eb8b4ddb39b9587ef3f82b954f25de96 (patch)
treed696c29c4ddcb47ef4a8b026d6b68454a9e4d5fb
parentfaeeea9f6e8a9cdaaae4777feebfeda4e75c8f8b (diff)
downloadmeta-fsl-arm-a3227c59eb8b4ddb39b9587ef3f82b954f25de96.tar.gz
linux-imx (3.0.35): Add Boundary Devices changes for imx6qsabrelite
We import the changes done in Bondary Devices tree and the defconfig file provided by them. Change-Id: I63e2d7560735586581fd13d5df60b3d5e90d73a3 Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-rw-r--r--recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig272
-rw-r--r--recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch6903
-rw-r--r--recipes-kernel/linux/linux-imx_3.0.35.bb4
3 files changed, 7178 insertions, 1 deletions
diff --git a/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig
new file mode 100644
index 0000000..4118cba
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig
@@ -0,0 +1,272 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_IKCONFIG=y
4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_BLK_DEV_INITRD=y
7CONFIG_EMBEDDED=y
8CONFIG_PERF_EVENTS=y
9CONFIG_MODULES=y
10CONFIG_MODULE_UNLOAD=y
11CONFIG_MODULE_FORCE_UNLOAD=y
12CONFIG_MODVERSIONS=y
13# CONFIG_BLK_DEV_BSG is not set
14CONFIG_ARCH_MXC=y
15CONFIG_GPIO_PCA953X=y
16CONFIG_ARCH_MX6=y
17CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_MACH_MX6Q_SABRELITE=y
19CONFIG_IMX_PCIE=y
20CONFIG_USB_EHCI_ARC_H1=y
21CONFIG_MXC_PWM=y
22CONFIG_MXC_REBOOT_MFGMODE=y
23CONFIG_CLK_DEBUG=y
24CONFIG_DMA_ZONE_SIZE=184
25# CONFIG_SWP_EMULATE is not set
26CONFIG_ARM_ERRATA_743622=y
27CONFIG_ARM_ERRATA_751472=y
28CONFIG_ARM_ERRATA_754322=y
29CONFIG_ARM_ERRATA_764369=y
30CONFIG_NO_HZ=y
31CONFIG_HIGH_RES_TIMERS=y
32CONFIG_SMP=y
33CONFIG_VMSPLIT_2G=y
34CONFIG_PREEMPT=y
35CONFIG_AEABI=y
36# CONFIG_OABI_COMPAT is not set
37CONFIG_HIGHMEM=y
38CONFIG_COMPACTION=y
39CONFIG_KSM=y
40CONFIG_ZBOOT_ROM_TEXT=0x0
41CONFIG_ZBOOT_ROM_BSS=0x0
42CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 ip=off"
43CONFIG_CPU_FREQ=y
44CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
45CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
46CONFIG_CPU_FREQ_GOV_POWERSAVE=y
47CONFIG_CPU_FREQ_GOV_USERSPACE=y
48CONFIG_CPU_FREQ_GOV_ONDEMAND=y
49CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
50CONFIG_CPU_FREQ_IMX=y
51CONFIG_VFP=y
52CONFIG_NEON=y
53# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
54CONFIG_SUSPEND_DEVICE_TIME_DEBUG=y
55CONFIG_PM_RUNTIME=y
56CONFIG_PM_DEBUG=y
57CONFIG_APM_EMULATION=y
58CONFIG_NET=y
59CONFIG_PACKET=y
60CONFIG_UNIX=y
61CONFIG_INET=y
62CONFIG_IP_MULTICAST=y
63CONFIG_IP_PNP=y
64CONFIG_IP_PNP_DHCP=y
65CONFIG_IP_PNP_BOOTP=y
66# CONFIG_INET_LRO is not set
67# CONFIG_IPV6 is not set
68CONFIG_LLC2=y
69CONFIG_CAN=y
70CONFIG_CAN_RAW=y
71CONFIG_CAN_BCM=y
72CONFIG_CAN_VCAN=y
73CONFIG_CAN_FLEXCAN=y
74CONFIG_BT=y
75CONFIG_BT_L2CAP=y
76CONFIG_BT_SCO=y
77CONFIG_BT_RFCOMM=y
78CONFIG_BT_RFCOMM_TTY=y
79CONFIG_BT_BNEP=y
80CONFIG_BT_BNEP_MC_FILTER=y
81CONFIG_BT_BNEP_PROTO_FILTER=y
82CONFIG_BT_HIDP=y
83CONFIG_BT_HCIUART=y
84CONFIG_BT_HCIUART_LL=y
85CONFIG_CFG80211=y
86CONFIG_MAC80211=y
87CONFIG_RFKILL=y
88CONFIG_RFKILL_INPUT=y
89CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
90CONFIG_CONNECTOR=y
91CONFIG_MTD=y
92CONFIG_MTD_CMDLINE_PARTS=y
93CONFIG_MTD_CHAR=y
94CONFIG_MTD_BLOCK=y
95CONFIG_MTD_M25P80=y
96CONFIG_MTD_NAND=y
97CONFIG_MTD_UBI=y
98CONFIG_BLK_DEV_LOOP=y
99CONFIG_MISC_DEVICES=y
100CONFIG_MXS_PERFMON=m
101CONFIG_BLK_DEV_SD=y
102CONFIG_SCSI_MULTI_LUN=y
103CONFIG_ATA=y
104# CONFIG_SATA_PMP is not set
105CONFIG_SATA_AHCI_PLATFORM=y
106CONFIG_NETDEVICES=y
107CONFIG_TUN=y
108CONFIG_MII=y
109CONFIG_MICREL_PHY=y
110CONFIG_NET_ETHERNET=y
111# CONFIG_NETDEV_1000 is not set
112# CONFIG_NETDEV_10000 is not set
113CONFIG_HOSTAP=y
114CONFIG_WL12XX_MENU=y
115CONFIG_WL12XX=y
116CONFIG_WL12XX_SDIO=m
117CONFIG_INPUT_POLLDEV=y
118CONFIG_INPUT_EVDEV=y
119CONFIG_KEYBOARD_GPIO=y
120# CONFIG_INPUT_MOUSE is not set
121CONFIG_INPUT_TOUCHSCREEN=y
122CONFIG_TOUCHSCREEN_EGALAX=y
123CONFIG_TOUCHSCREEN_FT5X06=y
124CONFIG_TOUCHSCREEN_FT5X06_SINGLE_TOUCH=y
125CONFIG_TOUCHSCREEN_TSC2004=y
126CONFIG_INPUT_MISC=y
127CONFIG_INPUT_UINPUT=y
128CONFIG_INPUT_ISL29023=y
129CONFIG_VT_HW_CONSOLE_BINDING=y
130CONFIG_SERIAL_IMX=y
131CONFIG_SERIAL_IMX_CONSOLE=y
132CONFIG_FSL_OTP=y
133CONFIG_HW_RANDOM=y
134CONFIG_MXS_VIIM=y
135CONFIG_I2C_CHARDEV=y
136CONFIG_I2C_IMX=y
137CONFIG_SPI=y
138CONFIG_SPI_IMX=y
139CONFIG_GPIO_SYSFS=y
140CONFIG_SENSORS_MAX17135=y
141CONFIG_SENSORS_MAG3110=y
142# CONFIG_MXC_MMA8450 is not set
143CONFIG_WATCHDOG=y
144CONFIG_WATCHDOG_NOWAYOUT=y
145CONFIG_IMX2_WDT=y
146CONFIG_MFD_WM8994=y
147CONFIG_MFD_PFUZE=y
148CONFIG_MFD_MAX17135=y
149CONFIG_REGULATOR=y
150CONFIG_REGULATOR_FIXED_VOLTAGE=y
151CONFIG_REGULATOR_PFUZE100=y
152CONFIG_REGULATOR_MAX17135=y
153CONFIG_MEDIA_SUPPORT=y
154CONFIG_VIDEO_DEV=y
155# CONFIG_RC_CORE is not set
156# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
157CONFIG_VIDEO_MXC_CAMERA=m
158CONFIG_MXC_CAMERA_OV3640=m
159CONFIG_MXC_CAMERA_OV5640=m
160CONFIG_MXC_CAMERA_OV8820_MIPI=m
161CONFIG_MXC_CAMERA_OV5642=m
162CONFIG_MXC_CAMERA_OV5640_MIPI=m
163CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
164CONFIG_USB_VIDEO_CLASS=m
165# CONFIG_RADIO_ADAPTERS is not set
166CONFIG_DRM=m
167CONFIG_DRM_VIVANTE=m
168CONFIG_FB=y
169CONFIG_BACKLIGHT_LCD_SUPPORT=y
170# CONFIG_LCD_CLASS_DEVICE is not set
171CONFIG_BACKLIGHT_CLASS_DEVICE=y
172# CONFIG_BACKLIGHT_GENERIC is not set
173CONFIG_BACKLIGHT_PWM=y
174CONFIG_FB_MXC_LDB=y
175CONFIG_FB_MXC_MIPI_DSI=y
176CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
177CONFIG_FB_MXC_HDMI=y
178CONFIG_FRAMEBUFFER_CONSOLE=y
179CONFIG_FONTS=y
180CONFIG_FONT_8x16=y
181CONFIG_LOGO=y
182CONFIG_SOUND=y
183CONFIG_SND=y
184CONFIG_SND_USB_AUDIO=y
185CONFIG_SND_SOC=y
186CONFIG_SND_IMX_SOC=y
187CONFIG_SND_SOC_IMX_SGTL5000=y
188CONFIG_SND_SOC_IMX_SPDIF=y
189CONFIG_SND_SOC_IMX_HDMI=y
190CONFIG_HIDRAW=y
191CONFIG_HID_QUANTA=y
192CONFIG_HID_SAMSUNG=m
193CONFIG_HID_SONY=m
194CONFIG_HID_SUNPLUS=m
195CONFIG_USB=y
196CONFIG_USB_DEVICEFS=y
197# CONFIG_USB_DEVICE_CLASS is not set
198CONFIG_USB_SUSPEND=y
199# CONFIG_USB_OTG_WHITELIST is not set
200CONFIG_USB_EHCI_HCD=y
201CONFIG_USB_EHCI_ARC=y
202CONFIG_USB_EHCI_ROOT_HUB_TT=y
203# CONFIG_USB_EHCI_TT_NEWSCHED is not set
204CONFIG_USB_ACM=y
205CONFIG_USB_STORAGE=y
206CONFIG_USB_SERIAL=y
207CONFIG_USB_SERIAL_QUALCOMM=y
208CONFIG_USB_SERIAL_OPTION=y
209CONFIG_USB_GADGET=y
210CONFIG_USB_FILE_STORAGE=m
211CONFIG_USB_G_SERIAL=m
212CONFIG_MXC_OTG=y
213CONFIG_MMC=y
214CONFIG_MMC_UNSAFE_RESUME=y
215CONFIG_MMC_SDHCI=y
216CONFIG_MMC_SDHCI_PLTFM=y
217CONFIG_MMC_SDHCI_ESDHC_IMX=y
218CONFIG_NEW_LEDS=y
219CONFIG_LEDS_CLASS=y
220CONFIG_LEDS_GPIO=y
221CONFIG_LEDS_TRIGGERS=y
222CONFIG_LEDS_TRIGGER_GPIO=y
223CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
224CONFIG_RTC_CLASS=y
225CONFIG_RTC_INTF_DEV_UIE_EMUL=y
226CONFIG_RTC_DRV_SNVS=y
227CONFIG_DMADEVICES=y
228CONFIG_MXC_PXP_V2=y
229CONFIG_IMX_SDMA=y
230CONFIG_MXC_IPU=y
231# CONFIG_MXC_HMP4E is not set
232# CONFIG_MXC_HWEVENT is not set
233CONFIG_MXC_ASRC=y
234CONFIG_MXC_GPU_VIV=y
235CONFIG_MXC_MIPI_CSI2=y
236CONFIG_EXT2_FS=y
237CONFIG_EXT3_FS=y
238# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
239CONFIG_EXT4_FS=y
240CONFIG_AUTOFS4_FS=y
241CONFIG_MSDOS_FS=y
242CONFIG_VFAT_FS=y
243CONFIG_TMPFS=y
244CONFIG_JFFS2_FS=y
245CONFIG_UBIFS_FS=y
246CONFIG_CRAMFS=y
247CONFIG_NFS_FS=y
248CONFIG_NFS_V3=y
249CONFIG_ROOT_NFS=y
250CONFIG_PARTITION_ADVANCED=y
251CONFIG_EFI_PARTITION=y
252CONFIG_NLS_CODEPAGE_437=y
253CONFIG_NLS_ASCII=m
254CONFIG_NLS_ISO8859_1=y
255CONFIG_NLS_UTF8=m
256CONFIG_MAGIC_SYSRQ=y
257CONFIG_DEBUG_FS=y
258CONFIG_SYSCTL_SYSCALL_CHECK=y
259# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
260CONFIG_CRYPTO_TEST=m
261CONFIG_CRYPTO_CCM=y
262CONFIG_CRYPTO_GCM=y
263CONFIG_CRYPTO_CBC=y
264CONFIG_CRYPTO_CTS=y
265CONFIG_CRYPTO_LRW=y
266CONFIG_CRYPTO_PCBC=y
267CONFIG_CRYPTO_XTS=y
268CONFIG_CRYPTO_DES=y
269# CONFIG_CRYPTO_ANSI_CPRNG is not set
270CONFIG_CRYPTO_DEV_FSL_CAAM=y
271# CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API is not set
272CONFIG_CRC_CCITT=m
diff --git a/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch
new file mode 100644
index 0000000..5f22380
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch
@@ -0,0 +1,6903 @@
1diff --git a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
2old mode 100755
3new mode 100644
4diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
5old mode 100755
6new mode 100644
7diff --git a/arch/arm/configs/imx5_defconfig b/arch/arm/configs/imx5_defconfig
8old mode 100755
9new mode 100644
10diff --git a/arch/arm/configs/nitrogen6x_defconfig b/arch/arm/configs/nitrogen6x_defconfig
11new file mode 100644
12index 0000000..35e4cc3
13--- /dev/null
14+++ b/arch/arm/configs/nitrogen6x_defconfig
15@@ -0,0 +1,3020 @@
16+#
17+# Automatically generated make config: don't edit
18+# Linux/arm 3.0.35 Kernel Configuration
19+#
20+CONFIG_ARM=y
21+CONFIG_HAVE_PWM=y
22+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
23+CONFIG_HAVE_SCHED_CLOCK=y
24+CONFIG_GENERIC_GPIO=y
25+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
26+CONFIG_GENERIC_CLOCKEVENTS=y
27+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
28+CONFIG_KTIME_SCALAR=y
29+CONFIG_HAVE_PROC_CPU=y
30+CONFIG_STACKTRACE_SUPPORT=y
31+CONFIG_LOCKDEP_SUPPORT=y
32+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
33+CONFIG_HARDIRQS_SW_RESEND=y
34+CONFIG_GENERIC_IRQ_PROBE=y
35+CONFIG_GENERIC_LOCKBREAK=y
36+CONFIG_RWSEM_GENERIC_SPINLOCK=y
37+CONFIG_ARCH_HAS_CPUFREQ=y
38+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
39+CONFIG_GENERIC_HWEIGHT=y
40+CONFIG_GENERIC_CALIBRATE_DELAY=y
41+CONFIG_ZONE_DMA=y
42+CONFIG_NEED_DMA_MAP_STATE=y
43+CONFIG_FIQ=y
44+CONFIG_VECTORS_BASE=0xffff0000
45+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
46+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
47+CONFIG_HAVE_IRQ_WORK=y
48+CONFIG_IRQ_WORK=y
49+
50+#
51+# General setup
52+#
53+CONFIG_EXPERIMENTAL=y
54+CONFIG_INIT_ENV_ARG_LIMIT=32
55+CONFIG_CROSS_COMPILE=""
56+CONFIG_LOCALVERSION=""
57+CONFIG_LOCALVERSION_AUTO=y
58+CONFIG_HAVE_KERNEL_GZIP=y
59+CONFIG_HAVE_KERNEL_LZMA=y
60+CONFIG_HAVE_KERNEL_LZO=y
61+CONFIG_KERNEL_GZIP=y
62+# CONFIG_KERNEL_LZMA is not set
63+# CONFIG_KERNEL_LZO is not set
64+CONFIG_DEFAULT_HOSTNAME="(none)"
65+CONFIG_SWAP=y
66+CONFIG_SYSVIPC=y
67+CONFIG_SYSVIPC_SYSCTL=y
68+# CONFIG_POSIX_MQUEUE is not set
69+# CONFIG_BSD_PROCESS_ACCT is not set
70+# CONFIG_FHANDLE is not set
71+# CONFIG_TASKSTATS is not set
72+# CONFIG_AUDIT is not set
73+CONFIG_HAVE_GENERIC_HARDIRQS=y
74+
75+#
76+# IRQ subsystem
77+#
78+CONFIG_GENERIC_HARDIRQS=y
79+CONFIG_HAVE_SPARSE_IRQ=y
80+CONFIG_GENERIC_IRQ_SHOW=y
81+# CONFIG_SPARSE_IRQ is not set
82+
83+#
84+# RCU Subsystem
85+#
86+CONFIG_TREE_PREEMPT_RCU=y
87+CONFIG_PREEMPT_RCU=y
88+# CONFIG_RCU_TRACE is not set
89+CONFIG_RCU_FANOUT=32
90+# CONFIG_RCU_FANOUT_EXACT is not set
91+# CONFIG_TREE_RCU_TRACE is not set
92+# CONFIG_RCU_BOOST is not set
93+CONFIG_IKCONFIG=y
94+CONFIG_IKCONFIG_PROC=y
95+CONFIG_LOG_BUF_SHIFT=14
96+# CONFIG_CGROUPS is not set
97+# CONFIG_NAMESPACES is not set
98+# CONFIG_SCHED_AUTOGROUP is not set
99+# CONFIG_SYSFS_DEPRECATED is not set
100+# CONFIG_RELAY is not set
101+CONFIG_BLK_DEV_INITRD=y
102+CONFIG_INITRAMFS_SOURCE=""
103+CONFIG_RD_GZIP=y
104+# CONFIG_RD_BZIP2 is not set
105+# CONFIG_RD_LZMA is not set
106+# CONFIG_RD_XZ is not set
107+# CONFIG_RD_LZO is not set
108+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
109+CONFIG_SYSCTL=y
110+CONFIG_ANON_INODES=y
111+CONFIG_EXPERT=y
112+CONFIG_UID16=y
113+CONFIG_SYSCTL_SYSCALL=y
114+CONFIG_KALLSYMS=y
115+CONFIG_HOTPLUG=y
116+CONFIG_PRINTK=y
117+CONFIG_BUG=y
118+CONFIG_ELF_CORE=y
119+CONFIG_BASE_FULL=y
120+CONFIG_FUTEX=y
121+CONFIG_EPOLL=y
122+CONFIG_SIGNALFD=y
123+CONFIG_TIMERFD=y
124+CONFIG_EVENTFD=y
125+CONFIG_SHMEM=y
126+CONFIG_AIO=y
127+CONFIG_EMBEDDED=y
128+CONFIG_HAVE_PERF_EVENTS=y
129+CONFIG_PERF_USE_VMALLOC=y
130+
131+#
132+# Kernel Performance Events And Counters
133+#
134+CONFIG_PERF_EVENTS=y
135+# CONFIG_PERF_COUNTERS is not set
136+CONFIG_VM_EVENT_COUNTERS=y
137+CONFIG_SLUB_DEBUG=y
138+CONFIG_COMPAT_BRK=y
139+# CONFIG_SLAB is not set
140+CONFIG_SLUB=y
141+# CONFIG_SLOB is not set
142+# CONFIG_PROFILING is not set
143+CONFIG_HAVE_OPROFILE=y
144+# CONFIG_KPROBES is not set
145+CONFIG_HAVE_KPROBES=y
146+CONFIG_HAVE_KRETPROBES=y
147+CONFIG_USE_GENERIC_SMP_HELPERS=y
148+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
149+CONFIG_HAVE_CLK=y
150+CONFIG_HAVE_DMA_API_DEBUG=y
151+CONFIG_HAVE_HW_BREAKPOINT=y
152+
153+#
154+# GCOV-based kernel profiling
155+#
156+# CONFIG_GCOV_KERNEL is not set
157+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
158+CONFIG_SLABINFO=y
159+CONFIG_RT_MUTEXES=y
160+CONFIG_BASE_SMALL=0
161+CONFIG_MODULES=y
162+# CONFIG_MODULE_FORCE_LOAD is not set
163+CONFIG_MODULE_UNLOAD=y
164+CONFIG_MODULE_FORCE_UNLOAD=y
165+CONFIG_MODVERSIONS=y
166+# CONFIG_MODULE_SRCVERSION_ALL is not set
167+CONFIG_STOP_MACHINE=y
168+CONFIG_BLOCK=y
169+CONFIG_LBDAF=y
170+# CONFIG_BLK_DEV_BSG is not set
171+# CONFIG_BLK_DEV_INTEGRITY is not set
172+
173+#
174+# IO Schedulers
175+#
176+CONFIG_IOSCHED_NOOP=y
177+CONFIG_IOSCHED_DEADLINE=y
178+CONFIG_IOSCHED_CFQ=y
179+# CONFIG_DEFAULT_DEADLINE is not set
180+CONFIG_DEFAULT_CFQ=y
181+# CONFIG_DEFAULT_NOOP is not set
182+CONFIG_DEFAULT_IOSCHED="cfq"
183+# CONFIG_INLINE_SPIN_TRYLOCK is not set
184+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
185+# CONFIG_INLINE_SPIN_LOCK is not set
186+# CONFIG_INLINE_SPIN_LOCK_BH is not set
187+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
188+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
189+# CONFIG_INLINE_SPIN_UNLOCK is not set
190+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
191+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
192+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
193+# CONFIG_INLINE_READ_TRYLOCK is not set
194+# CONFIG_INLINE_READ_LOCK is not set
195+# CONFIG_INLINE_READ_LOCK_BH is not set
196+# CONFIG_INLINE_READ_LOCK_IRQ is not set
197+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
198+# CONFIG_INLINE_READ_UNLOCK is not set
199+# CONFIG_INLINE_READ_UNLOCK_BH is not set
200+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
201+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
202+# CONFIG_INLINE_WRITE_TRYLOCK is not set
203+# CONFIG_INLINE_WRITE_LOCK is not set
204+# CONFIG_INLINE_WRITE_LOCK_BH is not set
205+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
206+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
207+# CONFIG_INLINE_WRITE_UNLOCK is not set
208+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
209+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
210+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
211+CONFIG_MUTEX_SPIN_ON_OWNER=y
212+CONFIG_FREEZER=y
213+
214+#
215+# System Type
216+#
217+CONFIG_MMU=y
218+# CONFIG_ARCH_INTEGRATOR is not set
219+# CONFIG_ARCH_REALVIEW is not set
220+# CONFIG_ARCH_VERSATILE is not set
221+# CONFIG_ARCH_VEXPRESS is not set
222+# CONFIG_ARCH_AT91 is not set
223+# CONFIG_ARCH_BCMRING is not set
224+# CONFIG_ARCH_CLPS711X is not set
225+# CONFIG_ARCH_CNS3XXX is not set
226+# CONFIG_ARCH_GEMINI is not set
227+# CONFIG_ARCH_EBSA110 is not set
228+# CONFIG_ARCH_EP93XX is not set
229+# CONFIG_ARCH_FOOTBRIDGE is not set
230+CONFIG_ARCH_MXC=y
231+# CONFIG_ARCH_MXS is not set
232+# CONFIG_ARCH_NETX is not set
233+# CONFIG_ARCH_H720X is not set
234+# CONFIG_ARCH_IOP13XX is not set
235+# CONFIG_ARCH_IOP32X is not set
236+# CONFIG_ARCH_IOP33X is not set
237+# CONFIG_ARCH_IXP23XX is not set
238+# CONFIG_ARCH_IXP2000 is not set
239+# CONFIG_ARCH_IXP4XX is not set
240+# CONFIG_ARCH_DOVE is not set
241+# CONFIG_ARCH_KIRKWOOD is not set
242+# CONFIG_ARCH_LOKI is not set
243+# CONFIG_ARCH_LPC32XX is not set
244+# CONFIG_ARCH_MV78XX0 is not set
245+# CONFIG_ARCH_ORION5X is not set
246+# CONFIG_ARCH_MMP is not set
247+# CONFIG_ARCH_KS8695 is not set
248+# CONFIG_ARCH_W90X900 is not set
249+# CONFIG_ARCH_NUC93X is not set
250+# CONFIG_ARCH_TEGRA is not set
251+# CONFIG_ARCH_PNX4008 is not set
252+# CONFIG_ARCH_PXA is not set
253+# CONFIG_ARCH_MSM is not set
254+# CONFIG_ARCH_SHMOBILE is not set
255+# CONFIG_ARCH_RPC is not set
256+# CONFIG_ARCH_SA1100 is not set
257+# CONFIG_ARCH_S3C2410 is not set
258+# CONFIG_ARCH_S3C64XX is not set
259+# CONFIG_ARCH_S5P64X0 is not set
260+# CONFIG_ARCH_S5PC100 is not set
261+# CONFIG_ARCH_S5PV210 is not set
262+# CONFIG_ARCH_EXYNOS4 is not set
263+# CONFIG_ARCH_SHARK is not set
264+# CONFIG_ARCH_TCC_926 is not set
265+# CONFIG_ARCH_U300 is not set
266+# CONFIG_ARCH_U8500 is not set
267+# CONFIG_ARCH_NOMADIK is not set
268+# CONFIG_ARCH_DAVINCI is not set
269+# CONFIG_ARCH_OMAP is not set
270+# CONFIG_PLAT_SPEAR is not set
271+# CONFIG_ARCH_VT8500 is not set
272+CONFIG_GPIO_PCA953X=y
273+# CONFIG_KEYBOARD_GPIO_POLLED is not set
274+CONFIG_IMX_HAVE_PLATFORM_DMA=y
275+CONFIG_IMX_HAVE_PLATFORM_FEC=y
276+CONFIG_IMX_HAVE_PLATFORM_FLEXCAN=y
277+CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC=y
278+CONFIG_IMX_HAVE_PLATFORM_GPMI_NFC=y
279+CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y
280+CONFIG_IMX_HAVE_PLATFORM_IMX_SNVS_RTC=y
281+CONFIG_IMX_HAVE_PLATFORM_IMX_CAAM=y
282+CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
283+CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y
284+CONFIG_IMX_HAVE_PLATFORM_IMX_UART=y
285+CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI=y
286+CONFIG_IMX_HAVE_PLATFORM_MXC_PWM=y
287+CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX=y
288+CONFIG_IMX_HAVE_PLATFORM_SPI_IMX=y
289+CONFIG_IMX_HAVE_PLATFORM_IMX_IPUV3=y
290+CONFIG_IMX_HAVE_PLATFORM_IMX_VPU=y
291+CONFIG_IMX_HAVE_PLATFORM_IMX_DVFS=y
292+CONFIG_IMX_HAVE_PLATFORM_AHCI=y
293+CONFIG_IMX_HAVE_PLATFORM_IMX_OCOTP=y
294+CONFIG_IMX_HAVE_PLATFORM_IMX_VIIM=y
295+CONFIG_IMX_HAVE_PLATFORM_PERFMON=y
296+CONFIG_IMX_HAVE_PLATFORM_LDB=y
297+CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF=y
298+CONFIG_IMX_HAVE_PLATFORM_VIV_GPU=y
299+CONFIG_IMX_HAVE_PLATFORM_MXC_HDMI=y
300+CONFIG_IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL=y
301+CONFIG_IMX_HAVE_PLATFORM_FSL_OTG=y
302+CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y
303+CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y
304+CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y
305+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y
306+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y
307+CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y
308+CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y
309+
310+#
311+# Freescale MXC Implementations
312+#
313+# CONFIG_ARCH_MX1 is not set
314+# CONFIG_ARCH_MX2 is not set
315+# CONFIG_ARCH_MX25 is not set
316+# CONFIG_ARCH_MX3 is not set
317+# CONFIG_ARCH_MX503 is not set
318+# CONFIG_ARCH_MX51 is not set
319+CONFIG_ARCH_MX6=y
320+CONFIG_ARCH_MX6Q=y
321+CONFIG_FORCE_MAX_ZONEORDER=14
322+CONFIG_SOC_IMX6Q=y
323+# CONFIG_MACH_MX6Q_ARM2 is not set
324+# CONFIG_MACH_MX6SL_ARM2 is not set
325+CONFIG_MACH_MX6Q_SABRELITE=y
326+# CONFIG_MACH_MX6Q_SABRESD is not set
327+# CONFIG_MACH_MX6Q_SABREAUTO is not set
328+
329+#
330+# MX6 Options:
331+#
332+CONFIG_IMX_PCIE=y
333+CONFIG_USB_EHCI_ARC_H1=y
334+# CONFIG_MX6_INTER_LDO_BYPASS is not set
335+CONFIG_ISP1504_MXC=y
336+# CONFIG_MXC_IRQ_PRIOR is not set
337+CONFIG_MXC_PWM=y
338+# CONFIG_MXC_DEBUG_BOARD is not set
339+CONFIG_MXC_REBOOT_MFGMODE=y
340+# CONFIG_MXC_REBOOT_ANDROID_CMD is not set
341+CONFIG_ARCH_MXC_IOMUX_V3=y
342+CONFIG_ARCH_MXC_AUDMUX_V2=y
343+CONFIG_IRAM_ALLOC=y
344+CONFIG_CLK_DEBUG=y
345+CONFIG_DMA_ZONE_SIZE=184
346+
347+#
348+# System MMU
349+#
350+
351+#
352+# Processor Type
353+#
354+CONFIG_CPU_V7=y
355+CONFIG_CPU_32v6K=y
356+CONFIG_CPU_32v7=y
357+CONFIG_CPU_ABRT_EV7=y
358+CONFIG_CPU_PABRT_V7=y
359+CONFIG_CPU_CACHE_V7=y
360+CONFIG_CPU_CACHE_VIPT=y
361+CONFIG_CPU_COPY_V6=y
362+CONFIG_CPU_TLB_V7=y
363+CONFIG_CPU_HAS_ASID=y
364+CONFIG_CPU_CP15=y
365+CONFIG_CPU_CP15_MMU=y
366+
367+#
368+# Processor Features
369+#
370+CONFIG_ARM_THUMB=y
371+# CONFIG_ARM_THUMBEE is not set
372+# CONFIG_SWP_EMULATE is not set
373+# CONFIG_CPU_ICACHE_DISABLE is not set
374+# CONFIG_CPU_DCACHE_DISABLE is not set
375+# CONFIG_CPU_BPREDICT_DISABLE is not set
376+CONFIG_OUTER_CACHE=y
377+CONFIG_OUTER_CACHE_SYNC=y
378+CONFIG_CACHE_L2X0=y
379+CONFIG_CACHE_PL310=y
380+CONFIG_ARM_L1_CACHE_SHIFT=5
381+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
382+CONFIG_CPU_HAS_PMU=y
383+# CONFIG_ARM_ERRATA_430973 is not set
384+# CONFIG_ARM_ERRATA_458693 is not set
385+# CONFIG_ARM_ERRATA_460075 is not set
386+# CONFIG_ARM_ERRATA_742230 is not set
387+# CONFIG_ARM_ERRATA_742231 is not set
388+# CONFIG_PL310_ERRATA_588369 is not set
389+# CONFIG_ARM_ERRATA_720789 is not set
390+# CONFIG_PL310_ERRATA_727915 is not set
391+CONFIG_ARM_ERRATA_743622=y
392+CONFIG_ARM_ERRATA_751472=y
393+# CONFIG_ARM_ERRATA_753970 is not set
394+CONFIG_ARM_ERRATA_754322=y
395+# CONFIG_ARM_ERRATA_754327 is not set
396+CONFIG_ARM_GIC=y
397+
398+#
399+# Bus support
400+#
401+CONFIG_PCI=y
402+CONFIG_PCI_SYSCALL=y
403+# CONFIG_ARCH_SUPPORTS_MSI is not set
404+# CONFIG_PCI_STUB is not set
405+# CONFIG_PCI_IOV is not set
406+# CONFIG_PCIEPORTBUS is not set
407+# CONFIG_PCCARD is not set
408+CONFIG_ARM_ERRATA_764369=y
409+# CONFIG_PL310_ERRATA_769419 is not set
410+
411+#
412+# Kernel Features
413+#
414+CONFIG_TICK_ONESHOT=y
415+CONFIG_NO_HZ=y
416+CONFIG_HIGH_RES_TIMERS=y
417+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
418+CONFIG_SMP=y
419+CONFIG_SMP_ON_UP=y
420+CONFIG_HAVE_ARM_SCU=y
421+CONFIG_HAVE_ARM_TWD=y
422+# CONFIG_VMSPLIT_3G is not set
423+CONFIG_VMSPLIT_2G=y
424+# CONFIG_VMSPLIT_1G is not set
425+CONFIG_PAGE_OFFSET=0x80000000
426+CONFIG_NR_CPUS=4
427+CONFIG_HOTPLUG_CPU=y
428+CONFIG_LOCAL_TIMERS=y
429+# CONFIG_PREEMPT_NONE is not set
430+# CONFIG_PREEMPT_VOLUNTARY is not set
431+CONFIG_PREEMPT=y
432+CONFIG_HZ=100
433+# CONFIG_THUMB2_KERNEL is not set
434+CONFIG_AEABI=y
435+# CONFIG_OABI_COMPAT is not set
436+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
437+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
438+CONFIG_HAVE_ARCH_PFN_VALID=y
439+CONFIG_HIGHMEM=y
440+# CONFIG_HIGHPTE is not set
441+CONFIG_HW_PERF_EVENTS=y
442+CONFIG_SELECT_MEMORY_MODEL=y
443+CONFIG_FLATMEM_MANUAL=y
444+CONFIG_FLATMEM=y
445+CONFIG_FLAT_NODE_MEM_MAP=y
446+CONFIG_HAVE_MEMBLOCK=y
447+CONFIG_PAGEFLAGS_EXTENDED=y
448+CONFIG_SPLIT_PTLOCK_CPUS=4
449+CONFIG_COMPACTION=y
450+CONFIG_MIGRATION=y
451+# CONFIG_PHYS_ADDR_T_64BIT is not set
452+CONFIG_ZONE_DMA_FLAG=1
453+CONFIG_BOUNCE=y
454+CONFIG_VIRT_TO_BUS=y
455+CONFIG_KSM=y
456+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
457+# CONFIG_CLEANCACHE is not set
458+CONFIG_ALIGNMENT_TRAP=y
459+# CONFIG_UACCESS_WITH_MEMCPY is not set
460+# CONFIG_SECCOMP is not set
461+# CONFIG_CC_STACKPROTECTOR is not set
462+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
463+
464+#
465+# Boot options
466+#
467+# CONFIG_USE_OF is not set
468+CONFIG_ZBOOT_ROM_TEXT=0x0
469+CONFIG_ZBOOT_ROM_BSS=0x0
470+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 ip=off"
471+CONFIG_CMDLINE_FROM_BOOTLOADER=y
472+# CONFIG_CMDLINE_EXTEND is not set
473+# CONFIG_CMDLINE_FORCE is not set
474+# CONFIG_XIP_KERNEL is not set
475+# CONFIG_KEXEC is not set
476+# CONFIG_CRASH_DUMP is not set
477+# CONFIG_AUTO_ZRELADDR is not set
478+
479+#
480+# CPU Power Management
481+#
482+
483+#
484+# CPU Frequency scaling
485+#
486+CONFIG_CPU_FREQ=y
487+CONFIG_CPU_FREQ_TABLE=y
488+CONFIG_CPU_FREQ_STAT=y
489+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
490+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
491+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
492+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
493+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
494+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
495+CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
496+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
497+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
498+CONFIG_CPU_FREQ_GOV_USERSPACE=y
499+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
500+CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
501+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
502+CONFIG_CPU_FREQ_IMX=y
503+# CONFIG_CPU_IDLE is not set
504+
505+#
506+# Floating point emulation
507+#
508+
509+#
510+# At least one emulation must be selected
511+#
512+CONFIG_VFP=y
513+CONFIG_VFPv3=y
514+CONFIG_NEON=y
515+
516+#
517+# Userspace binary formats
518+#
519+CONFIG_BINFMT_ELF=y
520+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
521+CONFIG_HAVE_AOUT=y
522+# CONFIG_BINFMT_AOUT is not set
523+# CONFIG_BINFMT_MISC is not set
524+
525+#
526+# Power management options
527+#
528+CONFIG_SUSPEND=y
529+# CONFIG_PM_TEST_SUSPEND is not set
530+CONFIG_SUSPEND_DEVICE_TIME_DEBUG=y
531+CONFIG_SUSPEND_FREEZER=y
532+CONFIG_PM_SLEEP=y
533+CONFIG_PM_SLEEP_SMP=y
534+CONFIG_PM_RUNTIME=y
535+CONFIG_PM=y
536+CONFIG_PM_DEBUG=y
537+# CONFIG_PM_ADVANCED_DEBUG is not set
538+CONFIG_CAN_PM_TRACE=y
539+CONFIG_APM_EMULATION=y
540+CONFIG_PM_RUNTIME_CLK=y
541+CONFIG_ARCH_SUSPEND_POSSIBLE=y
542+CONFIG_NET=y
543+
544+#
545+# Networking options
546+#
547+CONFIG_PACKET=y
548+CONFIG_UNIX=y
549+CONFIG_XFRM=y
550+# CONFIG_XFRM_USER is not set
551+# CONFIG_XFRM_SUB_POLICY is not set
552+# CONFIG_XFRM_MIGRATE is not set
553+# CONFIG_XFRM_STATISTICS is not set
554+# CONFIG_NET_KEY is not set
555+CONFIG_INET=y
556+CONFIG_IP_MULTICAST=y
557+# CONFIG_IP_ADVANCED_ROUTER is not set
558+CONFIG_IP_PNP=y
559+CONFIG_IP_PNP_DHCP=y
560+CONFIG_IP_PNP_BOOTP=y
561+# CONFIG_IP_PNP_RARP is not set
562+# CONFIG_NET_IPIP is not set
563+# CONFIG_NET_IPGRE_DEMUX is not set
564+# CONFIG_IP_MROUTE is not set
565+# CONFIG_ARPD is not set
566+# CONFIG_SYN_COOKIES is not set
567+# CONFIG_INET_AH is not set
568+# CONFIG_INET_ESP is not set
569+# CONFIG_INET_IPCOMP is not set
570+# CONFIG_INET_XFRM_TUNNEL is not set
571+# CONFIG_INET_TUNNEL is not set
572+CONFIG_INET_XFRM_MODE_TRANSPORT=y
573+CONFIG_INET_XFRM_MODE_TUNNEL=y
574+CONFIG_INET_XFRM_MODE_BEET=y
575+# CONFIG_INET_LRO is not set
576+CONFIG_INET_DIAG=y
577+CONFIG_INET_TCP_DIAG=y
578+# CONFIG_TCP_CONG_ADVANCED is not set
579+CONFIG_TCP_CONG_CUBIC=y
580+CONFIG_DEFAULT_TCP_CONG="cubic"
581+# CONFIG_TCP_MD5SIG is not set
582+# CONFIG_IPV6 is not set
583+# CONFIG_NETWORK_SECMARK is not set
584+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
585+# CONFIG_NETFILTER is not set
586+# CONFIG_IP_DCCP is not set
587+# CONFIG_IP_SCTP is not set
588+# CONFIG_RDS is not set
589+# CONFIG_TIPC is not set
590+# CONFIG_ATM is not set
591+# CONFIG_L2TP is not set
592+# CONFIG_BRIDGE is not set
593+# CONFIG_NET_DSA is not set
594+# CONFIG_VLAN_8021Q is not set
595+# CONFIG_DECNET is not set
596+CONFIG_LLC=y
597+CONFIG_LLC2=y
598+# CONFIG_IPX is not set
599+# CONFIG_ATALK is not set
600+# CONFIG_X25 is not set
601+# CONFIG_LAPB is not set
602+# CONFIG_ECONET is not set
603+# CONFIG_WAN_ROUTER is not set
604+# CONFIG_PHONET is not set
605+# CONFIG_IEEE802154 is not set
606+# CONFIG_NET_SCHED is not set
607+# CONFIG_DCB is not set
608+# CONFIG_BATMAN_ADV is not set
609+CONFIG_RPS=y
610+CONFIG_RFS_ACCEL=y
611+CONFIG_XPS=y
612+
613+#
614+# Network testing
615+#
616+# CONFIG_NET_PKTGEN is not set
617+# CONFIG_HAMRADIO is not set
618+CONFIG_CAN=y
619+CONFIG_CAN_RAW=y
620+CONFIG_CAN_BCM=y
621+
622+#
623+# CAN Device Drivers
624+#
625+CONFIG_CAN_VCAN=y
626+# CONFIG_CAN_SLCAN is not set
627+CONFIG_CAN_DEV=y
628+CONFIG_CAN_CALC_BITTIMING=y
629+# CONFIG_CAN_MCP251X is not set
630+CONFIG_HAVE_CAN_FLEXCAN=y
631+CONFIG_CAN_FLEXCAN=y
632+# CONFIG_CAN_SJA1000 is not set
633+# CONFIG_CAN_C_CAN is not set
634+
635+#
636+# CAN USB interfaces
637+#
638+# CONFIG_CAN_EMS_USB is not set
639+# CONFIG_CAN_ESD_USB2 is not set
640+# CONFIG_CAN_SOFTING is not set
641+# CONFIG_CAN_DEBUG_DEVICES is not set
642+# CONFIG_IRDA is not set
643+CONFIG_BT=y
644+CONFIG_BT_L2CAP=y
645+CONFIG_BT_SCO=y
646+CONFIG_BT_RFCOMM=y
647+CONFIG_BT_RFCOMM_TTY=y
648+CONFIG_BT_BNEP=y
649+CONFIG_BT_BNEP_MC_FILTER=y
650+CONFIG_BT_BNEP_PROTO_FILTER=y
651+CONFIG_BT_HIDP=y
652+
653+#
654+# Bluetooth device drivers
655+#
656+# CONFIG_BT_HCIBTUSB is not set
657+# CONFIG_BT_HCIBTSDIO is not set
658+CONFIG_BT_HCIUART=y
659+# CONFIG_BT_HCIUART_H4 is not set
660+# CONFIG_BT_HCIUART_BCSP is not set
661+# CONFIG_BT_HCIUART_ATH3K is not set
662+CONFIG_BT_HCIUART_LL=y
663+# CONFIG_BT_HCIBCM203X is not set
664+# CONFIG_BT_HCIBPA10X is not set
665+# CONFIG_BT_HCIBFUSB is not set
666+# CONFIG_BT_HCIVHCI is not set
667+# CONFIG_BT_MRVL is not set
668+# CONFIG_BT_ATH3K is not set
669+# CONFIG_AF_RXRPC is not set
670+CONFIG_FIB_RULES=y
671+CONFIG_WIRELESS=y
672+CONFIG_WIRELESS_EXT=y
673+CONFIG_WEXT_CORE=y
674+CONFIG_WEXT_PROC=y
675+CONFIG_WEXT_SPY=y
676+CONFIG_WEXT_PRIV=y
677+CONFIG_CFG80211=y
678+# CONFIG_NL80211_TESTMODE is not set
679+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
680+# CONFIG_CFG80211_REG_DEBUG is not set
681+CONFIG_CFG80211_DEFAULT_PS=y
682+# CONFIG_CFG80211_DEBUGFS is not set
683+# CONFIG_CFG80211_INTERNAL_REGDB is not set
684+CONFIG_CFG80211_WEXT=y
685+CONFIG_WIRELESS_EXT_SYSFS=y
686+CONFIG_LIB80211=y
687+CONFIG_LIB80211_CRYPT_WEP=y
688+CONFIG_LIB80211_CRYPT_CCMP=y
689+CONFIG_LIB80211_CRYPT_TKIP=y
690+# CONFIG_LIB80211_DEBUG is not set
691+# CONFIG_CFG80211_ALLOW_RECONNECT is not set
692+CONFIG_MAC80211=y
693+CONFIG_MAC80211_HAS_RC=y
694+# CONFIG_MAC80211_RC_PID is not set
695+CONFIG_MAC80211_RC_MINSTREL=y
696+CONFIG_MAC80211_RC_MINSTREL_HT=y
697+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
698+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
699+# CONFIG_MAC80211_MESH is not set
700+# CONFIG_MAC80211_LEDS is not set
701+# CONFIG_MAC80211_DEBUGFS is not set
702+# CONFIG_MAC80211_DEBUG_MENU is not set
703+# CONFIG_WIMAX is not set
704+CONFIG_RFKILL=y
705+CONFIG_RFKILL_LEDS=y
706+CONFIG_RFKILL_INPUT=y
707+# CONFIG_RFKILL_REGULATOR is not set
708+# CONFIG_RFKILL_GPIO is not set
709+# CONFIG_NET_9P is not set
710+# CONFIG_CAIF is not set
711+# CONFIG_CEPH_LIB is not set
712+
713+#
714+# Device Drivers
715+#
716+
717+#
718+# Generic Driver Options
719+#
720+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
721+# CONFIG_DEVTMPFS is not set
722+CONFIG_STANDALONE=y
723+CONFIG_PREVENT_FIRMWARE_BUILD=y
724+CONFIG_FW_LOADER=y
725+CONFIG_FIRMWARE_IN_KERNEL=y
726+CONFIG_EXTRA_FIRMWARE=""
727+# CONFIG_SYS_HYPERVISOR is not set
728+CONFIG_CONNECTOR=y
729+CONFIG_PROC_EVENTS=y
730+CONFIG_MTD=y
731+# CONFIG_MTD_DEBUG is not set
732+# CONFIG_MTD_TESTS is not set
733+# CONFIG_MTD_REDBOOT_PARTS is not set
734+CONFIG_MTD_CMDLINE_PARTS=y
735+# CONFIG_MTD_AFS_PARTS is not set
736+# CONFIG_MTD_AR7_PARTS is not set
737+
738+#
739+# User Modules And Translation Layers
740+#
741+CONFIG_MTD_CHAR=y
742+CONFIG_MTD_BLKDEVS=y
743+CONFIG_MTD_BLOCK=y
744+# CONFIG_FTL is not set
745+# CONFIG_NFTL is not set
746+# CONFIG_INFTL is not set
747+# CONFIG_RFD_FTL is not set
748+# CONFIG_SSFDC is not set
749+# CONFIG_SM_FTL is not set
750+# CONFIG_MTD_OOPS is not set
751+# CONFIG_MTD_SWAP is not set
752+
753+#
754+# RAM/ROM/Flash chip drivers
755+#
756+# CONFIG_MTD_CFI is not set
757+# CONFIG_MTD_JEDECPROBE is not set
758+CONFIG_MTD_MAP_BANK_WIDTH_1=y
759+CONFIG_MTD_MAP_BANK_WIDTH_2=y
760+CONFIG_MTD_MAP_BANK_WIDTH_4=y
761+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
762+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
763+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
764+CONFIG_MTD_CFI_I1=y
765+CONFIG_MTD_CFI_I2=y
766+# CONFIG_MTD_CFI_I4 is not set
767+# CONFIG_MTD_CFI_I8 is not set
768+# CONFIG_MTD_RAM is not set
769+# CONFIG_MTD_ROM is not set
770+# CONFIG_MTD_ABSENT is not set
771+
772+#
773+# Mapping drivers for chip access
774+#
775+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
776+# CONFIG_MTD_PLATRAM is not set
777+
778+#
779+# Self-contained MTD device drivers
780+#
781+# CONFIG_MTD_DATAFLASH is not set
782+CONFIG_MTD_M25P80=y
783+CONFIG_M25PXX_USE_FAST_READ=y
784+# CONFIG_MTD_SST25L is not set
785+# CONFIG_MTD_SLRAM is not set
786+# CONFIG_MTD_PHRAM is not set
787+# CONFIG_MTD_MTDRAM is not set
788+# CONFIG_MTD_BLOCK2MTD is not set
789+
790+#
791+# Disk-On-Chip Device Drivers
792+#
793+# CONFIG_MTD_DOC2000 is not set
794+# CONFIG_MTD_DOC2001 is not set
795+# CONFIG_MTD_DOC2001PLUS is not set
796+CONFIG_MTD_NAND_ECC=y
797+# CONFIG_MTD_NAND_ECC_SMC is not set
798+CONFIG_MTD_NAND=y
799+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
800+# CONFIG_MTD_NAND_ECC_BCH is not set
801+# CONFIG_MTD_SM_COMMON is not set
802+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
803+# CONFIG_MTD_NAND_GPIO is not set
804+CONFIG_MTD_NAND_IDS=y
805+# CONFIG_MTD_NAND_DISKONCHIP is not set
806+# CONFIG_MTD_NAND_NANDSIM is not set
807+# CONFIG_MTD_NAND_GPMI_NAND is not set
808+# CONFIG_MTD_NAND_PLATFORM is not set
809+# CONFIG_MTD_ALAUDA is not set
810+# CONFIG_MTD_ONENAND is not set
811+
812+#
813+# LPDDR flash memory drivers
814+#
815+# CONFIG_MTD_LPDDR is not set
816+CONFIG_MTD_UBI=y
817+CONFIG_MTD_UBI_WL_THRESHOLD=4096
818+CONFIG_MTD_UBI_BEB_RESERVE=1
819+# CONFIG_MTD_UBI_GLUEBI is not set
820+# CONFIG_MTD_UBI_DEBUG is not set
821+# CONFIG_PARPORT is not set
822+CONFIG_BLK_DEV=y
823+# CONFIG_BLK_DEV_COW_COMMON is not set
824+CONFIG_BLK_DEV_LOOP=y
825+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
826+# CONFIG_BLK_DEV_DRBD is not set
827+# CONFIG_BLK_DEV_NBD is not set
828+# CONFIG_BLK_DEV_UB is not set
829+# CONFIG_BLK_DEV_RAM is not set
830+# CONFIG_CDROM_PKTCDVD is not set
831+# CONFIG_ATA_OVER_ETH is not set
832+# CONFIG_MG_DISK is not set
833+# CONFIG_BLK_DEV_RBD is not set
834+# CONFIG_SENSORS_LIS3LV02D is not set
835+CONFIG_MISC_DEVICES=y
836+# CONFIG_AD525X_DPOT is not set
837+# CONFIG_PHANTOM is not set
838+# CONFIG_INTEL_MID_PTI is not set
839+# CONFIG_SGI_IOC4 is not set
840+# CONFIG_TIFM_CORE is not set
841+# CONFIG_ICS932S401 is not set
842+# CONFIG_ENCLOSURE_SERVICES is not set
843+# CONFIG_HP_ILO is not set
844+# CONFIG_APDS9802ALS is not set
845+# CONFIG_ISL29003 is not set
846+# CONFIG_ISL29020 is not set
847+# CONFIG_SENSORS_TSL2550 is not set
848+# CONFIG_SENSORS_BH1780 is not set
849+# CONFIG_SENSORS_BH1770 is not set
850+# CONFIG_SENSORS_APDS990X is not set
851+# CONFIG_HMC6352 is not set
852+# CONFIG_SENSORS_AK8975 is not set
853+# CONFIG_DS1682 is not set
854+# CONFIG_TI_DAC7512 is not set
855+# CONFIG_BMP085 is not set
856+# CONFIG_PCH_PHUB is not set
857+CONFIG_MXS_PERFMON=m
858+# CONFIG_WL127X_RFKILL is not set
859+# CONFIG_APANIC is not set
860+# CONFIG_C2PORT is not set
861+
862+#
863+# EEPROM support
864+#
865+# CONFIG_EEPROM_AT24 is not set
866+# CONFIG_EEPROM_AT25 is not set
867+# CONFIG_EEPROM_LEGACY is not set
868+# CONFIG_EEPROM_MAX6875 is not set
869+# CONFIG_EEPROM_93CX6 is not set
870+# CONFIG_CB710_CORE is not set
871+# CONFIG_IWMC3200TOP is not set
872+
873+#
874+# Texas Instruments shared transport line discipline
875+#
876+# CONFIG_TI_ST is not set
877+# CONFIG_SENSORS_LIS3_SPI is not set
878+# CONFIG_SENSORS_LIS3_I2C is not set
879+CONFIG_HAVE_IDE=y
880+# CONFIG_IDE is not set
881+
882+#
883+# SCSI device support
884+#
885+CONFIG_SCSI_MOD=y
886+# CONFIG_RAID_ATTRS is not set
887+CONFIG_SCSI=y
888+CONFIG_SCSI_DMA=y
889+# CONFIG_SCSI_TGT is not set
890+# CONFIG_SCSI_NETLINK is not set
891+CONFIG_SCSI_PROC_FS=y
892+
893+#
894+# SCSI support type (disk, tape, CD-ROM)
895+#
896+CONFIG_BLK_DEV_SD=y
897+# CONFIG_CHR_DEV_ST is not set
898+# CONFIG_CHR_DEV_OSST is not set
899+# CONFIG_BLK_DEV_SR is not set
900+# CONFIG_CHR_DEV_SG is not set
901+# CONFIG_CHR_DEV_SCH is not set
902+CONFIG_SCSI_MULTI_LUN=y
903+# CONFIG_SCSI_CONSTANTS is not set
904+# CONFIG_SCSI_LOGGING is not set
905+# CONFIG_SCSI_SCAN_ASYNC is not set
906+CONFIG_SCSI_WAIT_SCAN=m
907+
908+#
909+# SCSI Transports
910+#
911+# CONFIG_SCSI_SPI_ATTRS is not set
912+# CONFIG_SCSI_FC_ATTRS is not set
913+# CONFIG_SCSI_ISCSI_ATTRS is not set
914+# CONFIG_SCSI_SAS_ATTRS is not set
915+# CONFIG_SCSI_SAS_LIBSAS is not set
916+# CONFIG_SCSI_SRP_ATTRS is not set
917+CONFIG_SCSI_LOWLEVEL=y
918+# CONFIG_ISCSI_TCP is not set
919+# CONFIG_ISCSI_BOOT_SYSFS is not set
920+# CONFIG_SCSI_CXGB3_ISCSI is not set
921+# CONFIG_SCSI_CXGB4_ISCSI is not set
922+# CONFIG_SCSI_BNX2_ISCSI is not set
923+# CONFIG_SCSI_BNX2X_FCOE is not set
924+# CONFIG_BE2ISCSI is not set
925+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
926+# CONFIG_SCSI_HPSA is not set
927+# CONFIG_SCSI_3W_9XXX is not set
928+# CONFIG_SCSI_3W_SAS is not set
929+# CONFIG_SCSI_ACARD is not set
930+# CONFIG_SCSI_AACRAID is not set
931+# CONFIG_SCSI_AIC7XXX is not set
932+# CONFIG_SCSI_AIC7XXX_OLD is not set
933+# CONFIG_SCSI_AIC79XX is not set
934+# CONFIG_SCSI_AIC94XX is not set
935+# CONFIG_SCSI_MVSAS is not set
936+# CONFIG_SCSI_DPT_I2O is not set
937+# CONFIG_SCSI_ADVANSYS is not set
938+# CONFIG_SCSI_ARCMSR is not set
939+# CONFIG_MEGARAID_NEWGEN is not set
940+# CONFIG_MEGARAID_LEGACY is not set
941+# CONFIG_MEGARAID_SAS is not set
942+# CONFIG_SCSI_MPT2SAS is not set
943+# CONFIG_SCSI_HPTIOP is not set
944+# CONFIG_LIBFC is not set
945+# CONFIG_LIBFCOE is not set
946+# CONFIG_FCOE is not set
947+# CONFIG_SCSI_DMX3191D is not set
948+# CONFIG_SCSI_FUTURE_DOMAIN is not set
949+# CONFIG_SCSI_IPS is not set
950+# CONFIG_SCSI_INITIO is not set
951+# CONFIG_SCSI_INIA100 is not set
952+# CONFIG_SCSI_STEX is not set
953+# CONFIG_SCSI_SYM53C8XX_2 is not set
954+# CONFIG_SCSI_IPR is not set
955+# CONFIG_SCSI_QLOGIC_1280 is not set
956+# CONFIG_SCSI_QLA_FC is not set
957+# CONFIG_SCSI_QLA_ISCSI is not set
958+# CONFIG_SCSI_LPFC is not set
959+# CONFIG_SCSI_DC395x is not set
960+# CONFIG_SCSI_DC390T is not set
961+# CONFIG_SCSI_NSP32 is not set
962+# CONFIG_SCSI_DEBUG is not set
963+# CONFIG_SCSI_PMCRAID is not set
964+# CONFIG_SCSI_PM8001 is not set
965+# CONFIG_SCSI_SRP is not set
966+# CONFIG_SCSI_BFA_FC is not set
967+# CONFIG_SCSI_DH is not set
968+# CONFIG_SCSI_OSD_INITIATOR is not set
969+CONFIG_ATA=y
970+# CONFIG_ATA_NONSTANDARD is not set
971+CONFIG_ATA_VERBOSE_ERROR=y
972+# CONFIG_SATA_PMP is not set
973+
974+#
975+# Controllers with non-SFF native interface
976+#
977+# CONFIG_SATA_AHCI is not set
978+CONFIG_SATA_AHCI_PLATFORM=y
979+# CONFIG_SATA_INIC162X is not set
980+# CONFIG_SATA_ACARD_AHCI is not set
981+# CONFIG_SATA_SIL24 is not set
982+CONFIG_ATA_SFF=y
983+
984+#
985+# SFF controllers with custom DMA interface
986+#
987+# CONFIG_PDC_ADMA is not set
988+# CONFIG_SATA_QSTOR is not set
989+# CONFIG_SATA_SX4 is not set
990+CONFIG_ATA_BMDMA=y
991+
992+#
993+# SATA SFF controllers with BMDMA
994+#
995+# CONFIG_ATA_PIIX is not set
996+# CONFIG_SATA_MV is not set
997+# CONFIG_SATA_NV is not set
998+# CONFIG_SATA_PROMISE is not set
999+# CONFIG_SATA_SIL is not set
1000+# CONFIG_SATA_SIS is not set
1001+# CONFIG_SATA_SVW is not set
1002+# CONFIG_SATA_ULI is not set
1003+# CONFIG_SATA_VIA is not set
1004+# CONFIG_SATA_VITESSE is not set
1005+
1006+#
1007+# PATA SFF controllers with BMDMA
1008+#
1009+# CONFIG_PATA_ALI is not set
1010+# CONFIG_PATA_AMD is not set
1011+# CONFIG_PATA_ARASAN_CF is not set
1012+# CONFIG_PATA_ARTOP is not set
1013+# CONFIG_PATA_ATIIXP is not set
1014+# CONFIG_PATA_ATP867X is not set
1015+# CONFIG_PATA_CMD64X is not set
1016+# CONFIG_PATA_CS5520 is not set
1017+# CONFIG_PATA_CS5530 is not set
1018+# CONFIG_PATA_CS5536 is not set
1019+# CONFIG_PATA_CYPRESS is not set
1020+# CONFIG_PATA_EFAR is not set
1021+# CONFIG_PATA_HPT366 is not set
1022+# CONFIG_PATA_HPT37X is not set
1023+# CONFIG_PATA_HPT3X2N is not set
1024+# CONFIG_PATA_HPT3X3 is not set
1025+# CONFIG_PATA_IT8213 is not set
1026+# CONFIG_PATA_IT821X is not set
1027+# CONFIG_PATA_JMICRON is not set
1028+# CONFIG_PATA_MARVELL is not set
1029+# CONFIG_PATA_NETCELL is not set
1030+# CONFIG_PATA_NINJA32 is not set
1031+# CONFIG_PATA_NS87415 is not set
1032+# CONFIG_PATA_OLDPIIX is not set
1033+# CONFIG_PATA_OPTIDMA is not set
1034+# CONFIG_PATA_PDC2027X is not set
1035+# CONFIG_PATA_PDC_OLD is not set
1036+# CONFIG_PATA_RADISYS is not set
1037+# CONFIG_PATA_RDC is not set
1038+# CONFIG_PATA_SC1200 is not set
1039+# CONFIG_PATA_SCH is not set
1040+# CONFIG_PATA_SERVERWORKS is not set
1041+# CONFIG_PATA_SIL680 is not set
1042+# CONFIG_PATA_SIS is not set
1043+# CONFIG_PATA_TOSHIBA is not set
1044+# CONFIG_PATA_TRIFLEX is not set
1045+# CONFIG_PATA_VIA is not set
1046+# CONFIG_PATA_WINBOND is not set
1047+
1048+#
1049+# PIO-only SFF controllers
1050+#
1051+# CONFIG_PATA_CMD640_PCI is not set
1052+# CONFIG_PATA_MPIIX is not set
1053+# CONFIG_PATA_NS87410 is not set
1054+# CONFIG_PATA_OPTI is not set
1055+# CONFIG_PATA_PLATFORM is not set
1056+# CONFIG_PATA_RZ1000 is not set
1057+
1058+#
1059+# Generic fallback / legacy drivers
1060+#
1061+# CONFIG_ATA_GENERIC is not set
1062+# CONFIG_PATA_LEGACY is not set
1063+# CONFIG_MD is not set
1064+# CONFIG_TARGET_CORE is not set
1065+# CONFIG_FUSION is not set
1066+
1067+#
1068+# IEEE 1394 (FireWire) support
1069+#
1070+# CONFIG_FIREWIRE is not set
1071+# CONFIG_FIREWIRE_NOSY is not set
1072+# CONFIG_I2O is not set
1073+CONFIG_NETDEVICES=y
1074+# CONFIG_DUMMY is not set
1075+# CONFIG_BONDING is not set
1076+# CONFIG_MACVLAN is not set
1077+# CONFIG_EQUALIZER is not set
1078+CONFIG_TUN=y
1079+# CONFIG_VETH is not set
1080+# CONFIG_ARCNET is not set
1081+CONFIG_MII=y
1082+CONFIG_PHYLIB=y
1083+
1084+#
1085+# MII PHY device drivers
1086+#
1087+# CONFIG_MARVELL_PHY is not set
1088+# CONFIG_DAVICOM_PHY is not set
1089+# CONFIG_QSEMI_PHY is not set
1090+# CONFIG_LXT_PHY is not set
1091+# CONFIG_CICADA_PHY is not set
1092+# CONFIG_VITESSE_PHY is not set
1093+# CONFIG_SMSC_PHY is not set
1094+# CONFIG_BROADCOM_PHY is not set
1095+# CONFIG_ICPLUS_PHY is not set
1096+# CONFIG_REALTEK_PHY is not set
1097+# CONFIG_NATIONAL_PHY is not set
1098+# CONFIG_STE10XP is not set
1099+# CONFIG_LSI_ET1011C_PHY is not set
1100+CONFIG_MICREL_PHY=y
1101+# CONFIG_FIXED_PHY is not set
1102+# CONFIG_MDIO_BITBANG is not set
1103+CONFIG_NET_ETHERNET=y
1104+# CONFIG_AX88796 is not set
1105+# CONFIG_HAPPYMEAL is not set
1106+# CONFIG_SUNGEM is not set
1107+# CONFIG_CASSINI is not set
1108+# CONFIG_NET_VENDOR_3COM is not set
1109+# CONFIG_SMC91X is not set
1110+# CONFIG_DM9000 is not set
1111+# CONFIG_ENC28J60 is not set
1112+# CONFIG_ETHOC is not set
1113+# CONFIG_SMC911X is not set
1114+# CONFIG_SMSC911X is not set
1115+# CONFIG_DNET is not set
1116+# CONFIG_NET_TULIP is not set
1117+# CONFIG_HP100 is not set
1118+# CONFIG_IBM_NEW_EMAC_ZMII is not set
1119+# CONFIG_IBM_NEW_EMAC_RGMII is not set
1120+# CONFIG_IBM_NEW_EMAC_TAH is not set
1121+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
1122+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
1123+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
1124+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
1125+# CONFIG_NET_PCI is not set
1126+# CONFIG_B44 is not set
1127+# CONFIG_KS8842 is not set
1128+# CONFIG_KS8851 is not set
1129+# CONFIG_KS8851_MLL is not set
1130+CONFIG_FEC=y
1131+# CONFIG_FEC_NAPI is not set
1132+# CONFIG_FEC_1588 is not set
1133+# CONFIG_ATL2 is not set
1134+# CONFIG_FTMAC100 is not set
1135+# CONFIG_NETDEV_1000 is not set
1136+# CONFIG_NETDEV_10000 is not set
1137+# CONFIG_TR is not set
1138+CONFIG_WLAN=y
1139+# CONFIG_LIBERTAS_THINFIRM is not set
1140+# CONFIG_ATMEL is not set
1141+# CONFIG_AT76C50X_USB is not set
1142+# CONFIG_PRISM54 is not set
1143+# CONFIG_USB_ZD1201 is not set
1144+# CONFIG_USB_NET_RNDIS_WLAN is not set
1145+# CONFIG_RTL8180 is not set
1146+# CONFIG_RTL8187 is not set
1147+# CONFIG_ADM8211 is not set
1148+# CONFIG_MAC80211_HWSIM is not set
1149+# CONFIG_MWL8K is not set
1150+# CONFIG_WIFI_CONTROL_FUNC is not set
1151+# CONFIG_ATH_COMMON is not set
1152+# CONFIG_B43 is not set
1153+# CONFIG_B43LEGACY is not set
1154+# CONFIG_BCM4329 is not set
1155+# CONFIG_BCMDHD is not set
1156+CONFIG_HOSTAP=y
1157+# CONFIG_HOSTAP_FIRMWARE is not set
1158+# CONFIG_HOSTAP_PLX is not set
1159+# CONFIG_HOSTAP_PCI is not set
1160+# CONFIG_IPW2100 is not set
1161+# CONFIG_IPW2200 is not set
1162+# CONFIG_IWLAGN is not set
1163+# CONFIG_IWL4965 is not set
1164+# CONFIG_IWL3945 is not set
1165+# CONFIG_IWM is not set
1166+# CONFIG_LIBERTAS is not set
1167+# CONFIG_HERMES is not set
1168+# CONFIG_P54_COMMON is not set
1169+# CONFIG_RT2X00 is not set
1170+# CONFIG_RTL8192CE is not set
1171+# CONFIG_RTL8192SE is not set
1172+# CONFIG_RTL8192CU is not set
1173+# CONFIG_WL1251 is not set
1174+CONFIG_WL12XX_MENU=y
1175+CONFIG_WL12XX=y
1176+# CONFIG_WL12XX_HT is not set
1177+# CONFIG_WL12XX_SPI is not set
1178+CONFIG_WL12XX_SDIO=m
1179+# CONFIG_WL12XX_SDIO_TEST is not set
1180+CONFIG_WL12XX_PLATFORM_DATA=y
1181+# CONFIG_ZD1211RW is not set
1182+# CONFIG_MWIFIEX is not set
1183+
1184+#
1185+# Enable WiMAX (Networking options) to see the WiMAX drivers
1186+#
1187+
1188+#
1189+# USB Network Adapters
1190+#
1191+# CONFIG_USB_CATC is not set
1192+# CONFIG_USB_KAWETH is not set
1193+# CONFIG_USB_PEGASUS is not set
1194+# CONFIG_USB_RTL8150 is not set
1195+# CONFIG_USB_USBNET is not set
1196+# CONFIG_USB_HSO is not set
1197+# CONFIG_USB_IPHETH is not set
1198+# CONFIG_WAN is not set
1199+
1200+#
1201+# CAIF transport drivers
1202+#
1203+# CONFIG_PPP is not set
1204+# CONFIG_SLIP is not set
1205+# CONFIG_NETCONSOLE is not set
1206+# CONFIG_NETPOLL is not set
1207+# CONFIG_NET_POLL_CONTROLLER is not set
1208+# CONFIG_ISDN is not set
1209+# CONFIG_PHONE is not set
1210+
1211+#
1212+# Input device support
1213+#
1214+CONFIG_INPUT=y
1215+# CONFIG_INPUT_FF_MEMLESS is not set
1216+CONFIG_INPUT_POLLDEV=y
1217+# CONFIG_INPUT_SPARSEKMAP is not set
1218+
1219+#
1220+# Userland interfaces
1221+#
1222+CONFIG_INPUT_MOUSEDEV=y
1223+CONFIG_INPUT_MOUSEDEV_PSAUX=y
1224+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
1225+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
1226+# CONFIG_INPUT_JOYDEV is not set
1227+CONFIG_INPUT_EVDEV=y
1228+# CONFIG_INPUT_EVBUG is not set
1229+# CONFIG_INPUT_APMPOWER is not set
1230+
1231+#
1232+# Input Device Drivers
1233+#
1234+CONFIG_INPUT_KEYBOARD=y
1235+# CONFIG_KEYBOARD_ADP5588 is not set
1236+# CONFIG_KEYBOARD_ADP5589 is not set
1237+CONFIG_KEYBOARD_ATKBD=y
1238+# CONFIG_KEYBOARD_QT1070 is not set
1239+# CONFIG_KEYBOARD_QT2160 is not set
1240+# CONFIG_KEYBOARD_LKKBD is not set
1241+CONFIG_KEYBOARD_GPIO=y
1242+# CONFIG_KEYBOARD_TCA6416 is not set
1243+# CONFIG_KEYBOARD_MATRIX is not set
1244+# CONFIG_KEYBOARD_LM8323 is not set
1245+# CONFIG_KEYBOARD_MAX7359 is not set
1246+# CONFIG_KEYBOARD_MCS is not set
1247+# CONFIG_KEYBOARD_MPR121 is not set
1248+# CONFIG_KEYBOARD_IMX is not set
1249+# CONFIG_KEYBOARD_NEWTON is not set
1250+# CONFIG_KEYBOARD_OPENCORES is not set
1251+# CONFIG_KEYBOARD_STOWAWAY is not set
1252+# CONFIG_KEYBOARD_SUNKBD is not set
1253+# CONFIG_KEYBOARD_XTKBD is not set
1254+# CONFIG_KEYBOARD_MXC is not set
1255+# CONFIG_INPUT_MOUSE is not set
1256+# CONFIG_INPUT_JOYSTICK is not set
1257+# CONFIG_INPUT_TABLET is not set
1258+CONFIG_INPUT_TOUCHSCREEN=y
1259+# CONFIG_TOUCHSCREEN_ADS7846 is not set
1260+# CONFIG_TOUCHSCREEN_AD7877 is not set
1261+# CONFIG_TOUCHSCREEN_AD7879 is not set
1262+# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
1263+# CONFIG_TOUCHSCREEN_BU21013 is not set
1264+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
1265+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
1266+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
1267+# CONFIG_TOUCHSCREEN_EETI is not set
1268+CONFIG_TOUCHSCREEN_EGALAX=y
1269+# CONFIG_TOUCHSCREEN_ELAN is not set
1270+# CONFIG_TOUCHSCREEN_FUJITSU is not set
1271+# CONFIG_TOUCHSCREEN_GUNZE is not set
1272+# CONFIG_TOUCHSCREEN_ELO is not set
1273+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
1274+# CONFIG_TOUCHSCREEN_MAX11801 is not set
1275+CONFIG_TOUCHSCREEN_FT5X06=y
1276+CONFIG_TOUCHSCREEN_FT5X06_SINGLE_TOUCH=y
1277+# CONFIG_TOUCHSCREEN_MCS5000 is not set
1278+# CONFIG_TOUCHSCREEN_MTOUCH is not set
1279+# CONFIG_TOUCHSCREEN_INEXIO is not set
1280+# CONFIG_TOUCHSCREEN_MK712 is not set
1281+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1282+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set
1283+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1284+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1285+# CONFIG_TOUCHSCREEN_WM97XX is not set
1286+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1287+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1288+# CONFIG_TOUCHSCREEN_TSC2005 is not set
1289+# CONFIG_TOUCHSCREEN_TSC2007 is not set
1290+CONFIG_TOUCHSCREEN_TSC2004=y
1291+# CONFIG_TOUCHSCREEN_W90X900 is not set
1292+# CONFIG_TOUCHSCREEN_ST1232 is not set
1293+# CONFIG_TOUCHSCREEN_P1003 is not set
1294+# CONFIG_TOUCHSCREEN_TPS6507X is not set
1295+CONFIG_INPUT_MISC=y
1296+# CONFIG_INPUT_AD714X is not set
1297+# CONFIG_INPUT_ATI_REMOTE is not set
1298+# CONFIG_INPUT_ATI_REMOTE2 is not set
1299+# CONFIG_INPUT_KEYCHORD is not set
1300+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1301+# CONFIG_INPUT_POWERMATE is not set
1302+# CONFIG_INPUT_YEALINK is not set
1303+# CONFIG_INPUT_CM109 is not set
1304+CONFIG_INPUT_UINPUT=y
1305+# CONFIG_INPUT_GPIO is not set
1306+# CONFIG_INPUT_PCF8574 is not set
1307+# CONFIG_INPUT_PWM_BEEPER is not set
1308+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
1309+# CONFIG_INPUT_ADXL34X is not set
1310+# CONFIG_INPUT_CMA3000 is not set
1311+CONFIG_INPUT_ISL29023=y
1312+
1313+#
1314+# Hardware I/O ports
1315+#
1316+CONFIG_SERIO=y
1317+CONFIG_SERIO_SERPORT=y
1318+# CONFIG_SERIO_PCIPS2 is not set
1319+CONFIG_SERIO_LIBPS2=y
1320+# CONFIG_SERIO_RAW is not set
1321+# CONFIG_SERIO_ALTERA_PS2 is not set
1322+# CONFIG_SERIO_PS2MULT is not set
1323+# CONFIG_GAMEPORT is not set
1324+
1325+#
1326+# Character devices
1327+#
1328+CONFIG_VT=y
1329+CONFIG_CONSOLE_TRANSLATIONS=y
1330+CONFIG_VT_CONSOLE=y
1331+CONFIG_HW_CONSOLE=y
1332+CONFIG_VT_HW_CONSOLE_BINDING=y
1333+CONFIG_UNIX98_PTYS=y
1334+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1335+CONFIG_LEGACY_PTYS=y
1336+CONFIG_LEGACY_PTY_COUNT=256
1337+# CONFIG_SERIAL_NONSTANDARD is not set
1338+# CONFIG_NOZOMI is not set
1339+# CONFIG_N_GSM is not set
1340+# CONFIG_TRACE_SINK is not set
1341+CONFIG_DEVMEM=y
1342+CONFIG_DEVKMEM=y
1343+
1344+#
1345+# Serial drivers
1346+#
1347+# CONFIG_SERIAL_8250 is not set
1348+
1349+#
1350+# Non-8250 serial port support
1351+#
1352+# CONFIG_SERIAL_MAX3100 is not set
1353+# CONFIG_SERIAL_MAX3107 is not set
1354+# CONFIG_SERIAL_MFD_HSU is not set
1355+CONFIG_SERIAL_IMX=y
1356+CONFIG_SERIAL_IMX_CONSOLE=y
1357+CONFIG_SERIAL_CORE=y
1358+CONFIG_SERIAL_CORE_CONSOLE=y
1359+# CONFIG_SERIAL_JSM is not set
1360+# CONFIG_SERIAL_TIMBERDALE is not set
1361+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
1362+# CONFIG_SERIAL_ALTERA_UART is not set
1363+# CONFIG_SERIAL_IFX6X60 is not set
1364+# CONFIG_SERIAL_PCH_UART is not set
1365+# CONFIG_SERIAL_XILINX_PS_UART is not set
1366+# CONFIG_TTY_PRINTK is not set
1367+CONFIG_FSL_OTP=y
1368+# CONFIG_HVC_DCC is not set
1369+# CONFIG_IPMI_HANDLER is not set
1370+CONFIG_HW_RANDOM=y
1371+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1372+# CONFIG_R3964 is not set
1373+# CONFIG_APPLICOM is not set
1374+# CONFIG_RAW_DRIVER is not set
1375+# CONFIG_TCG_TPM is not set
1376+CONFIG_DEVPORT=y
1377+# CONFIG_DCC_TTY is not set
1378+# CONFIG_RAMOOPS is not set
1379+CONFIG_MXS_VIIM=y
1380+CONFIG_I2C=y
1381+CONFIG_I2C_BOARDINFO=y
1382+CONFIG_I2C_COMPAT=y
1383+CONFIG_I2C_CHARDEV=y
1384+# CONFIG_I2C_MUX is not set
1385+CONFIG_I2C_HELPER_AUTO=y
1386+
1387+#
1388+# I2C Hardware Bus support
1389+#
1390+
1391+#
1392+# PC SMBus host controller drivers
1393+#
1394+# CONFIG_I2C_ALI1535 is not set
1395+# CONFIG_I2C_ALI1563 is not set
1396+# CONFIG_I2C_ALI15X3 is not set
1397+# CONFIG_I2C_AMD756 is not set
1398+# CONFIG_I2C_AMD8111 is not set
1399+# CONFIG_I2C_I801 is not set
1400+# CONFIG_I2C_ISCH is not set
1401+# CONFIG_I2C_PIIX4 is not set
1402+# CONFIG_I2C_NFORCE2 is not set
1403+# CONFIG_I2C_SIS5595 is not set
1404+# CONFIG_I2C_SIS630 is not set
1405+# CONFIG_I2C_SIS96X is not set
1406+# CONFIG_I2C_VIA is not set
1407+# CONFIG_I2C_VIAPRO is not set
1408+
1409+#
1410+# I2C system bus drivers (mostly embedded / system-on-chip)
1411+#
1412+# CONFIG_I2C_DESIGNWARE is not set
1413+# CONFIG_I2C_GPIO is not set
1414+CONFIG_I2C_IMX=y
1415+# CONFIG_I2C_INTEL_MID is not set
1416+# CONFIG_I2C_OCORES is not set
1417+# CONFIG_I2C_PCA_PLATFORM is not set
1418+# CONFIG_I2C_PXA_PCI is not set
1419+# CONFIG_I2C_SIMTEC is not set
1420+# CONFIG_I2C_XILINX is not set
1421+# CONFIG_I2C_EG20T is not set
1422+
1423+#
1424+# External I2C/SMBus adapter drivers
1425+#
1426+# CONFIG_I2C_DIOLAN_U2C is not set
1427+# CONFIG_I2C_PARPORT_LIGHT is not set
1428+# CONFIG_I2C_TAOS_EVM is not set
1429+# CONFIG_I2C_TINY_USB is not set
1430+
1431+#
1432+# Other I2C/SMBus bus drivers
1433+#
1434+# CONFIG_I2C_STUB is not set
1435+# CONFIG_I2C_DEBUG_CORE is not set
1436+# CONFIG_I2C_DEBUG_ALGO is not set
1437+# CONFIG_I2C_DEBUG_BUS is not set
1438+CONFIG_SPI=y
1439+CONFIG_SPI_MASTER=y
1440+
1441+#
1442+# SPI Master Controller Drivers
1443+#
1444+# CONFIG_SPI_ALTERA is not set
1445+CONFIG_SPI_BITBANG=y
1446+# CONFIG_SPI_GPIO is not set
1447+CONFIG_SPI_IMX_VER_2_3=y
1448+CONFIG_SPI_IMX=y
1449+# CONFIG_SPI_OC_TINY is not set
1450+# CONFIG_SPI_PXA2XX_PCI is not set
1451+# CONFIG_SPI_TOPCLIFF_PCH is not set
1452+# CONFIG_SPI_XILINX is not set
1453+# CONFIG_SPI_DESIGNWARE is not set
1454+
1455+#
1456+# SPI Protocol Masters
1457+#
1458+# CONFIG_SPI_SPIDEV is not set
1459+# CONFIG_SPI_TLE62X0 is not set
1460+
1461+#
1462+# PPS support
1463+#
1464+# CONFIG_PPS is not set
1465+
1466+#
1467+# PPS generators support
1468+#
1469+
1470+#
1471+# PTP clock support
1472+#
1473+
1474+#
1475+# Enable Device Drivers -> PPS to see the PTP clock options.
1476+#
1477+CONFIG_ARCH_REQUIRE_GPIOLIB=y
1478+CONFIG_GPIOLIB=y
1479+CONFIG_GPIO_SYSFS=y
1480+
1481+#
1482+# Memory mapped GPIO drivers:
1483+#
1484+# CONFIG_GPIO_BASIC_MMIO is not set
1485+# CONFIG_GPIO_IT8761E is not set
1486+# CONFIG_GPIO_VX855 is not set
1487+
1488+#
1489+# I2C GPIO expanders:
1490+#
1491+# CONFIG_GPIO_MAX7300 is not set
1492+# CONFIG_GPIO_MAX732X is not set
1493+# CONFIG_GPIO_PCA953X_IRQ is not set
1494+# CONFIG_GPIO_PCF857X is not set
1495+# CONFIG_GPIO_SX150X is not set
1496+# CONFIG_GPIO_WM8994 is not set
1497+# CONFIG_GPIO_ADP5588 is not set
1498+
1499+#
1500+# PCI GPIO expanders:
1501+#
1502+# CONFIG_GPIO_BT8XX is not set
1503+# CONFIG_GPIO_ML_IOH is not set
1504+# CONFIG_GPIO_RDC321X is not set
1505+
1506+#
1507+# SPI GPIO expanders:
1508+#
1509+# CONFIG_GPIO_MAX7301 is not set
1510+# CONFIG_GPIO_MCP23S08 is not set
1511+# CONFIG_GPIO_MC33880 is not set
1512+# CONFIG_GPIO_74X164 is not set
1513+
1514+#
1515+# AC97 GPIO expanders:
1516+#
1517+
1518+#
1519+# MODULbus GPIO expanders:
1520+#
1521+# CONFIG_W1 is not set
1522+CONFIG_POWER_SUPPLY=y
1523+# CONFIG_POWER_SUPPLY_DEBUG is not set
1524+# CONFIG_PDA_POWER is not set
1525+# CONFIG_APM_POWER is not set
1526+# CONFIG_TEST_POWER is not set
1527+# CONFIG_BATTERY_DS2780 is not set
1528+# CONFIG_BATTERY_DS2782 is not set
1529+# CONFIG_BATTERY_BQ20Z75 is not set
1530+# CONFIG_BATTERY_BQ27x00 is not set
1531+# CONFIG_BATTERY_MAX17040 is not set
1532+# CONFIG_BATTERY_MAX17042 is not set
1533+# CONFIG_CHARGER_ISP1704 is not set
1534+# CONFIG_CHARGER_MAX8903 is not set
1535+# CONFIG_CHARGER_GPIO is not set
1536+CONFIG_HWMON=y
1537+# CONFIG_HWMON_VID is not set
1538+# CONFIG_HWMON_DEBUG_CHIP is not set
1539+
1540+#
1541+# Native drivers
1542+#
1543+# CONFIG_SENSORS_AD7414 is not set
1544+# CONFIG_SENSORS_AD7418 is not set
1545+# CONFIG_SENSORS_ADCXX is not set
1546+# CONFIG_SENSORS_ADM1021 is not set
1547+# CONFIG_SENSORS_ADM1025 is not set
1548+# CONFIG_SENSORS_ADM1026 is not set
1549+# CONFIG_SENSORS_ADM1029 is not set
1550+# CONFIG_SENSORS_ADM1031 is not set
1551+# CONFIG_SENSORS_ADM9240 is not set
1552+# CONFIG_SENSORS_ADT7411 is not set
1553+# CONFIG_SENSORS_ADT7462 is not set
1554+# CONFIG_SENSORS_ADT7470 is not set
1555+# CONFIG_SENSORS_ADT7475 is not set
1556+# CONFIG_SENSORS_ASC7621 is not set
1557+# CONFIG_SENSORS_ATXP1 is not set
1558+# CONFIG_SENSORS_DS620 is not set
1559+# CONFIG_SENSORS_DS1621 is not set
1560+# CONFIG_SENSORS_I5K_AMB is not set
1561+# CONFIG_SENSORS_F71805F is not set
1562+# CONFIG_SENSORS_F71882FG is not set
1563+# CONFIG_SENSORS_F75375S is not set
1564+# CONFIG_SENSORS_G760A is not set
1565+# CONFIG_SENSORS_GL518SM is not set
1566+# CONFIG_SENSORS_GL520SM is not set
1567+# CONFIG_SENSORS_GPIO_FAN is not set
1568+# CONFIG_SENSORS_IT87 is not set
1569+# CONFIG_SENSORS_JC42 is not set
1570+# CONFIG_SENSORS_LINEAGE is not set
1571+# CONFIG_SENSORS_LM63 is not set
1572+# CONFIG_SENSORS_LM70 is not set
1573+# CONFIG_SENSORS_LM73 is not set
1574+# CONFIG_SENSORS_LM75 is not set
1575+# CONFIG_SENSORS_LM77 is not set
1576+# CONFIG_SENSORS_LM78 is not set
1577+# CONFIG_SENSORS_LM80 is not set
1578+# CONFIG_SENSORS_LM83 is not set
1579+# CONFIG_SENSORS_LM85 is not set
1580+# CONFIG_SENSORS_LM87 is not set
1581+# CONFIG_SENSORS_LM90 is not set
1582+# CONFIG_SENSORS_LM92 is not set
1583+# CONFIG_SENSORS_LM93 is not set
1584+# CONFIG_SENSORS_LTC4151 is not set
1585+# CONFIG_SENSORS_LTC4215 is not set
1586+# CONFIG_SENSORS_LTC4245 is not set
1587+# CONFIG_SENSORS_LTC4261 is not set
1588+# CONFIG_SENSORS_LM95241 is not set
1589+# CONFIG_SENSORS_MAX1111 is not set
1590+# CONFIG_SENSORS_MAX16065 is not set
1591+# CONFIG_SENSORS_MAX1619 is not set
1592+# CONFIG_SENSORS_MAX6639 is not set
1593+# CONFIG_SENSORS_MAX6642 is not set
1594+CONFIG_SENSORS_MAX17135=y
1595+# CONFIG_SENSORS_MAX6650 is not set
1596+# CONFIG_SENSORS_PC87360 is not set
1597+# CONFIG_SENSORS_PC87427 is not set
1598+# CONFIG_SENSORS_PCF8591 is not set
1599+# CONFIG_PMBUS is not set
1600+# CONFIG_SENSORS_SHT15 is not set
1601+# CONFIG_SENSORS_SHT21 is not set
1602+# CONFIG_SENSORS_SIS5595 is not set
1603+# CONFIG_SENSORS_SMM665 is not set
1604+# CONFIG_SENSORS_DME1737 is not set
1605+# CONFIG_SENSORS_EMC1403 is not set
1606+# CONFIG_SENSORS_EMC2103 is not set
1607+# CONFIG_SENSORS_EMC6W201 is not set
1608+# CONFIG_SENSORS_SMSC47M1 is not set
1609+# CONFIG_SENSORS_SMSC47M192 is not set
1610+# CONFIG_SENSORS_SMSC47B397 is not set
1611+# CONFIG_SENSORS_SCH5627 is not set
1612+# CONFIG_SENSORS_ADS1015 is not set
1613+# CONFIG_SENSORS_ADS7828 is not set
1614+# CONFIG_SENSORS_ADS7871 is not set
1615+# CONFIG_SENSORS_AMC6821 is not set
1616+# CONFIG_SENSORS_THMC50 is not set
1617+# CONFIG_SENSORS_TMP102 is not set
1618+# CONFIG_SENSORS_TMP401 is not set
1619+# CONFIG_SENSORS_TMP421 is not set
1620+# CONFIG_SENSORS_VIA686A is not set
1621+# CONFIG_SENSORS_VT1211 is not set
1622+# CONFIG_SENSORS_VT8231 is not set
1623+# CONFIG_SENSORS_W83781D is not set
1624+# CONFIG_SENSORS_W83791D is not set
1625+# CONFIG_SENSORS_W83792D is not set
1626+# CONFIG_SENSORS_W83793 is not set
1627+# CONFIG_SENSORS_W83795 is not set
1628+# CONFIG_SENSORS_W83L785TS is not set
1629+# CONFIG_SENSORS_W83L786NG is not set
1630+# CONFIG_SENSORS_W83627HF is not set
1631+# CONFIG_SENSORS_W83627EHF is not set
1632+CONFIG_SENSORS_MAG3110=y
1633+# CONFIG_MXC_MMA8450 is not set
1634+CONFIG_MXC_MMA8451=y
1635+CONFIG_THERMAL=y
1636+# CONFIG_THERMAL_HWMON is not set
1637+CONFIG_WATCHDOG=y
1638+CONFIG_WATCHDOG_NOWAYOUT=y
1639+
1640+#
1641+# Watchdog Device Drivers
1642+#
1643+# CONFIG_SOFT_WATCHDOG is not set
1644+# CONFIG_MPCORE_WATCHDOG is not set
1645+# CONFIG_MAX63XX_WATCHDOG is not set
1646+CONFIG_IMX2_WDT=y
1647+# CONFIG_ALIM7101_WDT is not set
1648+
1649+#
1650+# PCI-based Watchdog Cards
1651+#
1652+# CONFIG_PCIPCWATCHDOG is not set
1653+# CONFIG_WDTPCI is not set
1654+
1655+#
1656+# USB-based Watchdog Cards
1657+#
1658+# CONFIG_USBPCWATCHDOG is not set
1659+CONFIG_SSB_POSSIBLE=y
1660+
1661+#
1662+# Sonics Silicon Backplane
1663+#
1664+# CONFIG_SSB is not set
1665+CONFIG_BCMA_POSSIBLE=y
1666+
1667+#
1668+# Broadcom specific AMBA
1669+#
1670+# CONFIG_BCMA is not set
1671+CONFIG_MFD_SUPPORT=y
1672+CONFIG_MFD_CORE=y
1673+# CONFIG_MFD_88PM860X is not set
1674+# CONFIG_MFD_SM501 is not set
1675+# CONFIG_MFD_ASIC3 is not set
1676+# CONFIG_HTC_EGPIO is not set
1677+# CONFIG_HTC_PASIC3 is not set
1678+# CONFIG_HTC_I2CPLD is not set
1679+# CONFIG_UCB1400_CORE is not set
1680+# CONFIG_TPS6105X is not set
1681+# CONFIG_TPS65010 is not set
1682+# CONFIG_TPS6507X is not set
1683+# CONFIG_MFD_TPS6586X is not set
1684+# CONFIG_TWL4030_CORE is not set
1685+# CONFIG_MFD_STMPE is not set
1686+# CONFIG_MFD_TC3589X is not set
1687+# CONFIG_MFD_TMIO is not set
1688+# CONFIG_MFD_T7L66XB is not set
1689+# CONFIG_MFD_TC6387XB is not set
1690+# CONFIG_MFD_TC6393XB is not set
1691+# CONFIG_PMIC_DA903X is not set
1692+# CONFIG_PMIC_ADP5520 is not set
1693+# CONFIG_MFD_MAX8925 is not set
1694+# CONFIG_MFD_MAX8997 is not set
1695+# CONFIG_MFD_MAX8998 is not set
1696+# CONFIG_MFD_WM8400 is not set
1697+# CONFIG_MFD_WM831X_I2C is not set
1698+# CONFIG_MFD_WM831X_SPI is not set
1699+# CONFIG_MFD_WM8350_I2C is not set
1700+CONFIG_MFD_WM8994=y
1701+# CONFIG_MFD_PCF50633 is not set
1702+# CONFIG_PMIC_DIALOG is not set
1703+# CONFIG_MFD_MC_PMIC is not set
1704+# CONFIG_MFD_MC34708 is not set
1705+CONFIG_MFD_PFUZE=y
1706+# CONFIG_MFD_MC13XXX is not set
1707+# CONFIG_ABX500_CORE is not set
1708+# CONFIG_EZX_PCAP is not set
1709+# CONFIG_MFD_TIMBERDALE is not set
1710+# CONFIG_LPC_SCH is not set
1711+# CONFIG_MFD_RDC321X is not set
1712+# CONFIG_MFD_JANZ_CMODIO is not set
1713+# CONFIG_MFD_VX855 is not set
1714+# CONFIG_MFD_WL1273_CORE is not set
1715+# CONFIG_MFD_TPS65910 is not set
1716+CONFIG_MFD_MAX17135=y
1717+CONFIG_MFD_MXC_HDMI=y
1718+CONFIG_REGULATOR=y
1719+# CONFIG_REGULATOR_DEBUG is not set
1720+# CONFIG_REGULATOR_DUMMY is not set
1721+CONFIG_REGULATOR_FIXED_VOLTAGE=y
1722+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1723+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
1724+# CONFIG_REGULATOR_BQ24022 is not set
1725+# CONFIG_REGULATOR_MAX1586 is not set
1726+# CONFIG_REGULATOR_MAX8649 is not set
1727+# CONFIG_REGULATOR_MAX8660 is not set
1728+# CONFIG_REGULATOR_MAX8952 is not set
1729+# CONFIG_REGULATOR_WM8994 is not set
1730+# CONFIG_REGULATOR_LP3971 is not set
1731+# CONFIG_REGULATOR_LP3972 is not set
1732+# CONFIG_REGULATOR_MC34708 is not set
1733+CONFIG_REGULATOR_PFUZE100=y
1734+# CONFIG_REGULATOR_TPS65023 is not set
1735+# CONFIG_REGULATOR_TPS6507X is not set
1736+# CONFIG_REGULATOR_ISL6271A is not set
1737+# CONFIG_REGULATOR_AD5398 is not set
1738+CONFIG_REGULATOR_ANATOP=y
1739+# CONFIG_REGULATOR_TPS6524X is not set
1740+CONFIG_REGULATOR_MAX17135=y
1741+CONFIG_MEDIA_SUPPORT=y
1742+
1743+#
1744+# Multimedia core support
1745+#
1746+# CONFIG_MEDIA_CONTROLLER is not set
1747+CONFIG_VIDEO_DEV=y
1748+CONFIG_VIDEO_V4L2_COMMON=y
1749+# CONFIG_DVB_CORE is not set
1750+CONFIG_VIDEO_MEDIA=y
1751+
1752+#
1753+# Multimedia drivers
1754+#
1755+# CONFIG_RC_CORE is not set
1756+# CONFIG_MEDIA_ATTACH is not set
1757+CONFIG_MEDIA_TUNER=y
1758+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
1759+CONFIG_MEDIA_TUNER_SIMPLE=y
1760+CONFIG_MEDIA_TUNER_TDA8290=y
1761+CONFIG_MEDIA_TUNER_TDA827X=y
1762+CONFIG_MEDIA_TUNER_TDA18271=y
1763+CONFIG_MEDIA_TUNER_TDA9887=y
1764+CONFIG_MEDIA_TUNER_TEA5761=y
1765+CONFIG_MEDIA_TUNER_TEA5767=y
1766+CONFIG_MEDIA_TUNER_MT20XX=y
1767+CONFIG_MEDIA_TUNER_XC2028=y
1768+CONFIG_MEDIA_TUNER_XC5000=y
1769+CONFIG_MEDIA_TUNER_MC44S803=y
1770+CONFIG_VIDEO_V4L2=y
1771+CONFIG_VIDEOBUF_GEN=y
1772+CONFIG_VIDEOBUF_DMA_CONTIG=y
1773+CONFIG_VIDEO_CAPTURE_DRIVERS=y
1774+# CONFIG_VIDEO_ADV_DEBUG is not set
1775+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1776+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
1777+
1778+#
1779+# Encoders, decoders, sensors and other helper chips
1780+#
1781+
1782+#
1783+# Audio decoders, processors and mixers
1784+#
1785+# CONFIG_VIDEO_TVAUDIO is not set
1786+# CONFIG_VIDEO_TDA7432 is not set
1787+# CONFIG_VIDEO_TDA9840 is not set
1788+# CONFIG_VIDEO_TEA6415C is not set
1789+# CONFIG_VIDEO_TEA6420 is not set
1790+# CONFIG_VIDEO_MSP3400 is not set
1791+# CONFIG_VIDEO_CS5345 is not set
1792+# CONFIG_VIDEO_CS53L32A is not set
1793+# CONFIG_VIDEO_TLV320AIC23B is not set
1794+# CONFIG_VIDEO_WM8775 is not set
1795+# CONFIG_VIDEO_WM8739 is not set
1796+# CONFIG_VIDEO_VP27SMPX is not set
1797+
1798+#
1799+# RDS decoders
1800+#
1801+# CONFIG_VIDEO_SAA6588 is not set
1802+
1803+#
1804+# Video decoders
1805+#
1806+# CONFIG_VIDEO_ADV7180 is not set
1807+# CONFIG_VIDEO_BT819 is not set
1808+# CONFIG_VIDEO_BT856 is not set
1809+# CONFIG_VIDEO_BT866 is not set
1810+# CONFIG_VIDEO_KS0127 is not set
1811+# CONFIG_VIDEO_SAA7110 is not set
1812+# CONFIG_VIDEO_SAA711X is not set
1813+# CONFIG_VIDEO_SAA7191 is not set
1814+# CONFIG_VIDEO_TVP514X is not set
1815+# CONFIG_VIDEO_TVP5150 is not set
1816+# CONFIG_VIDEO_TVP7002 is not set
1817+# CONFIG_VIDEO_VPX3220 is not set
1818+
1819+#
1820+# Video and audio decoders
1821+#
1822+# CONFIG_VIDEO_SAA717X is not set
1823+# CONFIG_VIDEO_CX25840 is not set
1824+
1825+#
1826+# MPEG video encoders
1827+#
1828+# CONFIG_VIDEO_CX2341X is not set
1829+
1830+#
1831+# Video encoders
1832+#
1833+# CONFIG_VIDEO_SAA7127 is not set
1834+# CONFIG_VIDEO_SAA7185 is not set
1835+# CONFIG_VIDEO_ADV7170 is not set
1836+# CONFIG_VIDEO_ADV7175 is not set
1837+# CONFIG_VIDEO_ADV7343 is not set
1838+# CONFIG_VIDEO_AK881X is not set
1839+
1840+#
1841+# Camera sensor devices
1842+#
1843+# CONFIG_VIDEO_OV7670 is not set
1844+# CONFIG_VIDEO_MT9V011 is not set
1845+# CONFIG_VIDEO_TCM825X is not set
1846+
1847+#
1848+# Video improvement chips
1849+#
1850+# CONFIG_VIDEO_UPD64031A is not set
1851+# CONFIG_VIDEO_UPD64083 is not set
1852+
1853+#
1854+# Miscelaneous helper chips
1855+#
1856+# CONFIG_VIDEO_THS7303 is not set
1857+# CONFIG_VIDEO_M52790 is not set
1858+# CONFIG_VIDEO_VIVI is not set
1859+CONFIG_VIDEO_MXC_CAMERA=m
1860+
1861+#
1862+# MXC Camera/V4L2 PRP Features support
1863+#
1864+CONFIG_VIDEO_MXC_IPU_CAMERA=y
1865+# CONFIG_VIDEO_MXC_CSI_CAMERA is not set
1866+# CONFIG_MXC_CAMERA_MICRON111 is not set
1867+# CONFIG_MXC_CAMERA_OV2640 is not set
1868+CONFIG_MXC_CAMERA_OV3640=m
1869+CONFIG_MXC_CAMERA_OV5640=m
1870+CONFIG_MXC_CAMERA_OV8820_MIPI=m
1871+CONFIG_MXC_CAMERA_OV5642=m
1872+CONFIG_MXC_TVIN_ADV7180=m
1873+CONFIG_MXC_CAMERA_OV5640_MIPI=m
1874+CONFIG_MXC_CAMERA_SENSOR_CLK=m
1875+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
1876+CONFIG_MXC_IPU_PRP_ENC=m
1877+CONFIG_MXC_IPU_CSI_ENC=m
1878+CONFIG_VIDEO_MXC_OUTPUT=y
1879+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
1880+# CONFIG_VIDEO_MXC_IPUV1_WVGA_OUTPUT is not set
1881+# CONFIG_VIDEO_MXC_OPL is not set
1882+# CONFIG_VIDEO_CPIA2 is not set
1883+# CONFIG_VIDEO_SAA7134 is not set
1884+# CONFIG_VIDEO_MXB is not set
1885+# CONFIG_VIDEO_HEXIUM_ORION is not set
1886+# CONFIG_VIDEO_HEXIUM_GEMINI is not set
1887+# CONFIG_VIDEO_TIMBERDALE is not set
1888+# CONFIG_VIDEO_CAFE_CCIC is not set
1889+# CONFIG_VIDEO_SR030PC30 is not set
1890+# CONFIG_VIDEO_NOON010PC30 is not set
1891+# CONFIG_SOC_CAMERA is not set
1892+CONFIG_V4L_USB_DRIVERS=y
1893+CONFIG_USB_VIDEO_CLASS=m
1894+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
1895+CONFIG_USB_GSPCA=m
1896+# CONFIG_USB_M5602 is not set
1897+# CONFIG_USB_STV06XX is not set
1898+# CONFIG_USB_GL860 is not set
1899+# CONFIG_USB_GSPCA_BENQ is not set
1900+# CONFIG_USB_GSPCA_CONEX is not set
1901+# CONFIG_USB_GSPCA_CPIA1 is not set
1902+# CONFIG_USB_GSPCA_ETOMS is not set
1903+# CONFIG_USB_GSPCA_FINEPIX is not set
1904+# CONFIG_USB_GSPCA_JEILINJ is not set
1905+# CONFIG_USB_GSPCA_KINECT is not set
1906+# CONFIG_USB_GSPCA_KONICA is not set
1907+# CONFIG_USB_GSPCA_MARS is not set
1908+# CONFIG_USB_GSPCA_MR97310A is not set
1909+# CONFIG_USB_GSPCA_NW80X is not set
1910+# CONFIG_USB_GSPCA_OV519 is not set
1911+# CONFIG_USB_GSPCA_OV534 is not set
1912+# CONFIG_USB_GSPCA_OV534_9 is not set
1913+# CONFIG_USB_GSPCA_PAC207 is not set
1914+# CONFIG_USB_GSPCA_PAC7302 is not set
1915+# CONFIG_USB_GSPCA_PAC7311 is not set
1916+# CONFIG_USB_GSPCA_SN9C2028 is not set
1917+# CONFIG_USB_GSPCA_SN9C20X is not set
1918+# CONFIG_USB_GSPCA_SONIXB is not set
1919+# CONFIG_USB_GSPCA_SONIXJ is not set
1920+# CONFIG_USB_GSPCA_SPCA500 is not set
1921+# CONFIG_USB_GSPCA_SPCA501 is not set
1922+# CONFIG_USB_GSPCA_SPCA505 is not set
1923+# CONFIG_USB_GSPCA_SPCA506 is not set
1924+# CONFIG_USB_GSPCA_SPCA508 is not set
1925+# CONFIG_USB_GSPCA_SPCA561 is not set
1926+# CONFIG_USB_GSPCA_SPCA1528 is not set
1927+# CONFIG_USB_GSPCA_SQ905 is not set
1928+# CONFIG_USB_GSPCA_SQ905C is not set
1929+# CONFIG_USB_GSPCA_SQ930X is not set
1930+# CONFIG_USB_GSPCA_STK014 is not set
1931+# CONFIG_USB_GSPCA_STV0680 is not set
1932+# CONFIG_USB_GSPCA_SUNPLUS is not set
1933+# CONFIG_USB_GSPCA_T613 is not set
1934+# CONFIG_USB_GSPCA_TV8532 is not set
1935+# CONFIG_USB_GSPCA_VC032X is not set
1936+# CONFIG_USB_GSPCA_VICAM is not set
1937+# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
1938+# CONFIG_USB_GSPCA_ZC3XX is not set
1939+# CONFIG_VIDEO_PVRUSB2 is not set
1940+# CONFIG_VIDEO_HDPVR is not set
1941+# CONFIG_VIDEO_USBVISION is not set
1942+# CONFIG_USB_ET61X251 is not set
1943+# CONFIG_USB_SN9C102 is not set
1944+# CONFIG_USB_PWC is not set
1945+# CONFIG_USB_ZR364XX is not set
1946+# CONFIG_USB_STKWEBCAM is not set
1947+# CONFIG_USB_S2255 is not set
1948+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
1949+# CONFIG_RADIO_ADAPTERS is not set
1950+
1951+#
1952+# Graphics support
1953+#
1954+CONFIG_DRM=m
1955+CONFIG_DRM_VIVANTE=m
1956+# CONFIG_VGASTATE is not set
1957+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1958+CONFIG_FB=y
1959+# CONFIG_FIRMWARE_EDID is not set
1960+# CONFIG_FB_DDC is not set
1961+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1962+CONFIG_FB_CFB_FILLRECT=y
1963+CONFIG_FB_CFB_COPYAREA=y
1964+CONFIG_FB_CFB_IMAGEBLIT=y
1965+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1966+# CONFIG_FB_SYS_FILLRECT is not set
1967+# CONFIG_FB_SYS_COPYAREA is not set
1968+# CONFIG_FB_SYS_IMAGEBLIT is not set
1969+# CONFIG_FB_FOREIGN_ENDIAN is not set
1970+# CONFIG_FB_SYS_FOPS is not set
1971+# CONFIG_FB_WMT_GE_ROPS is not set
1972+CONFIG_FB_DEFERRED_IO=y
1973+# CONFIG_FB_SVGALIB is not set
1974+# CONFIG_FB_MACMODES is not set
1975+# CONFIG_FB_BACKLIGHT is not set
1976+CONFIG_FB_MODE_HELPERS=y
1977+# CONFIG_FB_TILEBLITTING is not set
1978+
1979+#
1980+# Frame buffer hardware drivers
1981+#
1982+# CONFIG_FB_CIRRUS is not set
1983+# CONFIG_FB_PM2 is not set
1984+# CONFIG_FB_CYBER2000 is not set
1985+# CONFIG_FB_ASILIANT is not set
1986+# CONFIG_FB_IMSTT is not set
1987+# CONFIG_FB_UVESA is not set
1988+# CONFIG_FB_S1D13XXX is not set
1989+# CONFIG_FB_NVIDIA is not set
1990+# CONFIG_FB_RIVA is not set
1991+# CONFIG_FB_MATROX is not set
1992+# CONFIG_FB_RADEON is not set
1993+# CONFIG_FB_ATY128 is not set
1994+# CONFIG_FB_ATY is not set
1995+# CONFIG_FB_S3 is not set
1996+# CONFIG_FB_SAVAGE is not set
1997+# CONFIG_FB_SIS is not set
1998+# CONFIG_FB_NEOMAGIC is not set
1999+# CONFIG_FB_KYRO is not set
2000+# CONFIG_FB_3DFX is not set
2001+# CONFIG_FB_VOODOO1 is not set
2002+# CONFIG_FB_VT8623 is not set
2003+# CONFIG_FB_TRIDENT is not set
2004+# CONFIG_FB_ARK is not set
2005+# CONFIG_FB_PM3 is not set
2006+# CONFIG_FB_CARMINE is not set
2007+# CONFIG_FB_TMIO is not set
2008+# CONFIG_FB_UDL is not set
2009+# CONFIG_FB_VIRTUAL is not set
2010+# CONFIG_FB_METRONOME is not set
2011+# CONFIG_FB_MB862XX is not set
2012+# CONFIG_FB_BROADSHEET is not set
2013+CONFIG_BACKLIGHT_LCD_SUPPORT=y
2014+# CONFIG_LCD_CLASS_DEVICE is not set
2015+CONFIG_BACKLIGHT_CLASS_DEVICE=y
2016+# CONFIG_BACKLIGHT_GENERIC is not set
2017+CONFIG_BACKLIGHT_PWM=y
2018+# CONFIG_BACKLIGHT_ADP8860 is not set
2019+# CONFIG_BACKLIGHT_ADP8870 is not set
2020+
2021+#
2022+# Display device support
2023+#
2024+# CONFIG_DISPLAY_SUPPORT is not set
2025+CONFIG_FB_MXC=y
2026+CONFIG_FB_MXC_EDID=y
2027+CONFIG_FB_MXC_SYNC_PANEL=y
2028+# CONFIG_FB_MXC_EPSON_VGA_SYNC_PANEL is not set
2029+CONFIG_FB_MXC_LDB=y
2030+CONFIG_FB_MXC_MIPI_DSI=y
2031+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
2032+# CONFIG_FB_MXC_CLAA_WVGA_SYNC_PANEL is not set
2033+# CONFIG_FB_MXC_SEIKO_WVGA_SYNC_PANEL is not set
2034+# CONFIG_FB_MXC_SII902X is not set
2035+# CONFIG_FB_MXC_CH7026 is not set
2036+# CONFIG_FB_MXC_TVOUT_CH7024 is not set
2037+# CONFIG_FB_MXC_ASYNC_PANEL is not set
2038+# CONFIG_FB_MXC_EINK_PANEL is not set
2039+# CONFIG_FB_MXC_SIPIX_PANEL is not set
2040+# CONFIG_FB_MXC_ELCDIF_FB is not set
2041+CONFIG_FB_MXC_HDMI=y
2042+
2043+#
2044+# Console display driver support
2045+#
2046+CONFIG_DUMMY_CONSOLE=y
2047+CONFIG_FRAMEBUFFER_CONSOLE=y
2048+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
2049+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
2050+CONFIG_FONTS=y
2051+# CONFIG_FONT_8x8 is not set
2052+CONFIG_FONT_8x16=y
2053+# CONFIG_FONT_6x11 is not set
2054+# CONFIG_FONT_7x14 is not set
2055+# CONFIG_FONT_PEARL_8x8 is not set
2056+# CONFIG_FONT_ACORN_8x8 is not set
2057+# CONFIG_FONT_MINI_4x6 is not set
2058+# CONFIG_FONT_SUN8x16 is not set
2059+# CONFIG_FONT_SUN12x22 is not set
2060+# CONFIG_FONT_10x18 is not set
2061+CONFIG_LOGO=y
2062+CONFIG_LOGO_LINUX_MONO=y
2063+CONFIG_LOGO_LINUX_VGA16=y
2064+CONFIG_LOGO_LINUX_CLUT224=y
2065+CONFIG_SOUND=y
2066+# CONFIG_SOUND_OSS_CORE is not set
2067+CONFIG_SND=y
2068+CONFIG_SND_TIMER=y
2069+CONFIG_SND_PCM=y
2070+CONFIG_SND_HWDEP=y
2071+CONFIG_SND_RAWMIDI=y
2072+CONFIG_SND_JACK=y
2073+# CONFIG_SND_SEQUENCER is not set
2074+# CONFIG_SND_MIXER_OSS is not set
2075+# CONFIG_SND_PCM_OSS is not set
2076+# CONFIG_SND_HRTIMER is not set
2077+# CONFIG_SND_DYNAMIC_MINORS is not set
2078+CONFIG_SND_SUPPORT_OLD_API=y
2079+CONFIG_SND_VERBOSE_PROCFS=y
2080+# CONFIG_SND_VERBOSE_PRINTK is not set
2081+# CONFIG_SND_DEBUG is not set
2082+# CONFIG_SND_RAWMIDI_SEQ is not set
2083+# CONFIG_SND_OPL3_LIB_SEQ is not set
2084+# CONFIG_SND_OPL4_LIB_SEQ is not set
2085+# CONFIG_SND_SBAWE_SEQ is not set
2086+# CONFIG_SND_EMU10K1_SEQ is not set
2087+CONFIG_SND_DRIVERS=y
2088+# CONFIG_SND_DUMMY is not set
2089+# CONFIG_SND_ALOOP is not set
2090+# CONFIG_SND_MTPAV is not set
2091+# CONFIG_SND_SERIAL_U16550 is not set
2092+# CONFIG_SND_MPU401 is not set
2093+CONFIG_SND_ARM=y
2094+CONFIG_SND_SPI=y
2095+CONFIG_SND_USB=y
2096+CONFIG_SND_USB_AUDIO=y
2097+# CONFIG_SND_USB_UA101 is not set
2098+# CONFIG_SND_USB_CAIAQ is not set
2099+# CONFIG_SND_USB_6FIRE is not set
2100+CONFIG_SND_SOC=y
2101+# CONFIG_SND_SOC_CACHE_LZO is not set
2102+CONFIG_SND_SOC_AC97_BUS=y
2103+CONFIG_SND_IMX_SOC=y
2104+CONFIG_SND_MXC_SOC_MX2=y
2105+CONFIG_SND_MXC_SOC_SPDIF_DAI=y
2106+CONFIG_SND_SOC_IMX_SGTL5000=y
2107+# CONFIG_SND_SOC_IMX_WM8958 is not set
2108+# CONFIG_SND_SOC_IMX_WM8962 is not set
2109+# CONFIG_SND_SOC_IMX_SI4763 is not set
2110+CONFIG_SND_SOC_IMX_SPDIF=y
2111+CONFIG_SND_SOC_IMX_HDMI=y
2112+CONFIG_SND_SOC_I2C_AND_SPI=y
2113+# CONFIG_SND_SOC_ALL_CODECS is not set
2114+CONFIG_SND_SOC_MXC_HDMI=y
2115+CONFIG_SND_SOC_MXC_SPDIF=y
2116+CONFIG_SND_SOC_SGTL5000=y
2117+# CONFIG_SOUND_PRIME is not set
2118+CONFIG_AC97_BUS=y
2119+CONFIG_HID_SUPPORT=y
2120+CONFIG_HID=y
2121+CONFIG_HIDRAW=y
2122+
2123+#
2124+# USB Input Devices
2125+#
2126+CONFIG_USB_HID=y
2127+# CONFIG_HID_PID is not set
2128+# CONFIG_USB_HIDDEV is not set
2129+
2130+#
2131+# Special HID drivers
2132+#
2133+# CONFIG_HID_A4TECH is not set
2134+# CONFIG_HID_ACRUX is not set
2135+# CONFIG_HID_APPLE is not set
2136+# CONFIG_HID_BELKIN is not set
2137+# CONFIG_HID_CHERRY is not set
2138+# CONFIG_HID_CHICONY is not set
2139+# CONFIG_HID_PRODIKEYS is not set
2140+# CONFIG_HID_CYPRESS is not set
2141+# CONFIG_HID_DRAGONRISE is not set
2142+# CONFIG_HID_EMS_FF is not set
2143+# CONFIG_HID_ELECOM is not set
2144+# CONFIG_HID_EZKEY is not set
2145+# CONFIG_HID_KEYTOUCH is not set
2146+# CONFIG_HID_KYE is not set
2147+# CONFIG_HID_UCLOGIC is not set
2148+# CONFIG_HID_WALTOP is not set
2149+# CONFIG_HID_GYRATION is not set
2150+# CONFIG_HID_TWINHAN is not set
2151+# CONFIG_HID_KENSINGTON is not set
2152+# CONFIG_HID_LCPOWER is not set
2153+# CONFIG_HID_LOGITECH is not set
2154+# CONFIG_HID_MAGICMOUSE is not set
2155+# CONFIG_HID_MICROSOFT is not set
2156+# CONFIG_HID_MONTEREY is not set
2157+# CONFIG_HID_MULTITOUCH is not set
2158+# CONFIG_HID_NTRIG is not set
2159+# CONFIG_HID_ORTEK is not set
2160+# CONFIG_HID_PANTHERLORD is not set
2161+# CONFIG_HID_PETALYNX is not set
2162+# CONFIG_HID_PICOLCD is not set
2163+CONFIG_HID_QUANTA=y
2164+# CONFIG_HID_ROCCAT is not set
2165+# CONFIG_HID_ROCCAT_ARVO is not set
2166+# CONFIG_HID_ROCCAT_KONE is not set
2167+# CONFIG_HID_ROCCAT_KONEPLUS is not set
2168+# CONFIG_HID_ROCCAT_KOVAPLUS is not set
2169+# CONFIG_HID_ROCCAT_PYRA is not set
2170+CONFIG_HID_SAMSUNG=m
2171+CONFIG_HID_SONY=m
2172+CONFIG_HID_SUNPLUS=m
2173+# CONFIG_HID_GREENASIA is not set
2174+# CONFIG_HID_SMARTJOYPLUS is not set
2175+# CONFIG_HID_TOPSEED is not set
2176+# CONFIG_HID_THRUSTMASTER is not set
2177+# CONFIG_HID_WACOM is not set
2178+# CONFIG_HID_ZEROPLUS is not set
2179+# CONFIG_HID_ZYDACRON is not set
2180+CONFIG_USB_SUPPORT=y
2181+CONFIG_USB_ARCH_HAS_HCD=y
2182+# CONFIG_USB_ARCH_HAS_OHCI is not set
2183+CONFIG_USB_ARCH_HAS_EHCI=y
2184+CONFIG_USB=y
2185+# CONFIG_USB_DEBUG is not set
2186+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
2187+
2188+#
2189+# Miscellaneous USB options
2190+#
2191+CONFIG_USB_DEVICEFS=y
2192+# CONFIG_USB_DEVICE_CLASS is not set
2193+# CONFIG_USB_DYNAMIC_MINORS is not set
2194+CONFIG_USB_SUSPEND=y
2195+CONFIG_USB_OTG=y
2196+# CONFIG_USB_OTG_WHITELIST is not set
2197+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
2198+# CONFIG_USB_MON is not set
2199+# CONFIG_USB_WUSB is not set
2200+# CONFIG_USB_WUSB_CBAF is not set
2201+
2202+#
2203+# USB Host Controller Drivers
2204+#
2205+# CONFIG_USB_C67X00_HCD is not set
2206+# CONFIG_USB_XHCI_HCD is not set
2207+CONFIG_USB_EHCI_HCD=y
2208+CONFIG_USB_EHCI_ARC=y
2209+CONFIG_USB_EHCI_ARC_OTG=y
2210+# CONFIG_USB_EHCI_ARC_HSIC is not set
2211+# CONFIG_USB_STATIC_IRAM is not set
2212+CONFIG_USB_EHCI_ROOT_HUB_TT=y
2213+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
2214+# CONFIG_USB_EHCI_MXC is not set
2215+# CONFIG_USB_OXU210HP_HCD is not set
2216+# CONFIG_USB_ISP116X_HCD is not set
2217+# CONFIG_USB_ISP1760_HCD is not set
2218+# CONFIG_USB_ISP1362_HCD is not set
2219+# CONFIG_USB_OHCI_HCD is not set
2220+# CONFIG_USB_UHCI_HCD is not set
2221+# CONFIG_USB_SL811_HCD is not set
2222+# CONFIG_USB_R8A66597_HCD is not set
2223+# CONFIG_USB_WHCI_HCD is not set
2224+# CONFIG_USB_HWA_HCD is not set
2225+# CONFIG_USB_MUSB_HDRC is not set
2226+
2227+#
2228+# USB Device Class drivers
2229+#
2230+CONFIG_USB_ACM=y
2231+# CONFIG_USB_PRINTER is not set
2232+# CONFIG_USB_WDM is not set
2233+# CONFIG_USB_TMC is not set
2234+
2235+#
2236+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
2237+#
2238+
2239+#
2240+# also be needed; see USB_STORAGE Help for more info
2241+#
2242+CONFIG_USB_STORAGE=y
2243+# CONFIG_USB_STORAGE_DEBUG is not set
2244+# CONFIG_USB_STORAGE_REALTEK is not set
2245+# CONFIG_USB_STORAGE_DATAFAB is not set
2246+# CONFIG_USB_STORAGE_FREECOM is not set
2247+# CONFIG_USB_STORAGE_ISD200 is not set
2248+# CONFIG_USB_STORAGE_USBAT is not set
2249+# CONFIG_USB_STORAGE_SDDR09 is not set
2250+# CONFIG_USB_STORAGE_SDDR55 is not set
2251+# CONFIG_USB_STORAGE_JUMPSHOT is not set
2252+# CONFIG_USB_STORAGE_ALAUDA is not set
2253+# CONFIG_USB_STORAGE_ONETOUCH is not set
2254+# CONFIG_USB_STORAGE_KARMA is not set
2255+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
2256+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
2257+# CONFIG_USB_UAS is not set
2258+# CONFIG_USB_LIBUSUAL is not set
2259+
2260+#
2261+# USB Imaging devices
2262+#
2263+# CONFIG_USB_MDC800 is not set
2264+# CONFIG_USB_MICROTEK is not set
2265+
2266+#
2267+# USB port drivers
2268+#
2269+CONFIG_USB_SERIAL=y
2270+# CONFIG_USB_SERIAL_CONSOLE is not set
2271+# CONFIG_USB_EZUSB is not set
2272+# CONFIG_USB_SERIAL_GENERIC is not set
2273+# CONFIG_USB_SERIAL_AIRCABLE is not set
2274+# CONFIG_USB_SERIAL_ARK3116 is not set
2275+# CONFIG_USB_SERIAL_BELKIN is not set
2276+# CONFIG_USB_SERIAL_CH341 is not set
2277+# CONFIG_USB_SERIAL_WHITEHEAT is not set
2278+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
2279+# CONFIG_USB_SERIAL_CP210X is not set
2280+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
2281+# CONFIG_USB_SERIAL_EMPEG is not set
2282+# CONFIG_USB_SERIAL_FTDI_SIO is not set
2283+# CONFIG_USB_SERIAL_FUNSOFT is not set
2284+# CONFIG_USB_SERIAL_VISOR is not set
2285+# CONFIG_USB_SERIAL_IPAQ is not set
2286+# CONFIG_USB_SERIAL_IR is not set
2287+# CONFIG_USB_SERIAL_EDGEPORT is not set
2288+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
2289+# CONFIG_USB_SERIAL_GARMIN is not set
2290+# CONFIG_USB_SERIAL_IPW is not set
2291+# CONFIG_USB_SERIAL_IUU is not set
2292+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
2293+# CONFIG_USB_SERIAL_KEYSPAN is not set
2294+# CONFIG_USB_SERIAL_KLSI is not set
2295+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
2296+# CONFIG_USB_SERIAL_MCT_U232 is not set
2297+# CONFIG_USB_SERIAL_MOS7720 is not set
2298+# CONFIG_USB_SERIAL_MOS7840 is not set
2299+# CONFIG_USB_SERIAL_MOTOROLA is not set
2300+# CONFIG_USB_SERIAL_NAVMAN is not set
2301+# CONFIG_USB_SERIAL_PL2303 is not set
2302+# CONFIG_USB_SERIAL_OTI6858 is not set
2303+# CONFIG_USB_SERIAL_QCAUX is not set
2304+CONFIG_USB_SERIAL_QUALCOMM=y
2305+# CONFIG_USB_SERIAL_SPCP8X5 is not set
2306+# CONFIG_USB_SERIAL_HP4X is not set
2307+# CONFIG_USB_SERIAL_SAFE is not set
2308+# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
2309+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
2310+# CONFIG_USB_SERIAL_SYMBOL is not set
2311+# CONFIG_USB_SERIAL_TI is not set
2312+# CONFIG_USB_SERIAL_CYBERJACK is not set
2313+# CONFIG_USB_SERIAL_XIRCOM is not set
2314+CONFIG_USB_SERIAL_WWAN=y
2315+CONFIG_USB_SERIAL_OPTION=y
2316+# CONFIG_USB_SERIAL_OMNINET is not set
2317+# CONFIG_USB_SERIAL_OPTICON is not set
2318+# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
2319+# CONFIG_USB_SERIAL_ZIO is not set
2320+# CONFIG_USB_SERIAL_SSU100 is not set
2321+# CONFIG_USB_SERIAL_DEBUG is not set
2322+
2323+#
2324+# USB Miscellaneous drivers
2325+#
2326+# CONFIG_USB_EMI62 is not set
2327+# CONFIG_USB_EMI26 is not set
2328+# CONFIG_USB_ADUTUX is not set
2329+# CONFIG_USB_SEVSEG is not set
2330+# CONFIG_USB_RIO500 is not set
2331+# CONFIG_USB_LEGOTOWER is not set
2332+# CONFIG_USB_LCD is not set
2333+# CONFIG_USB_LED is not set
2334+# CONFIG_USB_CYPRESS_CY7C63 is not set
2335+# CONFIG_USB_CYTHERM is not set
2336+# CONFIG_USB_IDMOUSE is not set
2337+# CONFIG_USB_FTDI_ELAN is not set
2338+# CONFIG_USB_APPLEDISPLAY is not set
2339+# CONFIG_USB_SISUSBVGA is not set
2340+# CONFIG_USB_LD is not set
2341+# CONFIG_USB_TRANCEVIBRATOR is not set
2342+# CONFIG_USB_IOWARRIOR is not set
2343+# CONFIG_USB_TEST is not set
2344+# CONFIG_USB_ISIGHTFW is not set
2345+# CONFIG_USB_YUREX is not set
2346+CONFIG_USB_GADGET=y
2347+# CONFIG_USB_GADGET_DEBUG_FILES is not set
2348+# CONFIG_USB_GADGET_DEBUG_FS is not set
2349+CONFIG_USB_GADGET_VBUS_DRAW=2
2350+CONFIG_USB_GADGET_SELECTED=y
2351+CONFIG_USB_GADGET_ARC=y
2352+# CONFIG_IMX_USB_CHARGER is not set
2353+CONFIG_USB_ARC=y
2354+# CONFIG_USB_GADGET_FSL_USB2 is not set
2355+# CONFIG_USB_GADGET_FUSB300 is not set
2356+# CONFIG_USB_GADGET_R8A66597 is not set
2357+# CONFIG_USB_GADGET_PXA_U2O is not set
2358+# CONFIG_USB_GADGET_M66592 is not set
2359+# CONFIG_USB_GADGET_AMD5536UDC is not set
2360+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
2361+# CONFIG_USB_GADGET_NET2280 is not set
2362+# CONFIG_USB_GADGET_GOKU is not set
2363+# CONFIG_USB_GADGET_LANGWELL is not set
2364+# CONFIG_USB_GADGET_EG20T is not set
2365+# CONFIG_USB_GADGET_DUMMY_HCD is not set
2366+CONFIG_USB_GADGET_DUALSPEED=y
2367+# CONFIG_USB_ZERO is not set
2368+# CONFIG_USB_AUDIO is not set
2369+# CONFIG_USB_ETH is not set
2370+CONFIG_USB_ETH_RNDIS=y
2371+# CONFIG_USB_ETH_EEM is not set
2372+# CONFIG_USB_G_NCM is not set
2373+# CONFIG_USB_GADGETFS is not set
2374+# CONFIG_USB_FUNCTIONFS is not set
2375+CONFIG_USB_FILE_STORAGE=m
2376+# CONFIG_USB_MASS_STORAGE is not set
2377+CONFIG_USB_G_SERIAL=m
2378+# CONFIG_USB_MIDI_GADGET is not set
2379+# CONFIG_USB_G_PRINTER is not set
2380+CONFIG_USB_G_ANDROID=y
2381+# CONFIG_USB_CDC_COMPOSITE is not set
2382+# CONFIG_USB_G_MULTI is not set
2383+# CONFIG_USB_G_HID is not set
2384+# CONFIG_USB_G_DBGP is not set
2385+# CONFIG_USB_G_WEBCAM is not set
2386+
2387+#
2388+# OTG and related infrastructure
2389+#
2390+CONFIG_USB_OTG_UTILS=y
2391+# CONFIG_USB_GPIO_VBUS is not set
2392+# CONFIG_USB_ULPI is not set
2393+# CONFIG_NOP_USB_XCEIV is not set
2394+CONFIG_MXC_OTG=y
2395+CONFIG_MMC=y
2396+# CONFIG_MMC_DEBUG is not set
2397+CONFIG_MMC_UNSAFE_RESUME=y
2398+# CONFIG_MMC_CLKGATE is not set
2399+# CONFIG_MMC_EMBEDDED_SDIO is not set
2400+# CONFIG_MMC_PARANOID_SD_INIT is not set
2401+
2402+#
2403+# MMC/SD/SDIO Card Drivers
2404+#
2405+CONFIG_MMC_BLOCK=y
2406+CONFIG_MMC_BLOCK_MINORS=8
2407+CONFIG_MMC_BLOCK_BOUNCE=y
2408+# CONFIG_SDIO_UART is not set
2409+# CONFIG_MMC_TEST is not set
2410+
2411+#
2412+# MMC/SD/SDIO Host Controller Drivers
2413+#
2414+CONFIG_MMC_SDHCI=y
2415+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
2416+# CONFIG_MMC_SDHCI_PCI is not set
2417+CONFIG_MMC_SDHCI_PLTFM=y
2418+CONFIG_MMC_SDHCI_ESDHC_IMX=y
2419+# CONFIG_MMC_TIFM_SD is not set
2420+# CONFIG_MMC_CB710 is not set
2421+# CONFIG_MMC_VIA_SDMMC is not set
2422+# CONFIG_MMC_DW is not set
2423+# CONFIG_MMC_VUB300 is not set
2424+# CONFIG_MMC_USHC is not set
2425+# CONFIG_SDHCI_USE_LEDS_CLASS is not set
2426+# CONFIG_MEMSTICK is not set
2427+CONFIG_NEW_LEDS=y
2428+CONFIG_LEDS_CLASS=y
2429+
2430+#
2431+# LED drivers
2432+#
2433+# CONFIG_LEDS_LM3530 is not set
2434+# CONFIG_LEDS_PCA9532 is not set
2435+CONFIG_LEDS_GPIO=y
2436+CONFIG_LEDS_GPIO_PLATFORM=y
2437+# CONFIG_LEDS_LP3944 is not set
2438+# CONFIG_LEDS_LP5521 is not set
2439+# CONFIG_LEDS_LP5523 is not set
2440+# CONFIG_LEDS_PCA955X is not set
2441+# CONFIG_LEDS_DAC124S085 is not set
2442+# CONFIG_LEDS_PWM is not set
2443+# CONFIG_LEDS_REGULATOR is not set
2444+# CONFIG_LEDS_BD2802 is not set
2445+# CONFIG_LEDS_LT3593 is not set
2446+CONFIG_LEDS_TRIGGERS=y
2447+
2448+#
2449+# LED Triggers
2450+#
2451+# CONFIG_LEDS_TRIGGER_TIMER is not set
2452+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
2453+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
2454+CONFIG_LEDS_TRIGGER_GPIO=y
2455+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
2456+
2457+#
2458+# iptables trigger is under Netfilter config (LED target)
2459+#
2460+
2461+#
2462+# LED Triggers
2463+#
2464+# CONFIG_NFC_DEVICES is not set
2465+# CONFIG_ACCESSIBILITY is not set
2466+CONFIG_RTC_LIB=y
2467+CONFIG_RTC_CLASS=y
2468+CONFIG_RTC_HCTOSYS=y
2469+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
2470+# CONFIG_RTC_DEBUG is not set
2471+
2472+#
2473+# RTC interfaces
2474+#
2475+CONFIG_RTC_INTF_SYSFS=y
2476+CONFIG_RTC_INTF_PROC=y
2477+CONFIG_RTC_INTF_DEV=y
2478+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
2479+# CONFIG_RTC_DRV_TEST is not set
2480+
2481+#
2482+# I2C RTC drivers
2483+#
2484+# CONFIG_RTC_DRV_DS1307 is not set
2485+# CONFIG_RTC_DRV_DS1374 is not set
2486+# CONFIG_RTC_DRV_DS1672 is not set
2487+# CONFIG_RTC_DRV_DS3232 is not set
2488+# CONFIG_RTC_DRV_MAX6900 is not set
2489+# CONFIG_RTC_DRV_RS5C372 is not set
2490+# CONFIG_RTC_DRV_ISL1208 is not set
2491+# CONFIG_RTC_DRV_ISL12022 is not set
2492+# CONFIG_RTC_DRV_X1205 is not set
2493+# CONFIG_RTC_DRV_PCF8563 is not set
2494+# CONFIG_RTC_DRV_PCF8583 is not set
2495+# CONFIG_RTC_DRV_M41T80 is not set
2496+# CONFIG_RTC_DRV_BQ32K is not set
2497+# CONFIG_RTC_DRV_S35390A is not set
2498+# CONFIG_RTC_DRV_FM3130 is not set
2499+# CONFIG_RTC_DRV_RX8581 is not set
2500+# CONFIG_RTC_DRV_RX8025 is not set
2501+# CONFIG_RTC_DRV_EM3027 is not set
2502+# CONFIG_RTC_DRV_RV3029C2 is not set
2503+
2504+#
2505+# SPI RTC drivers
2506+#
2507+# CONFIG_RTC_DRV_M41T93 is not set
2508+# CONFIG_RTC_DRV_M41T94 is not set
2509+# CONFIG_RTC_DRV_DS1305 is not set
2510+# CONFIG_RTC_DRV_DS1390 is not set
2511+# CONFIG_RTC_DRV_MAX6902 is not set
2512+# CONFIG_RTC_DRV_R9701 is not set
2513+# CONFIG_RTC_DRV_RS5C348 is not set
2514+# CONFIG_RTC_DRV_DS3234 is not set
2515+# CONFIG_RTC_DRV_PCF2123 is not set
2516+
2517+#
2518+# Platform RTC drivers
2519+#
2520+# CONFIG_RTC_DRV_CMOS is not set
2521+# CONFIG_RTC_DRV_DS1286 is not set
2522+# CONFIG_RTC_DRV_DS1511 is not set
2523+# CONFIG_RTC_DRV_DS1553 is not set
2524+# CONFIG_RTC_DRV_DS1742 is not set
2525+# CONFIG_RTC_DRV_STK17TA8 is not set
2526+# CONFIG_RTC_DRV_M48T86 is not set
2527+# CONFIG_RTC_DRV_M48T35 is not set
2528+# CONFIG_RTC_DRV_M48T59 is not set
2529+# CONFIG_RTC_DRV_MSM6242 is not set
2530+# CONFIG_RTC_MXC is not set
2531+# CONFIG_RTC_DRV_MXC_V2 is not set
2532+CONFIG_RTC_DRV_SNVS=y
2533+# CONFIG_RTC_DRV_BQ4802 is not set
2534+# CONFIG_RTC_DRV_RP5C01 is not set
2535+# CONFIG_RTC_DRV_V3020 is not set
2536+
2537+#
2538+# on-CPU RTC drivers
2539+#
2540+CONFIG_DMADEVICES=y
2541+# CONFIG_DMADEVICES_DEBUG is not set
2542+
2543+#
2544+# DMA Devices
2545+#
2546+# CONFIG_DW_DMAC is not set
2547+CONFIG_MXC_PXP_V2=y
2548+CONFIG_MXC_PXP_CLIENT_DEVICE=y
2549+# CONFIG_TIMB_DMA is not set
2550+CONFIG_IMX_SDMA=y
2551+# CONFIG_MXS_DMA is not set
2552+CONFIG_DMA_ENGINE=y
2553+
2554+#
2555+# DMA Clients
2556+#
2557+# CONFIG_NET_DMA is not set
2558+# CONFIG_ASYNC_TX_DMA is not set
2559+# CONFIG_DMATEST is not set
2560+# CONFIG_AUXDISPLAY is not set
2561+# CONFIG_UIO is not set
2562+# CONFIG_STAGING is not set
2563+CONFIG_CLKDEV_LOOKUP=y
2564+CONFIG_CLKSRC_MMIO=y
2565+
2566+#
2567+# MXC support drivers
2568+#
2569+CONFIG_MXC_IPU=y
2570+CONFIG_MXC_IPU_V3=y
2571+CONFIG_MXC_IPU_V3H=y
2572+
2573+#
2574+# MXC SSI support
2575+#
2576+# CONFIG_MXC_SSI is not set
2577+
2578+#
2579+# MXC Digital Audio Multiplexer support
2580+#
2581+# CONFIG_MXC_DAM is not set
2582+
2583+#
2584+# MXC PMIC support
2585+#
2586+# CONFIG_MXC_PMIC_MC13783 is not set
2587+# CONFIG_MXC_PMIC_MC13892 is not set
2588+# CONFIG_MXC_PMIC_MC34704 is not set
2589+# CONFIG_MXC_PMIC_MC9SDZ60 is not set
2590+# CONFIG_MXC_PMIC_MC9S08DZ60 is not set
2591+
2592+#
2593+# MXC Security Drivers
2594+#
2595+# CONFIG_MXC_SECURITY_SCC is not set
2596+# CONFIG_MXC_SECURITY_RNG is not set
2597+
2598+#
2599+# MXC MPEG4 Encoder Kernel module support
2600+#
2601+# CONFIG_MXC_HMP4E is not set
2602+
2603+#
2604+# MXC HARDWARE EVENT
2605+#
2606+# CONFIG_MXC_HWEVENT is not set
2607+
2608+#
2609+# MXC VPU(Video Processing Unit) support
2610+#
2611+CONFIG_MXC_VPU=y
2612+# CONFIG_MXC_VPU_DEBUG is not set
2613+
2614+#
2615+# MXC Asynchronous Sample Rate Converter support
2616+#
2617+CONFIG_MXC_ASRC=y
2618+
2619+#
2620+# MXC Bluetooth support
2621+#
2622+
2623+#
2624+# Broadcom GPS ioctrl support
2625+#
2626+
2627+#
2628+# MXC Media Local Bus Driver
2629+#
2630+# CONFIG_MXC_MLB150 is not set
2631+
2632+#
2633+# i.MX ADC support
2634+#
2635+# CONFIG_IMX_ADC is not set
2636+
2637+#
2638+# MXC Vivante GPU support
2639+#
2640+CONFIG_MXC_GPU_VIV=m
2641+
2642+#
2643+# ANATOP_THERMAL
2644+#
2645+CONFIG_ANATOP_THERMAL=y
2646+
2647+#
2648+# MXC MIPI Support
2649+#
2650+CONFIG_MXC_MIPI_CSI2=y
2651+
2652+#
2653+# MXC HDMI CEC (Consumer Electronics Control) support
2654+#
2655+# CONFIG_MXC_HDMI_CEC is not set
2656+
2657+#
2658+# File systems
2659+#
2660+CONFIG_EXT2_FS=y
2661+# CONFIG_EXT2_FS_XATTR is not set
2662+# CONFIG_EXT2_FS_XIP is not set
2663+CONFIG_EXT3_FS=y
2664+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
2665+CONFIG_EXT3_FS_XATTR=y
2666+# CONFIG_EXT3_FS_POSIX_ACL is not set
2667+# CONFIG_EXT3_FS_SECURITY is not set
2668+CONFIG_EXT4_FS=y
2669+CONFIG_EXT4_FS_XATTR=y
2670+# CONFIG_EXT4_FS_POSIX_ACL is not set
2671+# CONFIG_EXT4_FS_SECURITY is not set
2672+# CONFIG_EXT4_DEBUG is not set
2673+CONFIG_JBD=y
2674+# CONFIG_JBD_DEBUG is not set
2675+CONFIG_JBD2=y
2676+# CONFIG_JBD2_DEBUG is not set
2677+CONFIG_FS_MBCACHE=y
2678+# CONFIG_REISERFS_FS is not set
2679+# CONFIG_JFS_FS is not set
2680+# CONFIG_XFS_FS is not set
2681+# CONFIG_GFS2_FS is not set
2682+# CONFIG_BTRFS_FS is not set
2683+# CONFIG_NILFS2_FS is not set
2684+# CONFIG_FS_POSIX_ACL is not set
2685+CONFIG_FILE_LOCKING=y
2686+CONFIG_FSNOTIFY=y
2687+CONFIG_DNOTIFY=y
2688+CONFIG_INOTIFY_USER=y
2689+# CONFIG_FANOTIFY is not set
2690+# CONFIG_QUOTA is not set
2691+# CONFIG_QUOTACTL is not set
2692+CONFIG_AUTOFS4_FS=y
2693+# CONFIG_FUSE_FS is not set
2694+
2695+#
2696+# Caches
2697+#
2698+# CONFIG_FSCACHE is not set
2699+
2700+#
2701+# CD-ROM/DVD Filesystems
2702+#
2703+# CONFIG_ISO9660_FS is not set
2704+# CONFIG_UDF_FS is not set
2705+
2706+#
2707+# DOS/FAT/NT Filesystems
2708+#
2709+CONFIG_FAT_FS=y
2710+CONFIG_MSDOS_FS=y
2711+CONFIG_VFAT_FS=y
2712+CONFIG_FAT_DEFAULT_CODEPAGE=437
2713+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
2714+# CONFIG_NTFS_FS is not set
2715+
2716+#
2717+# Pseudo filesystems
2718+#
2719+CONFIG_PROC_FS=y
2720+CONFIG_PROC_SYSCTL=y
2721+CONFIG_PROC_PAGE_MONITOR=y
2722+CONFIG_SYSFS=y
2723+CONFIG_TMPFS=y
2724+# CONFIG_TMPFS_POSIX_ACL is not set
2725+# CONFIG_TMPFS_XATTR is not set
2726+# CONFIG_HUGETLB_PAGE is not set
2727+# CONFIG_CONFIGFS_FS is not set
2728+CONFIG_MISC_FILESYSTEMS=y
2729+# CONFIG_ADFS_FS is not set
2730+# CONFIG_AFFS_FS is not set
2731+# CONFIG_ECRYPT_FS is not set
2732+# CONFIG_HFS_FS is not set
2733+# CONFIG_HFSPLUS_FS is not set
2734+# CONFIG_BEFS_FS is not set
2735+# CONFIG_BFS_FS is not set
2736+# CONFIG_EFS_FS is not set
2737+# CONFIG_YAFFS_FS is not set
2738+CONFIG_JFFS2_FS=y
2739+CONFIG_JFFS2_FS_DEBUG=0
2740+CONFIG_JFFS2_FS_WRITEBUFFER=y
2741+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
2742+# CONFIG_JFFS2_SUMMARY is not set
2743+# CONFIG_JFFS2_FS_XATTR is not set
2744+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
2745+CONFIG_JFFS2_ZLIB=y
2746+# CONFIG_JFFS2_LZO is not set
2747+CONFIG_JFFS2_RTIME=y
2748+# CONFIG_JFFS2_RUBIN is not set
2749+CONFIG_UBIFS_FS=y
2750+# CONFIG_UBIFS_FS_XATTR is not set
2751+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
2752+CONFIG_UBIFS_FS_LZO=y
2753+CONFIG_UBIFS_FS_ZLIB=y
2754+# CONFIG_UBIFS_FS_DEBUG is not set
2755+# CONFIG_LOGFS is not set
2756+CONFIG_CRAMFS=y
2757+# CONFIG_SQUASHFS is not set
2758+# CONFIG_VXFS_FS is not set
2759+# CONFIG_MINIX_FS is not set
2760+# CONFIG_OMFS_FS is not set
2761+# CONFIG_HPFS_FS is not set
2762+# CONFIG_QNX4FS_FS is not set
2763+# CONFIG_ROMFS_FS is not set
2764+# CONFIG_PSTORE is not set
2765+# CONFIG_SYSV_FS is not set
2766+# CONFIG_UFS_FS is not set
2767+CONFIG_NETWORK_FILESYSTEMS=y
2768+CONFIG_NFS_FS=y
2769+CONFIG_NFS_V3=y
2770+# CONFIG_NFS_V3_ACL is not set
2771+# CONFIG_NFS_V4 is not set
2772+CONFIG_ROOT_NFS=y
2773+# CONFIG_NFSD is not set
2774+CONFIG_LOCKD=y
2775+CONFIG_LOCKD_V4=y
2776+CONFIG_NFS_COMMON=y
2777+CONFIG_SUNRPC=y
2778+# CONFIG_CEPH_FS is not set
2779+# CONFIG_CIFS is not set
2780+# CONFIG_NCP_FS is not set
2781+# CONFIG_CODA_FS is not set
2782+# CONFIG_AFS_FS is not set
2783+
2784+#
2785+# Partition Types
2786+#
2787+CONFIG_PARTITION_ADVANCED=y
2788+# CONFIG_ACORN_PARTITION is not set
2789+# CONFIG_OSF_PARTITION is not set
2790+# CONFIG_AMIGA_PARTITION is not set
2791+# CONFIG_ATARI_PARTITION is not set
2792+# CONFIG_MAC_PARTITION is not set
2793+CONFIG_MSDOS_PARTITION=y
2794+# CONFIG_BSD_DISKLABEL is not set
2795+# CONFIG_MINIX_SUBPARTITION is not set
2796+# CONFIG_SOLARIS_X86_PARTITION is not set
2797+# CONFIG_UNIXWARE_DISKLABEL is not set
2798+# CONFIG_LDM_PARTITION is not set
2799+# CONFIG_SGI_PARTITION is not set
2800+# CONFIG_ULTRIX_PARTITION is not set
2801+# CONFIG_SUN_PARTITION is not set
2802+# CONFIG_KARMA_PARTITION is not set
2803+CONFIG_EFI_PARTITION=y
2804+# CONFIG_SYSV68_PARTITION is not set
2805+CONFIG_NLS=y
2806+CONFIG_NLS_DEFAULT="iso8859-1"
2807+CONFIG_NLS_CODEPAGE_437=y
2808+# CONFIG_NLS_CODEPAGE_737 is not set
2809+# CONFIG_NLS_CODEPAGE_775 is not set
2810+# CONFIG_NLS_CODEPAGE_850 is not set
2811+# CONFIG_NLS_CODEPAGE_852 is not set
2812+# CONFIG_NLS_CODEPAGE_855 is not set
2813+# CONFIG_NLS_CODEPAGE_857 is not set
2814+# CONFIG_NLS_CODEPAGE_860 is not set
2815+# CONFIG_NLS_CODEPAGE_861 is not set
2816+# CONFIG_NLS_CODEPAGE_862 is not set
2817+# CONFIG_NLS_CODEPAGE_863 is not set
2818+# CONFIG_NLS_CODEPAGE_864 is not set
2819+# CONFIG_NLS_CODEPAGE_865 is not set
2820+# CONFIG_NLS_CODEPAGE_866 is not set
2821+# CONFIG_NLS_CODEPAGE_869 is not set
2822+# CONFIG_NLS_CODEPAGE_936 is not set
2823+# CONFIG_NLS_CODEPAGE_950 is not set
2824+# CONFIG_NLS_CODEPAGE_932 is not set
2825+# CONFIG_NLS_CODEPAGE_949 is not set
2826+# CONFIG_NLS_CODEPAGE_874 is not set
2827+# CONFIG_NLS_ISO8859_8 is not set
2828+# CONFIG_NLS_CODEPAGE_1250 is not set
2829+# CONFIG_NLS_CODEPAGE_1251 is not set
2830+CONFIG_NLS_ASCII=m
2831+CONFIG_NLS_ISO8859_1=y
2832+# CONFIG_NLS_ISO8859_2 is not set
2833+# CONFIG_NLS_ISO8859_3 is not set
2834+# CONFIG_NLS_ISO8859_4 is not set
2835+# CONFIG_NLS_ISO8859_5 is not set
2836+# CONFIG_NLS_ISO8859_6 is not set
2837+# CONFIG_NLS_ISO8859_7 is not set
2838+# CONFIG_NLS_ISO8859_9 is not set
2839+# CONFIG_NLS_ISO8859_13 is not set
2840+# CONFIG_NLS_ISO8859_14 is not set
2841+# CONFIG_NLS_ISO8859_15 is not set
2842+# CONFIG_NLS_KOI8_R is not set
2843+# CONFIG_NLS_KOI8_U is not set
2844+CONFIG_NLS_UTF8=m
2845+
2846+#
2847+# Kernel hacking
2848+#
2849+# CONFIG_PRINTK_TIME is not set
2850+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
2851+CONFIG_ENABLE_WARN_DEPRECATED=y
2852+CONFIG_ENABLE_MUST_CHECK=y
2853+CONFIG_FRAME_WARN=1024
2854+CONFIG_MAGIC_SYSRQ=y
2855+# CONFIG_STRIP_ASM_SYMS is not set
2856+# CONFIG_UNUSED_SYMBOLS is not set
2857+CONFIG_DEBUG_FS=y
2858+# CONFIG_HEADERS_CHECK is not set
2859+# CONFIG_DEBUG_SECTION_MISMATCH is not set
2860+# CONFIG_DEBUG_KERNEL is not set
2861+# CONFIG_HARDLOCKUP_DETECTOR is not set
2862+# CONFIG_SPARSE_RCU_POINTER is not set
2863+CONFIG_DEBUG_BUGVERBOSE=y
2864+# CONFIG_DEBUG_MEMORY_INIT is not set
2865+CONFIG_RCU_CPU_STALL_TIMEOUT=60
2866+CONFIG_RCU_CPU_STALL_VERBOSE=y
2867+# CONFIG_LKDTM is not set
2868+CONFIG_SYSCTL_SYSCALL_CHECK=y
2869+CONFIG_HAVE_FUNCTION_TRACER=y
2870+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2871+CONFIG_HAVE_DYNAMIC_FTRACE=y
2872+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2873+CONFIG_HAVE_C_RECORDMCOUNT=y
2874+CONFIG_TRACING_SUPPORT=y
2875+# CONFIG_FTRACE is not set
2876+# CONFIG_DYNAMIC_DEBUG is not set
2877+# CONFIG_DMA_API_DEBUG is not set
2878+# CONFIG_ATOMIC64_SELFTEST is not set
2879+# CONFIG_SAMPLES is not set
2880+CONFIG_HAVE_ARCH_KGDB=y
2881+# CONFIG_TEST_KSTRTOX is not set
2882+# CONFIG_STRICT_DEVMEM is not set
2883+CONFIG_ARM_UNWIND=y
2884+# CONFIG_DEBUG_USER is not set
2885+# CONFIG_OC_ETM is not set
2886+
2887+#
2888+# Security options
2889+#
2890+# CONFIG_KEYS is not set
2891+# CONFIG_SECURITY_DMESG_RESTRICT is not set
2892+# CONFIG_SECURITY is not set
2893+# CONFIG_SECURITYFS is not set
2894+CONFIG_DEFAULT_SECURITY_DAC=y
2895+CONFIG_DEFAULT_SECURITY=""
2896+CONFIG_CRYPTO=y
2897+
2898+#
2899+# Crypto core or helper
2900+#
2901+CONFIG_CRYPTO_ALGAPI=y
2902+CONFIG_CRYPTO_ALGAPI2=y
2903+CONFIG_CRYPTO_AEAD=y
2904+CONFIG_CRYPTO_AEAD2=y
2905+CONFIG_CRYPTO_BLKCIPHER=y
2906+CONFIG_CRYPTO_BLKCIPHER2=y
2907+CONFIG_CRYPTO_HASH=y
2908+CONFIG_CRYPTO_HASH2=y
2909+CONFIG_CRYPTO_RNG=y
2910+CONFIG_CRYPTO_RNG2=y
2911+CONFIG_CRYPTO_PCOMP2=y
2912+CONFIG_CRYPTO_MANAGER=y
2913+CONFIG_CRYPTO_MANAGER2=y
2914+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
2915+CONFIG_CRYPTO_GF128MUL=y
2916+# CONFIG_CRYPTO_NULL is not set
2917+# CONFIG_CRYPTO_PCRYPT is not set
2918+CONFIG_CRYPTO_WORKQUEUE=y
2919+# CONFIG_CRYPTO_CRYPTD is not set
2920+CONFIG_CRYPTO_AUTHENC=y
2921+CONFIG_CRYPTO_TEST=m
2922+# CONFIG_CRYPTO_CRYPTODEV is not set
2923+
2924+#
2925+# Authenticated Encryption with Associated Data
2926+#
2927+CONFIG_CRYPTO_CCM=y
2928+CONFIG_CRYPTO_GCM=y
2929+CONFIG_CRYPTO_SEQIV=y
2930+
2931+#
2932+# Block modes
2933+#
2934+CONFIG_CRYPTO_CBC=y
2935+CONFIG_CRYPTO_CTR=y
2936+CONFIG_CRYPTO_CTS=y
2937+CONFIG_CRYPTO_ECB=y
2938+CONFIG_CRYPTO_LRW=y
2939+CONFIG_CRYPTO_PCBC=y
2940+CONFIG_CRYPTO_XTS=y
2941+
2942+#
2943+# Hash modes
2944+#
2945+# CONFIG_CRYPTO_HMAC is not set
2946+# CONFIG_CRYPTO_XCBC is not set
2947+# CONFIG_CRYPTO_VMAC is not set
2948+
2949+#
2950+# Digest
2951+#
2952+# CONFIG_CRYPTO_CRC32C is not set
2953+CONFIG_CRYPTO_GHASH=y
2954+# CONFIG_CRYPTO_MD4 is not set
2955+# CONFIG_CRYPTO_MD5 is not set
2956+CONFIG_CRYPTO_MICHAEL_MIC=y
2957+# CONFIG_CRYPTO_RMD128 is not set
2958+# CONFIG_CRYPTO_RMD160 is not set
2959+# CONFIG_CRYPTO_RMD256 is not set
2960+# CONFIG_CRYPTO_RMD320 is not set
2961+# CONFIG_CRYPTO_SHA1 is not set
2962+# CONFIG_CRYPTO_SHA256 is not set
2963+# CONFIG_CRYPTO_SHA512 is not set
2964+# CONFIG_CRYPTO_TGR192 is not set
2965+# CONFIG_CRYPTO_WP512 is not set
2966+
2967+#
2968+# Ciphers
2969+#
2970+CONFIG_CRYPTO_AES=y
2971+# CONFIG_CRYPTO_ANUBIS is not set
2972+CONFIG_CRYPTO_ARC4=y
2973+# CONFIG_CRYPTO_BLOWFISH is not set
2974+# CONFIG_CRYPTO_CAMELLIA is not set
2975+# CONFIG_CRYPTO_CAST5 is not set
2976+# CONFIG_CRYPTO_CAST6 is not set
2977+CONFIG_CRYPTO_DES=y
2978+# CONFIG_CRYPTO_FCRYPT is not set
2979+# CONFIG_CRYPTO_KHAZAD is not set
2980+# CONFIG_CRYPTO_SALSA20 is not set
2981+# CONFIG_CRYPTO_SEED is not set
2982+# CONFIG_CRYPTO_SERPENT is not set
2983+# CONFIG_CRYPTO_TEA is not set
2984+# CONFIG_CRYPTO_TWOFISH is not set
2985+
2986+#
2987+# Compression
2988+#
2989+CONFIG_CRYPTO_DEFLATE=y
2990+# CONFIG_CRYPTO_ZLIB is not set
2991+CONFIG_CRYPTO_LZO=y
2992+
2993+#
2994+# Random Number Generation
2995+#
2996+# CONFIG_CRYPTO_ANSI_CPRNG is not set
2997+# CONFIG_CRYPTO_USER_API_HASH is not set
2998+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
2999+CONFIG_CRYPTO_HW=y
3000+CONFIG_CRYPTO_DEV_FSL_CAAM=y
3001+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
3002+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y
3003+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD=255
3004+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD=2048
3005+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
3006+# CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API is not set
3007+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
3008+# CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set
3009+# CONFIG_BINARY_PRINTF is not set
3010+
3011+#
3012+# Library routines
3013+#
3014+CONFIG_BITREVERSE=y
3015+CONFIG_RATIONAL=y
3016+CONFIG_CRC_CCITT=m
3017+CONFIG_CRC16=y
3018+# CONFIG_CRC_T10DIF is not set
3019+# CONFIG_CRC_ITU_T is not set
3020+CONFIG_CRC32=y
3021+# CONFIG_CRC7 is not set
3022+# CONFIG_LIBCRC32C is not set
3023+CONFIG_ZLIB_INFLATE=y
3024+CONFIG_ZLIB_DEFLATE=y
3025+CONFIG_LZO_COMPRESS=y
3026+CONFIG_LZO_DECOMPRESS=y
3027+# CONFIG_XZ_DEC is not set
3028+# CONFIG_XZ_DEC_BCJ is not set
3029+CONFIG_GENERIC_ALLOCATOR=y
3030+CONFIG_HAS_IOMEM=y
3031+CONFIG_HAS_IOPORT=y
3032+CONFIG_HAS_DMA=y
3033+CONFIG_CPU_RMAP=y
3034+CONFIG_NLATTR=y
3035+# CONFIG_AVERAGE is not set
3036diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
3037old mode 100755
3038new mode 100644
3039diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
3040old mode 100755
3041new mode 100644
3042diff --git a/arch/arm/mach-mx5/Makefile b/arch/arm/mach-mx5/Makefile
3043old mode 100755
3044new mode 100644
3045diff --git a/arch/arm/mach-mx5/board-mx50_rdp.c b/arch/arm/mach-mx5/board-mx50_rdp.c
3046old mode 100755
3047new mode 100644
3048diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c
3049old mode 100755
3050new mode 100644
3051diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c
3052old mode 100755
3053new mode 100644
3054diff --git a/arch/arm/mach-mx5/board-mx53_evk.c b/arch/arm/mach-mx5/board-mx53_evk.c
3055old mode 100755
3056new mode 100644
3057diff --git a/arch/arm/mach-mx5/board-mx53_loco.c b/arch/arm/mach-mx5/board-mx53_loco.c
3058old mode 100755
3059new mode 100644
3060diff --git a/arch/arm/mach-mx5/board-mx53_smd.c b/arch/arm/mach-mx5/board-mx53_smd.c
3061old mode 100755
3062new mode 100644
3063diff --git a/arch/arm/mach-mx5/bus_freq.c b/arch/arm/mach-mx5/bus_freq.c
3064old mode 100755
3065new mode 100644
3066diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c
3067old mode 100755
3068new mode 100644
3069diff --git a/arch/arm/mach-mx5/clock.c b/arch/arm/mach-mx5/clock.c
3070old mode 100755
3071new mode 100644
3072diff --git a/arch/arm/mach-mx5/clock_mx50.c b/arch/arm/mach-mx5/clock_mx50.c
3073old mode 100755
3074new mode 100644
3075diff --git a/arch/arm/mach-mx5/cpu.c b/arch/arm/mach-mx5/cpu.c
3076old mode 100755
3077new mode 100644
3078diff --git a/arch/arm/mach-mx5/cpu_op-mx50.c b/arch/arm/mach-mx5/cpu_op-mx50.c
3079old mode 100755
3080new mode 100644
3081diff --git a/arch/arm/mach-mx5/cpu_op-mx50.h b/arch/arm/mach-mx5/cpu_op-mx50.h
3082old mode 100755
3083new mode 100644
3084diff --git a/arch/arm/mach-mx5/cpu_op-mx51.c b/arch/arm/mach-mx5/cpu_op-mx51.c
3085old mode 100755
3086new mode 100644
3087diff --git a/arch/arm/mach-mx5/cpu_op-mx51.h b/arch/arm/mach-mx5/cpu_op-mx51.h
3088old mode 100755
3089new mode 100644
3090diff --git a/arch/arm/mach-mx5/cpu_op-mx53.c b/arch/arm/mach-mx5/cpu_op-mx53.c
3091old mode 100755
3092new mode 100644
3093diff --git a/arch/arm/mach-mx5/cpu_op-mx53.h b/arch/arm/mach-mx5/cpu_op-mx53.h
3094old mode 100755
3095new mode 100644
3096diff --git a/arch/arm/mach-mx5/crm_regs.h b/arch/arm/mach-mx5/crm_regs.h
3097old mode 100755
3098new mode 100644
3099diff --git a/arch/arm/mach-mx5/devices-imx50.h b/arch/arm/mach-mx5/devices-imx50.h
3100old mode 100755
3101new mode 100644
3102diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
3103old mode 100755
3104new mode 100644
3105diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h
3106old mode 100755
3107new mode 100644
3108diff --git a/arch/arm/mach-mx5/devices.c b/arch/arm/mach-mx5/devices.c
3109old mode 100755
3110new mode 100644
3111diff --git a/arch/arm/mach-mx5/devices.h b/arch/arm/mach-mx5/devices.h
3112old mode 100755
3113new mode 100644
3114diff --git a/arch/arm/mach-mx5/imx_bt_rfkill.c b/arch/arm/mach-mx5/imx_bt_rfkill.c
3115old mode 100755
3116new mode 100644
3117diff --git a/arch/arm/mach-mx5/mx50_ddr_freq.S b/arch/arm/mach-mx5/mx50_ddr_freq.S
3118old mode 100755
3119new mode 100644
3120diff --git a/arch/arm/mach-mx5/mx50_freq.c b/arch/arm/mach-mx5/mx50_freq.c
3121old mode 100755
3122new mode 100644
3123diff --git a/arch/arm/mach-mx5/mx50_suspend.S b/arch/arm/mach-mx5/mx50_suspend.S
3124old mode 100755
3125new mode 100644
3126diff --git a/arch/arm/mach-mx5/mx50_wfi.S b/arch/arm/mach-mx5/mx50_wfi.S
3127old mode 100755
3128new mode 100644
3129diff --git a/arch/arm/mach-mx5/mx53_loco_pmic_da9053.c b/arch/arm/mach-mx5/mx53_loco_pmic_da9053.c
3130old mode 100755
3131new mode 100644
3132diff --git a/arch/arm/mach-mx5/mx53_smd_pmic_da9053.c b/arch/arm/mach-mx5/mx53_smd_pmic_da9053.c
3133old mode 100755
3134new mode 100644
3135diff --git a/arch/arm/mach-mx5/pm.c b/arch/arm/mach-mx5/pm.c
3136old mode 100755
3137new mode 100644
3138diff --git a/arch/arm/mach-mx5/sdram_autogating.c b/arch/arm/mach-mx5/sdram_autogating.c
3139old mode 100755
3140new mode 100644
3141diff --git a/arch/arm/mach-mx5/suspend.S b/arch/arm/mach-mx5/suspend.S
3142old mode 100755
3143new mode 100644
3144diff --git a/arch/arm/mach-mx5/system.c b/arch/arm/mach-mx5/system.c
3145old mode 100755
3146new mode 100644
3147diff --git a/arch/arm/mach-mx5/usb.h b/arch/arm/mach-mx5/usb.h
3148old mode 100755
3149new mode 100644
3150diff --git a/arch/arm/mach-mx5/usb_dr.c b/arch/arm/mach-mx5/usb_dr.c
3151old mode 100755
3152new mode 100644
3153diff --git a/arch/arm/mach-mx5/usb_h1.c b/arch/arm/mach-mx5/usb_h1.c
3154old mode 100755
3155new mode 100644
3156diff --git a/arch/arm/mach-mx5/usb_h2.c b/arch/arm/mach-mx5/usb_h2.c
3157old mode 100755
3158new mode 100644
3159diff --git a/arch/arm/mach-mx6/Kconfig b/arch/arm/mach-mx6/Kconfig
3160index 45ae9ea..fad950e 100644
3161--- a/arch/arm/mach-mx6/Kconfig
3162+++ b/arch/arm/mach-mx6/Kconfig
3163@@ -173,6 +173,10 @@ config MACH_MX6Q_SABRELITE
3164 select IMX_HAVE_PLATFORM_IMX_ASRC
3165 select IMX_HAVE_PLATFORM_FLEXCAN
3166 select IMX_HAVE_PLATFORM_IMX_CAAM
3167+ select IMX_HAVE_PLATFORM_IMX_DVFS
3168+ select IMX_HAVE_PLATFORM_IMX_MIPI_CSI2
3169+ select IMX_HAVE_PLATFORM_IMX_PCIE
3170+ select IMX_HAVE_PLATFORM_PERFMON
3171 help
3172 Include support for i.MX 6Quad SABRE Lite platform. This includes specific
3173 configurations for the board and its peripherals.
3174diff --git a/arch/arm/mach-mx6/board-mx6q_sabrelite.c b/arch/arm/mach-mx6/board-mx6q_sabrelite.c
3175index eff81ac..6b66ea3 100644
3176--- a/arch/arm/mach-mx6/board-mx6q_sabrelite.c
3177+++ b/arch/arm/mach-mx6/board-mx6q_sabrelite.c
3178@@ -56,12 +56,15 @@
3179 #include <mach/mxc_dvfs.h>
3180 #include <mach/memory.h>
3181 #include <mach/iomux-mx6q.h>
3182+#include <mach/iomux-mx6dl.h>
3183 #include <mach/imx-uart.h>
3184 #include <mach/viv_gpu.h>
3185 #include <mach/ahci_sata.h>
3186 #include <mach/ipu-v3.h>
3187 #include <mach/mxc_hdmi.h>
3188 #include <mach/mxc_asrc.h>
3189+#include <linux/i2c/tsc2007.h>
3190+#include <linux/wl12xx.h>
3191
3192 #include <asm/irq.h>
3193 #include <asm/setup.h>
3194@@ -74,29 +77,53 @@
3195 #include "crm_regs.h"
3196 #include "cpu_op-mx6.h"
3197
3198-#define MX6Q_SABRELITE_SD3_CD IMX_GPIO_NR(7, 0)
3199-#define MX6Q_SABRELITE_SD3_WP IMX_GPIO_NR(7, 1)
3200-#define MX6Q_SABRELITE_SD4_CD IMX_GPIO_NR(2, 6)
3201-#define MX6Q_SABRELITE_SD4_WP IMX_GPIO_NR(2, 7)
3202-#define MX6Q_SABRELITE_ECSPI1_CS1 IMX_GPIO_NR(3, 19)
3203-#define MX6Q_SABRELITE_USB_OTG_PWR IMX_GPIO_NR(3, 22)
3204-#define MX6Q_SABRELITE_CAP_TCH_INT1 IMX_GPIO_NR(1, 9)
3205-#define MX6Q_SABRELITE_USB_HUB_RESET IMX_GPIO_NR(7, 12)
3206-#define MX6Q_SABRELITE_CAN1_STBY IMX_GPIO_NR(1, 2)
3207-#define MX6Q_SABRELITE_CAN1_EN IMX_GPIO_NR(1, 4)
3208-#define MX6Q_SABRELITE_MENU_KEY IMX_GPIO_NR(2, 1)
3209-#define MX6Q_SABRELITE_BACK_KEY IMX_GPIO_NR(2, 2)
3210-#define MX6Q_SABRELITE_ONOFF_KEY IMX_GPIO_NR(2, 3)
3211-#define MX6Q_SABRELITE_HOME_KEY IMX_GPIO_NR(2, 4)
3212-#define MX6Q_SABRELITE_VOL_UP_KEY IMX_GPIO_NR(7, 13)
3213-#define MX6Q_SABRELITE_VOL_DOWN_KEY IMX_GPIO_NR(4, 5)
3214-#define MX6Q_SABRELITE_CSI0_RST IMX_GPIO_NR(1, 8)
3215-#define MX6Q_SABRELITE_CSI0_PWN IMX_GPIO_NR(1, 6)
3216-
3217-#define MX6Q_SABRELITE_SD3_WP_PADCFG (PAD_CTL_PKE | PAD_CTL_PUE | \
3218+#define MX6_SABRELITE_SD3_CD IMX_GPIO_NR(7, 0)
3219+#define MX6_SABRELITE_SD3_WP IMX_GPIO_NR(7, 1)
3220+#define MX6_SABRELITE_SD4_CD IMX_GPIO_NR(2, 6)
3221+#define MX6_SABRELITE_SD4_WP IMX_GPIO_NR(2, 7)
3222+#define MX6_SABRELITE_ECSPI1_CS1 IMX_GPIO_NR(3, 19)
3223+#define MX6_SABRELITE_USB_OTG_PWR IMX_GPIO_NR(3, 22)
3224+#define MX6_SABRELITE_CAP_TCH_INT1 IMX_GPIO_NR(1, 9)
3225+#define MX6_SABRELITE_DRGB_IRQGPIO IMX_GPIO_NR(4, 20)
3226+#define MX6_SABRELITE_USB_HUB_RESET IMX_GPIO_NR(7, 12)
3227+#define MX6_SABRELITE_CAN1_STBY IMX_GPIO_NR(1, 2)
3228+#define MX6_SABRELITE_CAN1_EN IMX_GPIO_NR(1, 4)
3229+#define MX6_SABRELITE_CAN1_ERR IMX_GPIO_NR(1, 7)
3230+#define MX6_SABRELITE_MENU_KEY IMX_GPIO_NR(2, 1)
3231+#define MX6_SABRELITE_BACK_KEY IMX_GPIO_NR(2, 2)
3232+#define MX6_SABRELITE_ONOFF_KEY IMX_GPIO_NR(2, 3)
3233+#define MX6_SABRELITE_HOME_KEY IMX_GPIO_NR(2, 4)
3234+#define MX6_SABRELITE_VOL_UP_KEY IMX_GPIO_NR(7, 13)
3235+#define MX6_SABRELITE_VOL_DOWN_KEY IMX_GPIO_NR(4, 5)
3236+#define MX6_SABRELITE_CSI0_RST IMX_GPIO_NR(1, 8)
3237+#define MX6_SABRELITE_CSI0_PWN IMX_GPIO_NR(1, 6)
3238+#define MX6_SABRELITE_ENET_PHY_INT IMX_GPIO_NR(1, 28)
3239+
3240+#define N6_WL1271_WL_IRQ IMX_GPIO_NR(6, 14)
3241+#define N6_WL1271_WL_EN IMX_GPIO_NR(6, 15)
3242+#define N6_WL1271_BT_EN IMX_GPIO_NR(6, 16)
3243+
3244+#define MX6_SABRELITE_CAN1_ERR_TEST_PADCFG (PAD_CTL_PKE | PAD_CTL_PUE | \
3245+ PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED | \
3246+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
3247+#define MX6_SABRELITE_CAN1_ERR_PADCFG (PAD_CTL_PUE | \
3248+ PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED | \
3249+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
3250+#define MX6_SABRELITE_SD3_WP_PADCFG (PAD_CTL_PKE | PAD_CTL_PUE | \
3251 PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_MED | \
3252 PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
3253
3254+#define WEAK_PULLUP (PAD_CTL_HYS | PAD_CTL_PKE \
3255+ | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP)
3256+
3257+#define N6_IRQ_PADCFG (PAD_CTL_PUE | PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
3258+#define N6_IRQ_TEST_PADCFG (PAD_CTL_PKE | N6_IRQ_PADCFG)
3259+#define N6_EN_PADCFG (PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm)
3260+
3261+#include "pads-mx6_sabrelite.h"
3262+#define FOR_DL_SOLO
3263+#include "pads-mx6_sabrelite.h"
3264+
3265 void __init early_console_setup(unsigned long base, struct clk *clk);
3266 static struct clk *sata_clk;
3267
3268@@ -108,252 +135,49 @@ extern struct regulator *(*get_cpu_regulator)(void);
3269 extern void (*put_cpu_regulator)(void);
3270 extern void mx6_cpu_regulator_init(void);
3271
3272-static iomux_v3_cfg_t mx6q_sabrelite_pads[] = {
3273- /* AUDMUX */
3274- MX6Q_PAD_SD2_DAT0__AUDMUX_AUD4_RXD,
3275- MX6Q_PAD_SD2_DAT3__AUDMUX_AUD4_TXC,
3276- MX6Q_PAD_SD2_DAT2__AUDMUX_AUD4_TXD,
3277- MX6Q_PAD_SD2_DAT1__AUDMUX_AUD4_TXFS,
3278-
3279- /* CAN1 */
3280- MX6Q_PAD_KEY_ROW2__CAN1_RXCAN,
3281- MX6Q_PAD_KEY_COL2__CAN1_TXCAN,
3282- MX6Q_PAD_GPIO_2__GPIO_1_2, /* STNDBY */
3283- MX6Q_PAD_GPIO_7__GPIO_1_7, /* NERR */
3284- MX6Q_PAD_GPIO_4__GPIO_1_4, /* Enable */
3285-
3286- /* CCM */
3287- MX6Q_PAD_GPIO_0__CCM_CLKO, /* SGTL500 sys_mclk */
3288- MX6Q_PAD_GPIO_3__CCM_CLKO2, /* J5 - Camera MCLK */
3289-
3290- /* ECSPI1 */
3291- MX6Q_PAD_EIM_D17__ECSPI1_MISO,
3292- MX6Q_PAD_EIM_D18__ECSPI1_MOSI,
3293- MX6Q_PAD_EIM_D16__ECSPI1_SCLK,
3294- MX6Q_PAD_EIM_D19__GPIO_3_19, /*SS1*/
3295-
3296- /* ENET */
3297- MX6Q_PAD_ENET_MDIO__ENET_MDIO,
3298- MX6Q_PAD_ENET_MDC__ENET_MDC,
3299- MX6Q_PAD_RGMII_TXC__ENET_RGMII_TXC,
3300- MX6Q_PAD_RGMII_TD0__ENET_RGMII_TD0,
3301- MX6Q_PAD_RGMII_TD1__ENET_RGMII_TD1,
3302- MX6Q_PAD_RGMII_TD2__ENET_RGMII_TD2,
3303- MX6Q_PAD_RGMII_TD3__ENET_RGMII_TD3,
3304- MX6Q_PAD_RGMII_TX_CTL__ENET_RGMII_TX_CTL,
3305- MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK,
3306- MX6Q_PAD_RGMII_RXC__ENET_RGMII_RXC,
3307- MX6Q_PAD_RGMII_RD0__ENET_RGMII_RD0,
3308- MX6Q_PAD_RGMII_RD1__ENET_RGMII_RD1,
3309- MX6Q_PAD_RGMII_RD2__ENET_RGMII_RD2,
3310- MX6Q_PAD_RGMII_RD3__ENET_RGMII_RD3,
3311- MX6Q_PAD_RGMII_RX_CTL__ENET_RGMII_RX_CTL,
3312- MX6Q_PAD_ENET_TX_EN__GPIO_1_28, /* Micrel RGMII Phy Interrupt */
3313- MX6Q_PAD_EIM_D23__GPIO_3_23, /* RGMII reset */
3314-
3315- /* GPIO1 */
3316- MX6Q_PAD_ENET_RX_ER__GPIO_1_24, /* J9 - Microphone Detect */
3317-
3318- /* GPIO2 */
3319- MX6Q_PAD_NANDF_D1__GPIO_2_1, /* J14 - Menu Button */
3320- MX6Q_PAD_NANDF_D2__GPIO_2_2, /* J14 - Back Button */
3321- MX6Q_PAD_NANDF_D3__GPIO_2_3, /* J14 - Search Button */
3322- MX6Q_PAD_NANDF_D4__GPIO_2_4, /* J14 - Home Button */
3323- MX6Q_PAD_EIM_A22__GPIO_2_16, /* J12 - Boot Mode Select */
3324- MX6Q_PAD_EIM_A21__GPIO_2_17, /* J12 - Boot Mode Select */
3325- MX6Q_PAD_EIM_A20__GPIO_2_18, /* J12 - Boot Mode Select */
3326- MX6Q_PAD_EIM_A19__GPIO_2_19, /* J12 - Boot Mode Select */
3327- MX6Q_PAD_EIM_A18__GPIO_2_20, /* J12 - Boot Mode Select */
3328- MX6Q_PAD_EIM_A17__GPIO_2_21, /* J12 - Boot Mode Select */
3329- MX6Q_PAD_EIM_A16__GPIO_2_22, /* J12 - Boot Mode Select */
3330- MX6Q_PAD_EIM_RW__GPIO_2_26, /* J12 - Boot Mode Select */
3331- MX6Q_PAD_EIM_LBA__GPIO_2_27, /* J12 - Boot Mode Select */
3332- MX6Q_PAD_EIM_EB0__GPIO_2_28, /* J12 - Boot Mode Select */
3333- MX6Q_PAD_EIM_EB1__GPIO_2_29, /* J12 - Boot Mode Select */
3334- MX6Q_PAD_EIM_EB3__GPIO_2_31, /* J12 - Boot Mode Select */
3335-
3336- /* GPIO3 */
3337- MX6Q_PAD_EIM_DA0__GPIO_3_0, /* J12 - Boot Mode Select */
3338- MX6Q_PAD_EIM_DA1__GPIO_3_1, /* J12 - Boot Mode Select */
3339- MX6Q_PAD_EIM_DA2__GPIO_3_2, /* J12 - Boot Mode Select */
3340- MX6Q_PAD_EIM_DA3__GPIO_3_3, /* J12 - Boot Mode Select */
3341- MX6Q_PAD_EIM_DA4__GPIO_3_4, /* J12 - Boot Mode Select */
3342- MX6Q_PAD_EIM_DA5__GPIO_3_5, /* J12 - Boot Mode Select */
3343- MX6Q_PAD_EIM_DA6__GPIO_3_6, /* J12 - Boot Mode Select */
3344- MX6Q_PAD_EIM_DA7__GPIO_3_7, /* J12 - Boot Mode Select */
3345- MX6Q_PAD_EIM_DA8__GPIO_3_8, /* J12 - Boot Mode Select */
3346- MX6Q_PAD_EIM_DA9__GPIO_3_9, /* J12 - Boot Mode Select */
3347- MX6Q_PAD_EIM_DA10__GPIO_3_10, /* J12 - Boot Mode Select */
3348- MX6Q_PAD_EIM_DA11__GPIO_3_11, /* J12 - Boot Mode Select */
3349- MX6Q_PAD_EIM_DA12__GPIO_3_12, /* J12 - Boot Mode Select */
3350- MX6Q_PAD_EIM_DA13__GPIO_3_13, /* J12 - Boot Mode Select */
3351- MX6Q_PAD_EIM_DA14__GPIO_3_14, /* J12 - Boot Mode Select */
3352- MX6Q_PAD_EIM_DA15__GPIO_3_15, /* J12 - Boot Mode Select */
3353-
3354- /* GPIO4 */
3355- MX6Q_PAD_GPIO_19__GPIO_4_5, /* J14 - Volume Down */
3356-
3357- /* GPIO5 */
3358- MX6Q_PAD_EIM_WAIT__GPIO_5_0, /* J12 - Boot Mode Select */
3359- MX6Q_PAD_EIM_A24__GPIO_5_4, /* J12 - Boot Mode Select */
3360-
3361- /* GPIO6 */
3362- MX6Q_PAD_EIM_A23__GPIO_6_6, /* J12 - Boot Mode Select */
3363-
3364- /* GPIO7 */
3365- MX6Q_PAD_GPIO_17__GPIO_7_12, /* USB Hub Reset */
3366- MX6Q_PAD_GPIO_18__GPIO_7_13, /* J14 - Volume Up */
3367-
3368- /* I2C1, SGTL5000 */
3369- MX6Q_PAD_EIM_D21__I2C1_SCL, /* GPIO3[21] */
3370- MX6Q_PAD_EIM_D28__I2C1_SDA, /* GPIO3[28] */
3371-
3372- /* I2C2 Camera, MIPI */
3373- MX6Q_PAD_KEY_COL3__I2C2_SCL, /* GPIO4[12] */
3374- MX6Q_PAD_KEY_ROW3__I2C2_SDA, /* GPIO4[13] */
3375-
3376- /* I2C3 */
3377- MX6Q_PAD_GPIO_5__I2C3_SCL, /* GPIO1[5] - J7 - Display card */
3378-#ifdef CONFIG_FEC_1588
3379- MX6Q_PAD_GPIO_16__ENET_ANATOP_ETHERNET_REF_OUT,
3380-#else
3381- MX6Q_PAD_GPIO_16__I2C3_SDA, /* GPIO7[11] - J15 - RGB connector */
3382-#endif
3383+#define IOMUX_SETUP(pad_list) mxc_iomux_v3_setup_pads(mx6q_##pad_list, \
3384+ mx6dl_solo_##pad_list)
3385
3386- /* DISPLAY */
3387- MX6Q_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK,
3388- MX6Q_PAD_DI0_PIN15__IPU1_DI0_PIN15, /* DE */
3389- MX6Q_PAD_DI0_PIN2__IPU1_DI0_PIN2, /* HSync */
3390- MX6Q_PAD_DI0_PIN3__IPU1_DI0_PIN3, /* VSync */
3391- MX6Q_PAD_DI0_PIN4__IPU1_DI0_PIN4, /* Contrast */
3392- MX6Q_PAD_DISP0_DAT0__IPU1_DISP0_DAT_0,
3393- MX6Q_PAD_DISP0_DAT1__IPU1_DISP0_DAT_1,
3394- MX6Q_PAD_DISP0_DAT2__IPU1_DISP0_DAT_2,
3395- MX6Q_PAD_DISP0_DAT3__IPU1_DISP0_DAT_3,
3396- MX6Q_PAD_DISP0_DAT4__IPU1_DISP0_DAT_4,
3397- MX6Q_PAD_DISP0_DAT5__IPU1_DISP0_DAT_5,
3398- MX6Q_PAD_DISP0_DAT6__IPU1_DISP0_DAT_6,
3399- MX6Q_PAD_DISP0_DAT7__IPU1_DISP0_DAT_7,
3400- MX6Q_PAD_DISP0_DAT8__IPU1_DISP0_DAT_8,
3401- MX6Q_PAD_DISP0_DAT9__IPU1_DISP0_DAT_9,
3402- MX6Q_PAD_DISP0_DAT10__IPU1_DISP0_DAT_10,
3403- MX6Q_PAD_DISP0_DAT11__IPU1_DISP0_DAT_11,
3404- MX6Q_PAD_DISP0_DAT12__IPU1_DISP0_DAT_12,
3405- MX6Q_PAD_DISP0_DAT13__IPU1_DISP0_DAT_13,
3406- MX6Q_PAD_DISP0_DAT14__IPU1_DISP0_DAT_14,
3407- MX6Q_PAD_DISP0_DAT15__IPU1_DISP0_DAT_15,
3408- MX6Q_PAD_DISP0_DAT16__IPU1_DISP0_DAT_16,
3409- MX6Q_PAD_DISP0_DAT17__IPU1_DISP0_DAT_17,
3410- MX6Q_PAD_DISP0_DAT18__IPU1_DISP0_DAT_18,
3411- MX6Q_PAD_DISP0_DAT19__IPU1_DISP0_DAT_19,
3412- MX6Q_PAD_DISP0_DAT20__IPU1_DISP0_DAT_20,
3413- MX6Q_PAD_DISP0_DAT21__IPU1_DISP0_DAT_21,
3414- MX6Q_PAD_DISP0_DAT22__IPU1_DISP0_DAT_22,
3415- MX6Q_PAD_DISP0_DAT23__IPU1_DISP0_DAT_23,
3416- MX6Q_PAD_GPIO_7__GPIO_1_7, /* J7 - Display Connector GP */
3417- MX6Q_PAD_GPIO_9__GPIO_1_9, /* J7 - Display Connector GP */
3418- MX6Q_PAD_NANDF_D0__GPIO_2_0, /* J6 - LVDS Display contrast */
3419-
3420-
3421- /* PWM1 */
3422- MX6Q_PAD_SD1_DAT3__PWM1_PWMO, /* GPIO1[21] */
3423-
3424- /* PWM2 */
3425- MX6Q_PAD_SD1_DAT2__PWM2_PWMO, /* GPIO1[19] */
3426-
3427- /* PWM3 */
3428- MX6Q_PAD_SD1_DAT1__PWM3_PWMO, /* GPIO1[17] */
3429-
3430- /* PWM4 */
3431- MX6Q_PAD_SD1_CMD__PWM4_PWMO, /* GPIO1[18] */
3432-
3433- /* UART1 */
3434- MX6Q_PAD_SD3_DAT7__UART1_TXD,
3435- MX6Q_PAD_SD3_DAT6__UART1_RXD,
3436-
3437- /* UART2 for debug */
3438- MX6Q_PAD_EIM_D26__UART2_TXD,
3439- MX6Q_PAD_EIM_D27__UART2_RXD,
3440-
3441- /* USBOTG ID pin */
3442- MX6Q_PAD_GPIO_1__USBOTG_ID,
3443-
3444- /* USB OC pin */
3445- MX6Q_PAD_KEY_COL4__USBOH3_USBOTG_OC,
3446- MX6Q_PAD_EIM_D30__USBOH3_USBH1_OC,
3447-
3448- /* USDHC3 */
3449- MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ,
3450- MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ,
3451- MX6Q_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ,
3452- MX6Q_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ,
3453- MX6Q_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ,
3454- MX6Q_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ,
3455- MX6Q_PAD_SD3_DAT5__GPIO_7_0, /* J18 - SD3_CD */
3456- NEW_PAD_CTRL(MX6Q_PAD_SD3_DAT4__GPIO_7_1, MX6Q_SABRELITE_SD3_WP_PADCFG),
3457-
3458- /* USDHC4 */
3459- MX6Q_PAD_SD4_CLK__USDHC4_CLK_50MHZ,
3460- MX6Q_PAD_SD4_CMD__USDHC4_CMD_50MHZ,
3461- MX6Q_PAD_SD4_DAT0__USDHC4_DAT0_50MHZ,
3462- MX6Q_PAD_SD4_DAT1__USDHC4_DAT1_50MHZ,
3463- MX6Q_PAD_SD4_DAT2__USDHC4_DAT2_50MHZ,
3464- MX6Q_PAD_SD4_DAT3__USDHC4_DAT3_50MHZ,
3465- MX6Q_PAD_NANDF_D6__GPIO_2_6, /* J20 - SD4_CD */
3466- MX6Q_PAD_NANDF_D7__GPIO_2_7, /* SD4_WP */
3467-};
3468-
3469-static iomux_v3_cfg_t mx6q_sabrelite_csi0_sensor_pads[] = {
3470- /* IPU1 Camera */
3471- MX6Q_PAD_CSI0_DAT8__IPU1_CSI0_D_8,
3472- MX6Q_PAD_CSI0_DAT9__IPU1_CSI0_D_9,
3473- MX6Q_PAD_CSI0_DAT10__IPU1_CSI0_D_10,
3474- MX6Q_PAD_CSI0_DAT11__IPU1_CSI0_D_11,
3475- MX6Q_PAD_CSI0_DAT12__IPU1_CSI0_D_12,
3476- MX6Q_PAD_CSI0_DAT13__IPU1_CSI0_D_13,
3477- MX6Q_PAD_CSI0_DAT14__IPU1_CSI0_D_14,
3478- MX6Q_PAD_CSI0_DAT15__IPU1_CSI0_D_15,
3479- MX6Q_PAD_CSI0_DAT16__IPU1_CSI0_D_16,
3480- MX6Q_PAD_CSI0_DAT17__IPU1_CSI0_D_17,
3481- MX6Q_PAD_CSI0_DAT18__IPU1_CSI0_D_18,
3482- MX6Q_PAD_CSI0_DAT19__IPU1_CSI0_D_19,
3483- MX6Q_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN,
3484- MX6Q_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC,
3485- MX6Q_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK,
3486- MX6Q_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC,
3487- MX6Q_PAD_GPIO_6__GPIO_1_6, /* J5 - Camera GP */
3488- MX6Q_PAD_GPIO_8__GPIO_1_8, /* J5 - Camera Reset */
3489- MX6Q_PAD_SD1_DAT0__GPIO_1_16, /* J5 - Camera GP */
3490- MX6Q_PAD_NANDF_D5__GPIO_2_5, /* J16 - MIPI GP */
3491- MX6Q_PAD_NANDF_WP_B__GPIO_6_9, /* J16 - MIPI GP */
3492-};
3493-
3494-static iomux_v3_cfg_t mx6q_sabrelite_hdmi_ddc_pads[] = {
3495- MX6Q_PAD_KEY_COL3__HDMI_TX_DDC_SCL, /* HDMI DDC SCL */
3496- MX6Q_PAD_KEY_ROW3__HDMI_TX_DDC_SDA, /* HDMI DDC SDA */
3497-};
3498-
3499-static iomux_v3_cfg_t mx6q_sabrelite_i2c2_pads[] = {
3500- MX6Q_PAD_KEY_COL3__I2C2_SCL, /* I2C2 SCL */
3501- MX6Q_PAD_KEY_ROW3__I2C2_SDA, /* I2C2 SDA */
3502-};
3503-
3504-#define MX6Q_USDHC_PAD_SETTING(id, speed) \
3505-mx6q_sd##id##_##speed##mhz[] = { \
3506- MX6Q_PAD_SD##id##_CLK__USDHC##id##_CLK_##speed##MHZ, \
3507- MX6Q_PAD_SD##id##_CMD__USDHC##id##_CMD_##speed##MHZ, \
3508- MX6Q_PAD_SD##id##_DAT0__USDHC##id##_DAT0_##speed##MHZ, \
3509- MX6Q_PAD_SD##id##_DAT1__USDHC##id##_DAT1_##speed##MHZ, \
3510- MX6Q_PAD_SD##id##_DAT2__USDHC##id##_DAT2_##speed##MHZ, \
3511- MX6Q_PAD_SD##id##_DAT3__USDHC##id##_DAT3_##speed##MHZ, \
3512+int mxc_iomux_v3_setup_pads(iomux_v3_cfg_t *mx6q_pad_list,
3513+ iomux_v3_cfg_t *mx6dl_solo_pad_list)
3514+{
3515+ iomux_v3_cfg_t *p = cpu_is_mx6q() ? mx6q_pad_list : mx6dl_solo_pad_list;
3516+ int ret;
3517+
3518+ while (*p) {
3519+ ret = mxc_iomux_v3_setup_pad(*p);
3520+ if (ret)
3521+ return ret;
3522+ p++;
3523+ }
3524+ return 0;
3525 }
3526
3527-static iomux_v3_cfg_t MX6Q_USDHC_PAD_SETTING(3, 50);
3528-static iomux_v3_cfg_t MX6Q_USDHC_PAD_SETTING(3, 100);
3529-static iomux_v3_cfg_t MX6Q_USDHC_PAD_SETTING(3, 200);
3530-static iomux_v3_cfg_t MX6Q_USDHC_PAD_SETTING(4, 50);
3531-static iomux_v3_cfg_t MX6Q_USDHC_PAD_SETTING(4, 100);
3532-static iomux_v3_cfg_t MX6Q_USDHC_PAD_SETTING(4, 200);
3533+struct gpio n6w_wl1271_gpios[] __initdata = {
3534+ {.label = "wl1271_int", .gpio = N6_WL1271_WL_IRQ, .flags = GPIOF_DIR_IN},
3535+ {.label = "wl1271_bt_en", .gpio = N6_WL1271_BT_EN, .flags = 0},
3536+ {.label = "wl1271_wl_en", .gpio = N6_WL1271_WL_EN, .flags = 0},
3537+};
3538+
3539+int is_nitrogen6w(void)
3540+{
3541+ int ret = gpio_request_array(n6w_wl1271_gpios,
3542+ ARRAY_SIZE(n6w_wl1271_gpios));
3543+ if (ret) {
3544+ printk(KERN_ERR "%s gpio_request_array failed("
3545+ "%d) for n6w_wl1271_gpios\n", __func__, ret);
3546+ return ret;
3547+ }
3548+ ret = gpio_get_value(N6_WL1271_WL_IRQ);
3549+ if (ret <= 0) {
3550+ /* Sabrelite, not nitrogen6w */
3551+ gpio_free(N6_WL1271_WL_IRQ);
3552+ gpio_free(N6_WL1271_WL_EN);
3553+ gpio_free(N6_WL1271_BT_EN);
3554+ ret = 0;
3555+ }
3556+ return ret;
3557+}
3558
3559 enum sd_pad_mode {
3560 SD_PAD_MODE_LOW_SPEED,
3561@@ -365,35 +189,9 @@ static int plt_sd_pad_change(unsigned int index, int clock)
3562 {
3563 /* LOW speed is the default state of SD pads */
3564 static enum sd_pad_mode pad_mode = SD_PAD_MODE_LOW_SPEED;
3565+ int i = (index - 1) * SD_SPEED_CNT;
3566
3567- iomux_v3_cfg_t *sd_pads_200mhz = NULL;
3568- iomux_v3_cfg_t *sd_pads_100mhz = NULL;
3569- iomux_v3_cfg_t *sd_pads_50mhz = NULL;
3570-
3571- u32 sd_pads_200mhz_cnt;
3572- u32 sd_pads_100mhz_cnt;
3573- u32 sd_pads_50mhz_cnt;
3574-
3575- switch (index) {
3576- case 2:
3577- sd_pads_200mhz = mx6q_sd3_200mhz;
3578- sd_pads_100mhz = mx6q_sd3_100mhz;
3579- sd_pads_50mhz = mx6q_sd3_50mhz;
3580-
3581- sd_pads_200mhz_cnt = ARRAY_SIZE(mx6q_sd3_200mhz);
3582- sd_pads_100mhz_cnt = ARRAY_SIZE(mx6q_sd3_100mhz);
3583- sd_pads_50mhz_cnt = ARRAY_SIZE(mx6q_sd3_50mhz);
3584- break;
3585- case 3:
3586- sd_pads_200mhz = mx6q_sd4_200mhz;
3587- sd_pads_100mhz = mx6q_sd4_100mhz;
3588- sd_pads_50mhz = mx6q_sd4_50mhz;
3589-
3590- sd_pads_200mhz_cnt = ARRAY_SIZE(mx6q_sd4_200mhz);
3591- sd_pads_100mhz_cnt = ARRAY_SIZE(mx6q_sd4_100mhz);
3592- sd_pads_50mhz_cnt = ARRAY_SIZE(mx6q_sd4_50mhz);
3593- break;
3594- default:
3595+ if ((index < 1) || (index > 3)) {
3596 printk(KERN_ERR "no such SD host controller index %d\n", index);
3597 return -EINVAL;
3598 }
3599@@ -401,61 +199,71 @@ static int plt_sd_pad_change(unsigned int index, int clock)
3600 if (clock > 100000000) {
3601 if (pad_mode == SD_PAD_MODE_HIGH_SPEED)
3602 return 0;
3603- BUG_ON(!sd_pads_200mhz);
3604 pad_mode = SD_PAD_MODE_HIGH_SPEED;
3605- return mxc_iomux_v3_setup_multiple_pads(sd_pads_200mhz,
3606- sd_pads_200mhz_cnt);
3607+ i += _200MHZ;
3608 } else if (clock > 52000000) {
3609 if (pad_mode == SD_PAD_MODE_MED_SPEED)
3610 return 0;
3611- BUG_ON(!sd_pads_100mhz);
3612 pad_mode = SD_PAD_MODE_MED_SPEED;
3613- return mxc_iomux_v3_setup_multiple_pads(sd_pads_100mhz,
3614- sd_pads_100mhz_cnt);
3615+ i += _100MHZ;
3616 } else {
3617 if (pad_mode == SD_PAD_MODE_LOW_SPEED)
3618 return 0;
3619- BUG_ON(!sd_pads_50mhz);
3620 pad_mode = SD_PAD_MODE_LOW_SPEED;
3621- return mxc_iomux_v3_setup_multiple_pads(sd_pads_50mhz,
3622- sd_pads_50mhz_cnt);
3623+ i += _50MHZ;
3624 }
3625+ return IOMUX_SETUP(sd_pads[i]);
3626 }
3627
3628-static const struct esdhc_platform_data mx6q_sabrelite_sd3_data __initconst = {
3629- .cd_gpio = MX6Q_SABRELITE_SD3_CD,
3630- .wp_gpio = MX6Q_SABRELITE_SD3_WP,
3631+#ifdef CONFIG_WL12XX_PLATFORM_DATA
3632+static struct esdhc_platform_data mx6_sabrelite_sd2_data = {
3633+ .always_present = 1,
3634+ .cd_gpio = -1,
3635+ .wp_gpio = -1,
3636+ .keep_power_at_suspend = 0,
3637+ .caps = MMC_CAP_POWER_OFF_CARD,
3638+ .platform_pad_change = plt_sd_pad_change,
3639+};
3640+#endif
3641+
3642+static struct esdhc_platform_data mx6_sabrelite_sd3_data = {
3643+ .cd_gpio = MX6_SABRELITE_SD3_CD,
3644+ .wp_gpio = MX6_SABRELITE_SD3_WP,
3645 .keep_power_at_suspend = 1,
3646 .platform_pad_change = plt_sd_pad_change,
3647 };
3648
3649-static const struct esdhc_platform_data mx6q_sabrelite_sd4_data __initconst = {
3650- .cd_gpio = MX6Q_SABRELITE_SD4_CD,
3651- .wp_gpio = MX6Q_SABRELITE_SD4_WP,
3652+static const struct esdhc_platform_data mx6_sabrelite_sd4_data __initconst = {
3653+ .cd_gpio = MX6_SABRELITE_SD4_CD,
3654+ .wp_gpio = -1,
3655 .keep_power_at_suspend = 1,
3656 .platform_pad_change = plt_sd_pad_change,
3657 };
3658
3659 static const struct anatop_thermal_platform_data
3660- mx6q_sabrelite_anatop_thermal_data __initconst = {
3661+ mx6_sabrelite_anatop_thermal_data __initconst = {
3662 .name = "anatop_thermal",
3663 };
3664
3665-static inline void mx6q_sabrelite_init_uart(void)
3666-{
3667- imx6q_add_imx_uart(0, NULL);
3668- imx6q_add_imx_uart(1, NULL);
3669-}
3670+static const struct imxuart_platform_data mx6_arm2_uart2_data __initconst = {
3671+ .flags = IMXUART_HAVE_RTSCTS | IMXUART_SDMA,
3672+ .dma_req_rx = MX6Q_DMA_REQ_UART3_RX,
3673+ .dma_req_tx = MX6Q_DMA_REQ_UART3_TX,
3674+};
3675
3676-static int mx6q_sabrelite_fec_phy_init(struct phy_device *phydev)
3677+static int mx6_sabrelite_fec_phy_init(struct phy_device *phydev)
3678 {
3679- /* prefer master mode, disable 1000 Base-T capable */
3680- phy_write(phydev, 0x9, 0x1c00);
3681+ /* prefer master mode */
3682+ phy_write(phydev, 0x9, 0x1f00);
3683
3684 /* min rx data delay */
3685 phy_write(phydev, 0x0b, 0x8105);
3686 phy_write(phydev, 0x0c, 0x0000);
3687
3688+ /* min tx data delay */
3689+ phy_write(phydev, 0x0b, 0x8106);
3690+ phy_write(phydev, 0x0c, 0x0000);
3691+
3692 /* max rx/tx clock delay, min rx/tx control delay */
3693 phy_write(phydev, 0x0b, 0x8104);
3694 phy_write(phydev, 0x0c, 0xf0f0);
3695@@ -465,17 +273,18 @@ static int mx6q_sabrelite_fec_phy_init(struct phy_device *phydev)
3696 }
3697
3698 static struct fec_platform_data fec_data __initdata = {
3699- .init = mx6q_sabrelite_fec_phy_init,
3700+ .init = mx6_sabrelite_fec_phy_init,
3701 .phy = PHY_INTERFACE_MODE_RGMII,
3702+ .phy_irq = gpio_to_irq(MX6_SABRELITE_ENET_PHY_INT)
3703 };
3704
3705-static int mx6q_sabrelite_spi_cs[] = {
3706- MX6Q_SABRELITE_ECSPI1_CS1,
3707+static int mx6_sabrelite_spi_cs[] = {
3708+ MX6_SABRELITE_ECSPI1_CS1,
3709 };
3710
3711-static const struct spi_imx_master mx6q_sabrelite_spi_data __initconst = {
3712- .chipselect = mx6q_sabrelite_spi_cs,
3713- .num_chipselect = ARRAY_SIZE(mx6q_sabrelite_spi_cs),
3714+static const struct spi_imx_master mx6_sabrelite_spi_data __initconst = {
3715+ .chipselect = mx6_sabrelite_spi_cs,
3716+ .num_chipselect = ARRAY_SIZE(mx6_sabrelite_spi_cs),
3717 };
3718
3719 #if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)
3720@@ -483,10 +292,15 @@ static struct mtd_partition imx6_sabrelite_spi_nor_partitions[] = {
3721 {
3722 .name = "bootloader",
3723 .offset = 0,
3724- .size = 0x00100000,
3725+ .size = 768*1024,
3726+ },
3727+ {
3728+ .name = "ubparams",
3729+ .offset = MTDPART_OFS_APPEND,
3730+ .size = 8*1024,
3731 },
3732 {
3733- .name = "kernel",
3734+ .name = "unused",
3735 .offset = MTDPART_OFS_APPEND,
3736 .size = MTDPART_SIZ_FULL,
3737 },
3738@@ -565,7 +379,7 @@ static struct platform_device mx6_sabrelite_audio_device = {
3739 .name = "imx-sgtl5000",
3740 };
3741
3742-static struct imxi2c_platform_data mx6q_sabrelite_i2c_data = {
3743+static struct imxi2c_platform_data mx6_sabrelite_i2c_data = {
3744 .bitrate = 100000,
3745 };
3746
3747@@ -575,35 +389,58 @@ static struct i2c_board_info mxc_i2c0_board_info[] __initdata = {
3748 },
3749 };
3750
3751-static void mx6q_csi0_cam_powerdown(int powerdown)
3752+static void mx6_csi0_cam_powerdown(int powerdown)
3753 {
3754 if (powerdown)
3755- gpio_set_value(MX6Q_SABRELITE_CSI0_PWN, 1);
3756+ gpio_set_value(MX6_SABRELITE_CSI0_PWN, 1);
3757 else
3758- gpio_set_value(MX6Q_SABRELITE_CSI0_PWN, 0);
3759+ gpio_set_value(MX6_SABRELITE_CSI0_PWN, 0);
3760
3761 msleep(2);
3762 }
3763
3764-static void mx6q_csi0_io_init(void)
3765+static void camera_reset(int power_gp, int reset_gp, int reset_gp2)
3766 {
3767- mxc_iomux_v3_setup_multiple_pads(mx6q_sabrelite_csi0_sensor_pads,
3768- ARRAY_SIZE(mx6q_sabrelite_csi0_sensor_pads));
3769-
3770 /* Camera power down */
3771- gpio_request(MX6Q_SABRELITE_CSI0_PWN, "cam-pwdn");
3772- gpio_direction_output(MX6Q_SABRELITE_CSI0_PWN, 1);
3773+ gpio_request(power_gp, "cam-pwdn");
3774+ gpio_request(reset_gp, "cam-reset");
3775+ gpio_request(reset_gp2, "cam-reset2");
3776+ gpio_direction_output(power_gp, 1);
3777+ /* Camera reset */
3778+ gpio_direction_output(reset_gp, 0);
3779+ gpio_direction_output(reset_gp2, 0);
3780+ msleep(1);
3781+ gpio_set_value(power_gp, 0);
3782 msleep(1);
3783- gpio_set_value(MX6Q_SABRELITE_CSI0_PWN, 0);
3784+ gpio_set_value(reset_gp, 1);
3785+ gpio_set_value(reset_gp2, 1);
3786+}
3787
3788- /* Camera reset */
3789- gpio_request(MX6Q_SABRELITE_CSI0_RST, "cam-reset");
3790- gpio_direction_output(MX6Q_SABRELITE_CSI0_RST, 1);
3791+#if defined(CONFIG_MXC_CAMERA_OV5640_MIPI) || defined(CONFIG_MXC_CAMERA_OV5640_MIPI_MODULE)
3792+static void mx6_mipi_sensor_io_init(void)
3793+{
3794+ IOMUX_SETUP(sabrelite_mipi_pads);
3795
3796- gpio_set_value(MX6Q_SABRELITE_CSI0_RST, 0);
3797- msleep(1);
3798- gpio_set_value(MX6Q_SABRELITE_CSI0_RST, 1);
3799+ camera_reset(MX6_SABRELITE_CSI0_PWN, IMX_GPIO_NR(2, 5),
3800+ IMX_GPIO_NR(6, 11));
3801+/*for mx6dl, mipi virtual channel 1 connect to csi 1*/
3802+ if (cpu_is_mx6dl())
3803+ mxc_iomux_set_gpr_register(13, 3, 3, 1);
3804+}
3805+
3806+static struct fsl_mxc_camera_platform_data ov5640_mipi_data = {
3807+ .mclk = 24000000,
3808+ .csi = 0,
3809+ .io_init = mx6_mipi_sensor_io_init,
3810+ .pwdn = mx6_csi0_cam_powerdown,
3811+};
3812+#else
3813+static void mx6_csi0_io_init(void)
3814+{
3815+ IOMUX_SETUP(sabrelite_csi0_sensor_pads);
3816
3817+ camera_reset(MX6_SABRELITE_CSI0_PWN, MX6_SABRELITE_CSI0_RST,
3818+ IMX_GPIO_NR(6, 11));
3819 /* For MX6Q GPR1 bit19 and bit20 meaning:
3820 * Bit19: 0 - Enable mipi to IPU1 CSI0
3821 * virtual channel is fixed to 0
3822@@ -616,43 +453,72 @@ static void mx6q_csi0_io_init(void)
3823 * IPU2 CSI0 directly connect to mipi csi2,
3824 * virtual channel is fixed to 2
3825 */
3826- mxc_iomux_set_gpr_register(1, 19, 1, 1);
3827+ if (cpu_is_mx6q())
3828+ mxc_iomux_set_gpr_register(1, 19, 1, 1);
3829+ else
3830+ mxc_iomux_set_gpr_register(13, 0, 3, 4);
3831 }
3832
3833 static struct fsl_mxc_camera_platform_data camera_data = {
3834 .mclk = 24000000,
3835 .mclk_source = 0,
3836 .csi = 0,
3837- .io_init = mx6q_csi0_io_init,
3838- .pwdn = mx6q_csi0_cam_powerdown,
3839+ .io_init = mx6_csi0_io_init,
3840+ .pwdn = mx6_csi0_cam_powerdown,
3841 };
3842
3843+#endif
3844+
3845 static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
3846 {
3847 I2C_BOARD_INFO("mxc_hdmi_i2c", 0x50),
3848 },
3849+#if defined(CONFIG_MXC_CAMERA_OV5640_MIPI) || defined(CONFIG_MXC_CAMERA_OV5640_MIPI_MODULE)
3850+ {
3851+ I2C_BOARD_INFO("ov5640_mipi", 0x3c),
3852+ .platform_data = (void *)&ov5640_mipi_data,
3853+ },
3854+#else
3855 {
3856 I2C_BOARD_INFO("ov5642", 0x3c),
3857 .platform_data = (void *)&camera_data,
3858 },
3859+#endif
3860+};
3861+
3862+static struct tsc2007_platform_data tsc2007_info = {
3863+ .model = 2004,
3864+ .x_plate_ohms = 500,
3865 };
3866
3867 static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
3868 {
3869 I2C_BOARD_INFO("egalax_ts", 0x4),
3870- .irq = gpio_to_irq(MX6Q_SABRELITE_CAP_TCH_INT1),
3871+ .irq = gpio_to_irq(MX6_SABRELITE_CAP_TCH_INT1),
3872+ },
3873+ {
3874+ I2C_BOARD_INFO("tsc2004", 0x48),
3875+ .platform_data = &tsc2007_info,
3876+ .irq = gpio_to_irq(MX6_SABRELITE_DRGB_IRQGPIO),
3877+ },
3878+#if defined(CONFIG_TOUCHSCREEN_FT5X06) \
3879+ || defined(CONFIG_TOUCHSCREEN_FT5X06_MODULE)
3880+ {
3881+ I2C_BOARD_INFO("ft5x06-ts", 0x38),
3882+ .irq = gpio_to_irq(MX6_SABRELITE_CAP_TCH_INT1),
3883 },
3884+#endif
3885 };
3886
3887-static void imx6q_sabrelite_usbotg_vbus(bool on)
3888+static void imx6_sabrelite_usbotg_vbus(bool on)
3889 {
3890 if (on)
3891- gpio_set_value(MX6Q_SABRELITE_USB_OTG_PWR, 1);
3892+ gpio_set_value(MX6_SABRELITE_USB_OTG_PWR, 1);
3893 else
3894- gpio_set_value(MX6Q_SABRELITE_USB_OTG_PWR, 0);
3895+ gpio_set_value(MX6_SABRELITE_USB_OTG_PWR, 0);
3896 }
3897
3898-static void __init imx6q_sabrelite_init_usb(void)
3899+static void __init imx6_sabrelite_init_usb(void)
3900 {
3901 int ret = 0;
3902
3903@@ -660,21 +526,21 @@ static void __init imx6q_sabrelite_init_usb(void)
3904 /* disable external charger detect,
3905 * or it will affect signal quality at dp .
3906 */
3907- ret = gpio_request(MX6Q_SABRELITE_USB_OTG_PWR, "usb-pwr");
3908+ ret = gpio_request(MX6_SABRELITE_USB_OTG_PWR, "usb-pwr");
3909 if (ret) {
3910- pr_err("failed to get GPIO MX6Q_SABRELITE_USB_OTG_PWR: %d\n",
3911+ pr_err("failed to get GPIO MX6_SABRELITE_USB_OTG_PWR: %d\n",
3912 ret);
3913 return;
3914 }
3915- gpio_direction_output(MX6Q_SABRELITE_USB_OTG_PWR, 0);
3916+ gpio_direction_output(MX6_SABRELITE_USB_OTG_PWR, 0);
3917 mxc_iomux_set_gpr_register(1, 13, 1, 1);
3918
3919- mx6_set_otghost_vbus_func(imx6q_sabrelite_usbotg_vbus);
3920+ mx6_set_otghost_vbus_func(imx6_sabrelite_usbotg_vbus);
3921 mx6_usb_dr_init();
3922 }
3923
3924 /* HW Initialization, if return 0, initialization is successful. */
3925-static int mx6q_sabrelite_sata_init(struct device *dev, void __iomem *addr)
3926+static int mx6_sabrelite_sata_init(struct device *dev, void __iomem *addr)
3927 {
3928 u32 tmpdata;
3929 int ret = 0;
3930@@ -734,39 +600,45 @@ put_sata_clk:
3931 return ret;
3932 }
3933
3934-static void mx6q_sabrelite_sata_exit(struct device *dev)
3935+static void mx6_sabrelite_sata_exit(struct device *dev)
3936 {
3937 clk_disable(sata_clk);
3938 clk_put(sata_clk);
3939 }
3940
3941-static struct ahci_platform_data mx6q_sabrelite_sata_data = {
3942- .init = mx6q_sabrelite_sata_init,
3943- .exit = mx6q_sabrelite_sata_exit,
3944+static struct ahci_platform_data mx6_sabrelite_sata_data = {
3945+ .init = mx6_sabrelite_sata_init,
3946+ .exit = mx6_sabrelite_sata_exit,
3947 };
3948
3949-static struct gpio mx6q_sabrelite_flexcan_gpios[] = {
3950- { MX6Q_SABRELITE_CAN1_EN, GPIOF_OUT_INIT_LOW, "flexcan1-en" },
3951- { MX6Q_SABRELITE_CAN1_STBY, GPIOF_OUT_INIT_LOW, "flexcan1-stby" },
3952+static struct gpio mx6_sabrelite_flexcan_gpios[] = {
3953+ { MX6_SABRELITE_CAN1_ERR, GPIOF_DIR_IN, "flexcan1-err" },
3954+ { MX6_SABRELITE_CAN1_EN, GPIOF_OUT_INIT_LOW, "flexcan1-en" },
3955+ { MX6_SABRELITE_CAN1_STBY, GPIOF_OUT_INIT_LOW, "flexcan1-stby" },
3956 };
3957
3958-static void mx6q_sabrelite_flexcan0_switch(int enable)
3959+static void mx6_sabrelite_flexcan0_mc33902_switch(int enable)
3960 {
3961- if (enable) {
3962- gpio_set_value(MX6Q_SABRELITE_CAN1_EN, 1);
3963- gpio_set_value(MX6Q_SABRELITE_CAN1_STBY, 1);
3964- } else {
3965- gpio_set_value(MX6Q_SABRELITE_CAN1_EN, 0);
3966- gpio_set_value(MX6Q_SABRELITE_CAN1_STBY, 0);
3967- }
3968+ gpio_set_value(MX6_SABRELITE_CAN1_EN, enable);
3969+ gpio_set_value(MX6_SABRELITE_CAN1_STBY, enable);
3970+}
3971+
3972+static void mx6_sabrelite_flexcan0_tja1040_switch(int enable)
3973+{
3974+ gpio_set_value(MX6_SABRELITE_CAN1_STBY, enable ^ 1);
3975 }
3976
3977 static const struct flexcan_platform_data
3978- mx6q_sabrelite_flexcan0_pdata __initconst = {
3979- .transceiver_switch = mx6q_sabrelite_flexcan0_switch,
3980+ mx6_sabrelite_flexcan0_mc33902_pdata __initconst = {
3981+ .transceiver_switch = mx6_sabrelite_flexcan0_mc33902_switch,
3982 };
3983
3984-static struct viv_gpu_platform_data imx6q_gpu_pdata __initdata = {
3985+static const struct flexcan_platform_data
3986+ mx6_sabrelite_flexcan0_tja1040_pdata __initconst = {
3987+ .transceiver_switch = mx6_sabrelite_flexcan0_tja1040_switch,
3988+};
3989+
3990+static struct viv_gpu_platform_data imx6_gpu_pdata __initdata = {
3991 .reserved_mem_size = SZ_128M,
3992 };
3993
3994@@ -834,14 +706,12 @@ static void hdmi_init(int ipu_id, int disp_id)
3995
3996 static void hdmi_enable_ddc_pin(void)
3997 {
3998- mxc_iomux_v3_setup_multiple_pads(mx6q_sabrelite_hdmi_ddc_pads,
3999- ARRAY_SIZE(mx6q_sabrelite_hdmi_ddc_pads));
4000+ IOMUX_SETUP(sabrelite_hdmi_ddc_pads);
4001 }
4002
4003 static void hdmi_disable_ddc_pin(void)
4004 {
4005- mxc_iomux_v3_setup_multiple_pads(mx6q_sabrelite_i2c2_pads,
4006- ARRAY_SIZE(mx6q_sabrelite_i2c2_pads));
4007+ IOMUX_SETUP(sabrelite_i2c2_pads);
4008 }
4009
4010 static struct fsl_mxc_hdmi_platform_data hdmi_data = {
4011@@ -852,7 +722,7 @@ static struct fsl_mxc_hdmi_platform_data hdmi_data = {
4012
4013 static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = {
4014 .ipu_id = 0,
4015- .disp_id = 0,
4016+ .disp_id = 1,
4017 };
4018
4019 static struct fsl_mxc_lcd_platform_data lcdif_data = {
4020@@ -904,7 +774,7 @@ static void sabrelite_suspend_exit(void)
4021 {
4022 /* resume restore */
4023 }
4024-static const struct pm_platform_data mx6q_sabrelite_pm_data __initconst = {
4025+static const struct pm_platform_data mx6_sabrelite_pm_data __initconst = {
4026 .name = "imx_pm",
4027 .suspend_enter = sabrelite_suspend_enter,
4028 .suspend_exit = sabrelite_suspend_exit,
4029@@ -922,12 +792,12 @@ static const struct pm_platform_data mx6q_sabrelite_pm_data __initconst = {
4030 }
4031
4032 static struct gpio_keys_button sabrelite_buttons[] = {
4033- GPIO_BUTTON(MX6Q_SABRELITE_ONOFF_KEY, KEY_POWER, 1, "key-power", 1),
4034- GPIO_BUTTON(MX6Q_SABRELITE_MENU_KEY, KEY_MENU, 1, "key-memu", 0),
4035- GPIO_BUTTON(MX6Q_SABRELITE_HOME_KEY, KEY_HOME, 1, "key-home", 0),
4036- GPIO_BUTTON(MX6Q_SABRELITE_BACK_KEY, KEY_BACK, 1, "key-back", 0),
4037- GPIO_BUTTON(MX6Q_SABRELITE_VOL_UP_KEY, KEY_VOLUMEUP, 1, "volume-up", 0),
4038- GPIO_BUTTON(MX6Q_SABRELITE_VOL_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0),
4039+ GPIO_BUTTON(MX6_SABRELITE_ONOFF_KEY, KEY_POWER, 1, "key-power", 1),
4040+ GPIO_BUTTON(MX6_SABRELITE_MENU_KEY, KEY_MENU, 1, "key-memu", 0),
4041+ GPIO_BUTTON(MX6_SABRELITE_HOME_KEY, KEY_HOME, 1, "key-home", 0),
4042+ GPIO_BUTTON(MX6_SABRELITE_BACK_KEY, KEY_BACK, 1, "key-back", 0),
4043+ GPIO_BUTTON(MX6_SABRELITE_VOL_UP_KEY, KEY_VOLUMEUP, 1, "volume-up", 0),
4044+ GPIO_BUTTON(MX6_SABRELITE_VOL_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0),
4045 };
4046
4047 static struct gpio_keys_platform_data sabrelite_button_data = {
4048@@ -952,6 +822,54 @@ static void __init sabrelite_add_device_buttons(void)
4049 static void __init sabrelite_add_device_buttons(void) {}
4050 #endif
4051
4052+#ifdef CONFIG_WL12XX_PLATFORM_DATA
4053+static void wl1271_set_power(bool enable)
4054+{
4055+ if (0 == enable) {
4056+ gpio_set_value(N6_WL1271_WL_EN, 0); /* momentarily disable */
4057+ mdelay(2);
4058+ gpio_set_value(N6_WL1271_WL_EN, 1);
4059+ }
4060+}
4061+
4062+struct wl12xx_platform_data n6q_wlan_data __initdata = {
4063+ .irq = gpio_to_irq(N6_WL1271_WL_IRQ),
4064+ .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */
4065+ .set_power = wl1271_set_power,
4066+};
4067+
4068+static struct regulator_consumer_supply n6q_vwl1271_consumers[] = {
4069+ REGULATOR_SUPPLY("vmmc", "sdhci-esdhc-imx.1"),
4070+};
4071+
4072+static struct regulator_init_data n6q_vwl1271_init = {
4073+ .constraints = {
4074+ .name = "VDD_1.8V",
4075+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
4076+ },
4077+ .num_consumer_supplies = ARRAY_SIZE(n6q_vwl1271_consumers),
4078+ .consumer_supplies = n6q_vwl1271_consumers,
4079+};
4080+
4081+static struct fixed_voltage_config n6q_vwl1271_reg_config = {
4082+ .supply_name = "vwl1271",
4083+ .microvolts = 1800000, /* 1.80V */
4084+ .gpio = N6_WL1271_WL_EN,
4085+ .startup_delay = 70000, /* 70ms */
4086+ .enable_high = 1,
4087+ .enabled_at_boot = 0,
4088+ .init_data = &n6q_vwl1271_init,
4089+};
4090+
4091+static struct platform_device n6q_vwl1271_reg_devices = {
4092+ .name = "reg-fixed-voltage",
4093+ .id = 4,
4094+ .dev = {
4095+ .platform_data = &n6q_vwl1271_reg_config,
4096+ },
4097+};
4098+#endif
4099+
4100 static struct regulator_consumer_supply sabrelite_vmmc_consumers[] = {
4101 REGULATOR_SUPPLY("vmmc", "sdhci-esdhc-imx.2"),
4102 REGULATOR_SUPPLY("vmmc", "sdhci-esdhc-imx.3"),
4103@@ -1056,7 +974,7 @@ static struct platform_device sgtl5000_sabrelite_vddd_reg_devices = {
4104
4105 #endif /* CONFIG_SND_SOC_SGTL5000 */
4106
4107-static int imx6q_init_audio(void)
4108+static int imx6_init_audio(void)
4109 {
4110 mxc_register_device(&mx6_sabrelite_audio_device,
4111 &mx6_sabrelite_audio_data);
4112@@ -1069,6 +987,15 @@ static int imx6q_init_audio(void)
4113 return 0;
4114 }
4115
4116+/* PWM0_PWMO: backlight control on DRGB connector */
4117+static struct platform_pwm_backlight_data mx6_sabrelite_pwm0_backlight_data = {
4118+ .pwm_id = 0,
4119+ .max_brightness = 255,
4120+ .dft_brightness = 255,
4121+ .pwm_period_ns = 1000000000/32768,
4122+};
4123+
4124+/* PWM3_PWMO: backlight control on LDB connector */
4125 static struct platform_pwm_backlight_data mx6_sabrelite_pwm_backlight_data = {
4126 .pwm_id = 3,
4127 .max_brightness = 255,
4128@@ -1115,19 +1042,37 @@ static struct mipi_csi2_platform_data mipi_csi2_pdata = {
4129 .pixel_clk = "emi_clk",
4130 };
4131
4132+static const struct imx_pcie_platform_data pcie_data __initconst = {
4133+ .pcie_pwr_en = -EINVAL,
4134+ .pcie_rst = -EINVAL, //MX6_SABRELITE_CAP_TCH_INT1,
4135+ .pcie_wake_up = -EINVAL,
4136+ .pcie_dis = -EINVAL,
4137+};
4138+
4139 /*!
4140 * Board specific initialization.
4141 */
4142 static void __init mx6_sabrelite_board_init(void)
4143 {
4144- int i;
4145+ int i, j;
4146 int ret;
4147 struct clk *clko2;
4148 struct clk *new_parent;
4149 int rate;
4150+ int isn6 ;
4151
4152- mxc_iomux_v3_setup_multiple_pads(mx6q_sabrelite_pads,
4153- ARRAY_SIZE(mx6q_sabrelite_pads));
4154+ IOMUX_SETUP(common_pads);
4155+
4156+ isn6 = is_nitrogen6w();
4157+ if (isn6) {
4158+ mx6_sabrelite_audio_data.ext_port = 3;
4159+ mx6_sabrelite_sd3_data.wp_gpio = -1 ;
4160+ IOMUX_SETUP(nitrogen6x_pads);
4161+ } else {
4162+ IOMUX_SETUP(sabrelite_pads);
4163+ }
4164+ printk(KERN_ERR "------------ Board type %s\n",
4165+ isn6 ? "Nitrogen6X/W" : "Sabre Lite");
4166
4167 #ifdef CONFIG_FEC_1588
4168 /* Set GPIO_16 input for IEEE-1588 ts_clk and RMII reference clock
4169@@ -1141,13 +1086,26 @@ static void __init mx6_sabrelite_board_init(void)
4170 gp_reg_id = sabrelite_dvfscore_data.reg_id;
4171 soc_reg_id = sabrelite_dvfscore_data.soc_id;
4172 pu_reg_id = sabrelite_dvfscore_data.pu_id;
4173- mx6q_sabrelite_init_uart();
4174+
4175+ imx6q_add_imx_uart(0, NULL);
4176+ imx6q_add_imx_uart(1, NULL);
4177+ if (isn6)
4178+ imx6q_add_imx_uart(2, &mx6_arm2_uart2_data);
4179+
4180+ if (!cpu_is_mx6q()) {
4181+ ldb_data.ipu_id = 0;
4182+ ldb_data.sec_ipu_id = 0;
4183+ }
4184 imx6q_add_mxc_hdmi_core(&hdmi_core_data);
4185
4186 imx6q_add_ipuv3(0, &ipu_data[0]);
4187- imx6q_add_ipuv3(1, &ipu_data[1]);
4188-
4189- for (i = 0; i < ARRAY_SIZE(sabrelite_fb_data); i++)
4190+ if (cpu_is_mx6q()) {
4191+ imx6q_add_ipuv3(1, &ipu_data[1]);
4192+ j = ARRAY_SIZE(sabrelite_fb_data);
4193+ } else {
4194+ j = (ARRAY_SIZE(sabrelite_fb_data) + 1) / 2;
4195+ }
4196+ for (i = 0; i < j; i++)
4197 imx6q_add_ipuv3fb(i, &sabrelite_fb_data[i]);
4198
4199 imx6q_add_vdoa();
4200@@ -1161,9 +1119,9 @@ static void __init mx6_sabrelite_board_init(void)
4201
4202 imx6q_add_imx_caam();
4203
4204- imx6q_add_imx_i2c(0, &mx6q_sabrelite_i2c_data);
4205- imx6q_add_imx_i2c(1, &mx6q_sabrelite_i2c_data);
4206- imx6q_add_imx_i2c(2, &mx6q_sabrelite_i2c_data);
4207+ imx6q_add_imx_i2c(0, &mx6_sabrelite_i2c_data);
4208+ imx6q_add_imx_i2c(1, &mx6_sabrelite_i2c_data);
4209+ imx6q_add_imx_i2c(2, &mx6_sabrelite_i2c_data);
4210 i2c_register_board_info(0, mxc_i2c0_board_info,
4211 ARRAY_SIZE(mxc_i2c0_board_info));
4212 i2c_register_board_info(1, mxc_i2c1_board_info,
4213@@ -1172,33 +1130,35 @@ static void __init mx6_sabrelite_board_init(void)
4214 ARRAY_SIZE(mxc_i2c2_board_info));
4215
4216 /* SPI */
4217- imx6q_add_ecspi(0, &mx6q_sabrelite_spi_data);
4218+ imx6q_add_ecspi(0, &mx6_sabrelite_spi_data);
4219 spi_device_init();
4220
4221 imx6q_add_mxc_hdmi(&hdmi_data);
4222
4223- imx6q_add_anatop_thermal_imx(1, &mx6q_sabrelite_anatop_thermal_data);
4224+ imx6q_add_anatop_thermal_imx(1, &mx6_sabrelite_anatop_thermal_data);
4225 imx6_init_fec(fec_data);
4226- imx6q_add_pm_imx(0, &mx6q_sabrelite_pm_data);
4227- imx6q_add_sdhci_usdhc_imx(3, &mx6q_sabrelite_sd4_data);
4228- imx6q_add_sdhci_usdhc_imx(2, &mx6q_sabrelite_sd3_data);
4229- imx_add_viv_gpu(&imx6_gpu_data, &imx6q_gpu_pdata);
4230- imx6q_sabrelite_init_usb();
4231- imx6q_add_ahci(0, &mx6q_sabrelite_sata_data);
4232+ imx6q_add_pm_imx(0, &mx6_sabrelite_pm_data);
4233+ imx6q_add_sdhci_usdhc_imx(2, &mx6_sabrelite_sd3_data);
4234+ imx6q_add_sdhci_usdhc_imx(3, &mx6_sabrelite_sd4_data);
4235+ imx_add_viv_gpu(&imx6_gpu_data, &imx6_gpu_pdata);
4236+ imx6_sabrelite_init_usb();
4237+ if (cpu_is_mx6q())
4238+ imx6q_add_ahci(0, &mx6_sabrelite_sata_data);
4239 imx6q_add_vpu();
4240- imx6q_init_audio();
4241+ imx6_init_audio();
4242 platform_device_register(&sabrelite_vmmc_reg_devices);
4243 imx_asrc_data.asrc_core_clk = clk_get(NULL, "asrc_clk");
4244 imx_asrc_data.asrc_audio_clk = clk_get(NULL, "asrc_serial_clk");
4245 imx6q_add_asrc(&imx_asrc_data);
4246
4247 /* release USB Hub reset */
4248- gpio_set_value(MX6Q_SABRELITE_USB_HUB_RESET, 1);
4249+ gpio_set_value(MX6_SABRELITE_USB_HUB_RESET, 1);
4250
4251 imx6q_add_mxc_pwm(0);
4252 imx6q_add_mxc_pwm(1);
4253 imx6q_add_mxc_pwm(2);
4254 imx6q_add_mxc_pwm(3);
4255+ imx6q_add_mxc_pwm_backlight(0, &mx6_sabrelite_pwm0_backlight_data);
4256 imx6q_add_mxc_pwm_backlight(3, &mx6_sabrelite_pwm_backlight_data);
4257
4258 imx6q_add_otp();
4259@@ -1214,12 +1174,23 @@ static void __init mx6_sabrelite_board_init(void)
4260 imx6q_add_hdmi_soc();
4261 imx6q_add_hdmi_soc_dai();
4262
4263- ret = gpio_request_array(mx6q_sabrelite_flexcan_gpios,
4264- ARRAY_SIZE(mx6q_sabrelite_flexcan_gpios));
4265- if (ret)
4266+ ret = gpio_request_array(mx6_sabrelite_flexcan_gpios,
4267+ ARRAY_SIZE(mx6_sabrelite_flexcan_gpios));
4268+ if (ret) {
4269 pr_err("failed to request flexcan1-gpios: %d\n", ret);
4270- else
4271- imx6q_add_flexcan0(&mx6q_sabrelite_flexcan0_pdata);
4272+ } else {
4273+ int ret = gpio_get_value(MX6_SABRELITE_CAN1_ERR);
4274+ if (ret == 0) {
4275+ imx6q_add_flexcan0(&mx6_sabrelite_flexcan0_tja1040_pdata);
4276+ pr_info("Flexcan NXP tja1040\n");
4277+ } else if (ret == 1) {
4278+ IOMUX_SETUP(sabrelite_mc33902_flexcan_pads);
4279+ imx6q_add_flexcan0(&mx6_sabrelite_flexcan0_mc33902_pdata);
4280+ pr_info("Flexcan Freescale mc33902\n");
4281+ } else {
4282+ pr_info("Flexcan gpio_get_value CAN1_ERR failed\n");
4283+ }
4284+ }
4285
4286 clko2 = clk_get(NULL, "clko2_clk");
4287 if (IS_ERR(clko2))
4288@@ -1235,6 +1206,28 @@ static void __init mx6_sabrelite_board_init(void)
4289 clk_enable(clko2);
4290 imx6q_add_busfreq();
4291
4292+#ifdef CONFIG_WL12XX_PLATFORM_DATA
4293+ if (isn6) {
4294+ imx6q_add_sdhci_usdhc_imx(1, &mx6_sabrelite_sd2_data);
4295+ /* WL12xx WLAN Init */
4296+ if (wl12xx_set_platform_data(&n6q_wlan_data))
4297+ pr_err("error setting wl12xx data\n");
4298+ platform_device_register(&n6q_vwl1271_reg_devices);
4299+
4300+ gpio_set_value(N6_WL1271_WL_EN, 1); /* momentarily enable */
4301+ gpio_set_value(N6_WL1271_BT_EN, 1);
4302+ mdelay(2);
4303+ gpio_set_value(N6_WL1271_WL_EN, 0);
4304+ gpio_set_value(N6_WL1271_BT_EN, 0);
4305+
4306+ gpio_free(N6_WL1271_WL_EN);
4307+ gpio_free(N6_WL1271_BT_EN);
4308+ mdelay(1);
4309+ }
4310+#endif
4311+
4312+ imx6q_add_pcie(&pcie_data);
4313+
4314 imx6q_add_perfmon(0);
4315 imx6q_add_perfmon(1);
4316 imx6q_add_perfmon(2);
4317@@ -1258,16 +1251,16 @@ static struct sys_timer mx6_sabrelite_timer = {
4318 .init = mx6_sabrelite_timer_init,
4319 };
4320
4321-static void __init mx6q_sabrelite_reserve(void)
4322+static void __init mx6_sabrelite_reserve(void)
4323 {
4324 #if defined(CONFIG_MXC_GPU_VIV) || defined(CONFIG_MXC_GPU_VIV_MODULE)
4325 phys_addr_t phys;
4326
4327- if (imx6q_gpu_pdata.reserved_mem_size) {
4328- phys = memblock_alloc_base(imx6q_gpu_pdata.reserved_mem_size,
4329+ if (imx6_gpu_pdata.reserved_mem_size) {
4330+ phys = memblock_alloc_base(imx6_gpu_pdata.reserved_mem_size,
4331 SZ_4K, SZ_1G);
4332- memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size);
4333- imx6q_gpu_pdata.reserved_mem_base = phys;
4334+ memblock_remove(phys, imx6_gpu_pdata.reserved_mem_size);
4335+ imx6_gpu_pdata.reserved_mem_base = phys;
4336 }
4337 #endif
4338 }
4339@@ -1283,5 +1276,5 @@ MACHINE_START(MX6Q_SABRELITE, "Freescale i.MX 6Quad Sabre-Lite Board")
4340 .init_irq = mx6_init_irq,
4341 .init_machine = mx6_sabrelite_board_init,
4342 .timer = &mx6_sabrelite_timer,
4343- .reserve = mx6q_sabrelite_reserve,
4344+ .reserve = mx6_sabrelite_reserve,
4345 MACHINE_END
4346diff --git a/arch/arm/mach-mx6/pads-mx6_sabrelite.h b/arch/arm/mach-mx6/pads-mx6_sabrelite.h
4347new file mode 100644
4348index 0000000..63a556f
4349--- /dev/null
4350+++ b/arch/arm/mach-mx6/pads-mx6_sabrelite.h
4351@@ -0,0 +1,348 @@
4352+#undef MX6PAD
4353+#undef MX6NAME
4354+
4355+#ifdef FOR_DL_SOLO
4356+#define MX6PAD(a) MX6DL_PAD_##a
4357+#define MX6NAME(a) mx6dl_solo_##a
4358+#else
4359+#define MX6PAD(a) MX6Q_PAD_##a
4360+#define MX6NAME(a) mx6q_##a
4361+#endif
4362+
4363+#define MX6Q_USDHC_PAD_CTRL_50MHZ MX6Q_USDHC_PAD_CTRL
4364+#define MX6Q_PAD_SD3_CLK__USDHC3_CLK MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ
4365+#define MX6Q_PAD_SD3_CMD__USDHC3_CMD MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ
4366+#define MX6Q_PAD_SD3_DAT0__USDHC3_DAT0 MX6Q_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ
4367+#define MX6Q_PAD_SD3_DAT1__USDHC3_DAT1 MX6Q_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ
4368+#define MX6Q_PAD_SD3_DAT2__USDHC3_DAT2 MX6Q_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ
4369+#define MX6Q_PAD_SD3_DAT3__USDHC3_DAT3 MX6Q_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ
4370+#define MX6Q_PAD_SD4_CLK__USDHC4_CLK MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ
4371+#define MX6Q_PAD_SD4_CMD__USDHC4_CMD MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ
4372+#define MX6Q_PAD_SD4_DAT0__USDHC4_DAT0 MX6Q_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ
4373+#define MX6Q_PAD_SD4_DAT1__USDHC4_DAT1 MX6Q_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ
4374+#define MX6Q_PAD_SD4_DAT2__USDHC4_DAT2 MX6Q_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ
4375+#define MX6Q_PAD_SD4_DAT3__USDHC4_DAT3 MX6Q_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ
4376+
4377+#define MX6DL_PAD_SD3_CLK__USDHC3_CLK MX6DL_PAD_SD3_CLK__USDHC3_CLK_50MHZ
4378+#define MX6DL_PAD_SD3_CMD__USDHC3_CMD MX6DL_PAD_SD3_CMD__USDHC3_CMD_50MHZ
4379+#define MX6DL_PAD_SD3_DAT0__USDHC3_DAT0 MX6DL_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ
4380+#define MX6DL_PAD_SD3_DAT1__USDHC3_DAT1 MX6DL_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ
4381+#define MX6DL_PAD_SD3_DAT2__USDHC3_DAT2 MX6DL_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ
4382+#define MX6DL_PAD_SD3_DAT3__USDHC3_DAT3 MX6DL_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ
4383+#define MX6DL_PAD_SD4_CLK__USDHC4_CLK MX6DL_PAD_SD3_CLK__USDHC3_CLK_50MHZ
4384+#define MX6DL_PAD_SD4_CMD__USDHC4_CMD MX6DL_PAD_SD3_CMD__USDHC3_CMD_50MHZ
4385+#define MX6DL_PAD_SD4_DAT0__USDHC4_DAT0 MX6DL_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ
4386+#define MX6DL_PAD_SD4_DAT1__USDHC4_DAT1 MX6DL_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ
4387+#define MX6DL_PAD_SD4_DAT2__USDHC4_DAT2 MX6DL_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ
4388+#define MX6DL_PAD_SD4_DAT3__USDHC4_DAT3 MX6DL_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ
4389+
4390+#define NP(id, speed, pin) \
4391+ NEW_PAD_CTRL(MX6PAD(SD##id##_##pin##__USDHC##id##_##pin), \
4392+ MX6Q_USDHC_PAD_CTRL_##speed##MHZ)
4393+
4394+#define SD_PINS(id, speed) \
4395+ NP(id, speed, CLK), \
4396+ NP(id, speed, CMD), \
4397+ NP(id, speed, DAT0), \
4398+ NP(id, speed, DAT1), \
4399+ NP(id, speed, DAT2), \
4400+ NP(id, speed, DAT3)
4401+
4402+static iomux_v3_cfg_t MX6NAME(nitrogen6x_pads)[] = {
4403+ /* AUDMUX */
4404+ MX6PAD(CSI0_DAT7__AUDMUX_AUD3_RXD),
4405+ MX6PAD(CSI0_DAT4__AUDMUX_AUD3_TXC),
4406+ MX6PAD(CSI0_DAT5__AUDMUX_AUD3_TXD),
4407+ MX6PAD(CSI0_DAT6__AUDMUX_AUD3_TXFS),
4408+
4409+ NEW_PAD_CTRL(MX6PAD(NANDF_CS1__GPIO_6_14), N6_IRQ_PADCFG), /* wl1271 wl_irq */
4410+
4411+ /* USDHC2 */
4412+ SD_PINS(2, 50),
4413+ MX6PAD(SD1_CLK__OSC32K_32K_OUT), /* wl1271 clock */
4414+
4415+ /* UART3 for wl1271 */
4416+ MX6PAD(EIM_D24__UART3_TXD),
4417+ MX6PAD(EIM_D25__UART3_RXD),
4418+ MX6PAD(EIM_D23__UART3_CTS),
4419+ MX6PAD(EIM_D31__UART3_RTS),
4420+ 0
4421+};
4422+
4423+static iomux_v3_cfg_t MX6NAME(sabrelite_pads)[] = {
4424+ /* AUDMUX */
4425+ MX6PAD(SD2_DAT0__AUDMUX_AUD4_RXD),
4426+ MX6PAD(SD2_DAT3__AUDMUX_AUD4_TXC),
4427+ MX6PAD(SD2_DAT2__AUDMUX_AUD4_TXD),
4428+ MX6PAD(SD2_DAT1__AUDMUX_AUD4_TXFS),
4429+ 0
4430+};
4431+
4432+static iomux_v3_cfg_t MX6NAME(common_pads)[] = {
4433+ /* CAN1 */
4434+ MX6PAD(KEY_ROW2__CAN1_RXCAN),
4435+ MX6PAD(KEY_COL2__CAN1_TXCAN),
4436+ MX6PAD(GPIO_2__GPIO_1_2), /* STNDBY */
4437+ MX6PAD(GPIO_7__GPIO_1_7), /* NERR */
4438+ NEW_PAD_CTRL(MX6PAD(GPIO_7__GPIO_1_7), MX6_SABRELITE_CAN1_ERR_TEST_PADCFG),
4439+ MX6PAD(GPIO_4__GPIO_1_4), /* Enable */
4440+
4441+ /* CCM */
4442+ MX6PAD(GPIO_0__CCM_CLKO), /* SGTL500 sys_mclk */
4443+ MX6PAD(GPIO_3__CCM_CLKO2), /* J5 - Camera MCLK */
4444+
4445+ /* ECSPI1 */
4446+ MX6PAD(EIM_D17__ECSPI1_MISO),
4447+ MX6PAD(EIM_D18__ECSPI1_MOSI),
4448+ MX6PAD(EIM_D16__ECSPI1_SCLK),
4449+ MX6PAD(EIM_D19__GPIO_3_19), /*SS1*/
4450+
4451+ /* ENET */
4452+ MX6PAD(ENET_MDIO__ENET_MDIO),
4453+ MX6PAD(ENET_MDC__ENET_MDC),
4454+ MX6PAD(RGMII_TXC__ENET_RGMII_TXC),
4455+ MX6PAD(RGMII_TD0__ENET_RGMII_TD0),
4456+ MX6PAD(RGMII_TD1__ENET_RGMII_TD1),
4457+ MX6PAD(RGMII_TD2__ENET_RGMII_TD2),
4458+ MX6PAD(RGMII_TD3__ENET_RGMII_TD3),
4459+ MX6PAD(RGMII_TX_CTL__ENET_RGMII_TX_CTL),
4460+ MX6PAD(ENET_REF_CLK__ENET_TX_CLK),
4461+ MX6PAD(RGMII_RXC__ENET_RGMII_RXC),
4462+ MX6PAD(RGMII_RD0__ENET_RGMII_RD0),
4463+ MX6PAD(RGMII_RD1__ENET_RGMII_RD1),
4464+ MX6PAD(RGMII_RD2__ENET_RGMII_RD2),
4465+ MX6PAD(RGMII_RD3__ENET_RGMII_RD3),
4466+ MX6PAD(RGMII_RX_CTL__ENET_RGMII_RX_CTL),
4467+ MX6PAD(ENET_TX_EN__GPIO_1_28), /* Micrel RGMII Phy Interrupt */
4468+
4469+ /* GPIO1 */
4470+ MX6PAD(ENET_RX_ER__GPIO_1_24), /* J9 - Microphone Detect */
4471+
4472+ /* GPIO2 */
4473+ MX6PAD(NANDF_D1__GPIO_2_1), /* J14 - Menu Button */
4474+ MX6PAD(NANDF_D2__GPIO_2_2), /* J14 - Back Button */
4475+ MX6PAD(NANDF_D3__GPIO_2_3), /* J14 - Search Button */
4476+ MX6PAD(NANDF_D4__GPIO_2_4), /* J14 - Home Button */
4477+ MX6PAD(EIM_A22__GPIO_2_16), /* J12 - Boot Mode Select */
4478+ MX6PAD(EIM_A21__GPIO_2_17), /* J12 - Boot Mode Select */
4479+ MX6PAD(EIM_A20__GPIO_2_18), /* J12 - Boot Mode Select */
4480+ MX6PAD(EIM_A19__GPIO_2_19), /* J12 - Boot Mode Select */
4481+ MX6PAD(EIM_A18__GPIO_2_20), /* J12 - Boot Mode Select */
4482+ MX6PAD(EIM_A17__GPIO_2_21), /* J12 - Boot Mode Select */
4483+ MX6PAD(EIM_A16__GPIO_2_22), /* J12 - Boot Mode Select */
4484+ MX6PAD(EIM_RW__GPIO_2_26), /* J12 - Boot Mode Select */
4485+ MX6PAD(EIM_LBA__GPIO_2_27), /* J12 - Boot Mode Select */
4486+ MX6PAD(EIM_EB0__GPIO_2_28), /* J12 - Boot Mode Select */
4487+ MX6PAD(EIM_EB1__GPIO_2_29), /* J12 - Boot Mode Select */
4488+ MX6PAD(EIM_EB3__GPIO_2_31), /* J12 - Boot Mode Select */
4489+
4490+ /* GPIO3 */
4491+ MX6PAD(EIM_DA0__GPIO_3_0), /* J12 - Boot Mode Select */
4492+ MX6PAD(EIM_DA1__GPIO_3_1), /* J12 - Boot Mode Select */
4493+ MX6PAD(EIM_DA2__GPIO_3_2), /* J12 - Boot Mode Select */
4494+ MX6PAD(EIM_DA3__GPIO_3_3), /* J12 - Boot Mode Select */
4495+ MX6PAD(EIM_DA4__GPIO_3_4), /* J12 - Boot Mode Select */
4496+ MX6PAD(EIM_DA5__GPIO_3_5), /* J12 - Boot Mode Select */
4497+ MX6PAD(EIM_DA6__GPIO_3_6), /* J12 - Boot Mode Select */
4498+ MX6PAD(EIM_DA7__GPIO_3_7), /* J12 - Boot Mode Select */
4499+ MX6PAD(EIM_DA8__GPIO_3_8), /* J12 - Boot Mode Select */
4500+ MX6PAD(EIM_DA9__GPIO_3_9), /* J12 - Boot Mode Select */
4501+ MX6PAD(EIM_DA10__GPIO_3_10), /* J12 - Boot Mode Select */
4502+ MX6PAD(EIM_DA11__GPIO_3_11), /* J12 - Boot Mode Select */
4503+ MX6PAD(EIM_DA12__GPIO_3_12), /* J12 - Boot Mode Select */
4504+ MX6PAD(EIM_DA13__GPIO_3_13), /* J12 - Boot Mode Select */
4505+ MX6PAD(EIM_DA14__GPIO_3_14), /* J12 - Boot Mode Select */
4506+ MX6PAD(EIM_DA15__GPIO_3_15), /* J12 - Boot Mode Select */
4507+
4508+ /* GPIO4 */
4509+ MX6PAD(GPIO_19__GPIO_4_5), /* J14 - Volume Down */
4510+
4511+ /* GPIO5 */
4512+ MX6PAD(EIM_WAIT__GPIO_5_0), /* J12 - Boot Mode Select */
4513+ MX6PAD(EIM_A24__GPIO_5_4), /* J12 - Boot Mode Select */
4514+
4515+ /* GPIO6 */
4516+ MX6PAD(EIM_A23__GPIO_6_6), /* J12 - Boot Mode Select */
4517+
4518+ /* NANDF_CS1/2/3 are unused for sabrelite */
4519+ NEW_PAD_CTRL(MX6PAD(NANDF_CS1__GPIO_6_14), N6_IRQ_TEST_PADCFG), /* wl1271 wl_irq */
4520+ NEW_PAD_CTRL(MX6PAD(NANDF_CS2__GPIO_6_15), N6_EN_PADCFG), /* wl1271 wl_en */
4521+ NEW_PAD_CTRL(MX6PAD(NANDF_CS3__GPIO_6_16), N6_EN_PADCFG), /* wl1271 bt_en */
4522+
4523+ /* GPIO7 */
4524+ MX6PAD(GPIO_17__GPIO_7_12), /* USB Hub Reset */
4525+ MX6PAD(GPIO_18__GPIO_7_13), /* J14 - Volume Up */
4526+
4527+ /* I2C1, SGTL5000 */
4528+ MX6PAD(EIM_D21__I2C1_SCL), /* GPIO3[21] */
4529+ MX6PAD(EIM_D28__I2C1_SDA), /* GPIO3[28] */
4530+
4531+ /* I2C2 Camera, MIPI */
4532+ MX6PAD(KEY_COL3__I2C2_SCL), /* GPIO4[12] */
4533+ MX6PAD(KEY_ROW3__I2C2_SDA), /* GPIO4[13] */
4534+
4535+ /* I2C3 */
4536+ MX6PAD(GPIO_5__I2C3_SCL), /* GPIO1[5] - J7 - Display card */
4537+#ifdef CONFIG_FEC_1588
4538+ MX6PAD(GPIO_16__ENET_ANATOP_ETHERNET_REF_OUT),
4539+#else
4540+ MX6PAD(GPIO_16__I2C3_SDA), /* GPIO7[11] - J15 - RGB connector */
4541+#endif
4542+
4543+ /* DISPLAY */
4544+ MX6PAD(DI0_DISP_CLK__IPU1_DI0_DISP_CLK),
4545+ MX6PAD(DI0_PIN15__IPU1_DI0_PIN15), /* DE */
4546+ MX6PAD(DI0_PIN2__IPU1_DI0_PIN2), /* HSync */
4547+ MX6PAD(DI0_PIN3__IPU1_DI0_PIN3), /* VSync */
4548+ NEW_PAD_CTRL(MX6PAD(DI0_PIN4__GPIO_4_20),
4549+ WEAK_PULLUP), /* I2C Touch IRQ */
4550+ MX6PAD(DISP0_DAT0__IPU1_DISP0_DAT_0),
4551+ MX6PAD(DISP0_DAT1__IPU1_DISP0_DAT_1),
4552+ MX6PAD(DISP0_DAT2__IPU1_DISP0_DAT_2),
4553+ MX6PAD(DISP0_DAT3__IPU1_DISP0_DAT_3),
4554+ MX6PAD(DISP0_DAT4__IPU1_DISP0_DAT_4),
4555+ MX6PAD(DISP0_DAT5__IPU1_DISP0_DAT_5),
4556+ MX6PAD(DISP0_DAT6__IPU1_DISP0_DAT_6),
4557+ MX6PAD(DISP0_DAT7__IPU1_DISP0_DAT_7),
4558+ MX6PAD(DISP0_DAT8__IPU1_DISP0_DAT_8),
4559+ MX6PAD(DISP0_DAT9__IPU1_DISP0_DAT_9),
4560+ MX6PAD(DISP0_DAT10__IPU1_DISP0_DAT_10),
4561+ MX6PAD(DISP0_DAT11__IPU1_DISP0_DAT_11),
4562+ MX6PAD(DISP0_DAT12__IPU1_DISP0_DAT_12),
4563+ MX6PAD(DISP0_DAT13__IPU1_DISP0_DAT_13),
4564+ MX6PAD(DISP0_DAT14__IPU1_DISP0_DAT_14),
4565+ MX6PAD(DISP0_DAT15__IPU1_DISP0_DAT_15),
4566+ MX6PAD(DISP0_DAT16__IPU1_DISP0_DAT_16),
4567+ MX6PAD(DISP0_DAT17__IPU1_DISP0_DAT_17),
4568+ MX6PAD(DISP0_DAT18__IPU1_DISP0_DAT_18),
4569+ MX6PAD(DISP0_DAT19__IPU1_DISP0_DAT_19),
4570+ MX6PAD(DISP0_DAT20__IPU1_DISP0_DAT_20),
4571+ MX6PAD(DISP0_DAT21__IPU1_DISP0_DAT_21),
4572+ MX6PAD(DISP0_DAT22__IPU1_DISP0_DAT_22),
4573+ MX6PAD(DISP0_DAT23__IPU1_DISP0_DAT_23),
4574+ MX6PAD(GPIO_7__GPIO_1_7), /* J7 - Display Connector GP */
4575+ MX6PAD(GPIO_9__GPIO_1_9), /* J7 - Display Connector GP */
4576+ MX6PAD(NANDF_D0__GPIO_2_0), /* J6 - LVDS Display contrast */
4577+
4578+
4579+ /* PWM1 */
4580+ MX6PAD(SD1_DAT3__PWM1_PWMO), /* GPIO1[21] */
4581+
4582+ /* PWM2 */
4583+ MX6PAD(SD1_DAT2__PWM2_PWMO), /* GPIO1[19] */
4584+
4585+ /* PWM3 */
4586+ MX6PAD(SD1_DAT1__PWM3_PWMO), /* GPIO1[17] */
4587+
4588+ /* PWM4 */
4589+ MX6PAD(SD1_CMD__PWM4_PWMO), /* GPIO1[18] */
4590+
4591+ /* UART1 */
4592+ MX6PAD(SD3_DAT7__UART1_TXD),
4593+ MX6PAD(SD3_DAT6__UART1_RXD),
4594+
4595+ /* UART2 for debug */
4596+ MX6PAD(EIM_D26__UART2_TXD),
4597+ MX6PAD(EIM_D27__UART2_RXD),
4598+
4599+ /* USBOTG ID pin */
4600+ MX6PAD(GPIO_1__USBOTG_ID),
4601+
4602+ /* USB OC pin */
4603+ MX6PAD(KEY_COL4__USBOH3_USBOTG_OC),
4604+ MX6PAD(EIM_D30__USBOH3_USBH1_OC),
4605+
4606+ /* USDHC3 */
4607+ SD_PINS(3, 50),
4608+ MX6PAD(SD3_DAT5__GPIO_7_0), /* J18 - SD3_CD */
4609+ NEW_PAD_CTRL(MX6PAD(SD3_DAT4__GPIO_7_1), MX6_SABRELITE_SD3_WP_PADCFG),
4610+
4611+ /* USDHC4 */
4612+ SD_PINS(4, 50),
4613+ MX6PAD(NANDF_D6__GPIO_2_6), /* J20 - SD4_CD */
4614+ MX6PAD(NANDF_D7__GPIO_2_7), /* SD4_WP */
4615+ 0
4616+};
4617+
4618+#if defined(CONFIG_MXC_CAMERA_OV5640_MIPI) || defined(CONFIG_MXC_CAMERA_OV5640_MIPI_MODULE)
4619+static iomux_v3_cfg_t MX6NAME(sabrelite_mipi_pads)[] = {
4620+ MX6PAD(NANDF_D5__GPIO_2_5), /* Camera Reset, Nitrogen6x */
4621+ MX6PAD(NANDF_CS0__GPIO_6_11), /* Camera Reset, SOM jumpered */
4622+ MX6PAD(GPIO_6__GPIO_1_6), /* Camera GP */
4623+ 0
4624+};
4625+#else
4626+static iomux_v3_cfg_t MX6NAME(sabrelite_csi0_sensor_pads)[] = {
4627+ /* IPU1 Camera */
4628+ MX6PAD(CSI0_DAT8__IPU1_CSI0_D_8),
4629+ MX6PAD(CSI0_DAT9__IPU1_CSI0_D_9),
4630+ MX6PAD(CSI0_DAT10__IPU1_CSI0_D_10),
4631+ MX6PAD(CSI0_DAT11__IPU1_CSI0_D_11),
4632+ MX6PAD(CSI0_DAT12__IPU1_CSI0_D_12),
4633+ MX6PAD(CSI0_DAT13__IPU1_CSI0_D_13),
4634+ MX6PAD(CSI0_DAT14__IPU1_CSI0_D_14),
4635+ MX6PAD(CSI0_DAT15__IPU1_CSI0_D_15),
4636+ MX6PAD(CSI0_DAT16__IPU1_CSI0_D_16),
4637+ MX6PAD(CSI0_DAT17__IPU1_CSI0_D_17),
4638+ MX6PAD(CSI0_DAT18__IPU1_CSI0_D_18),
4639+ MX6PAD(CSI0_DAT19__IPU1_CSI0_D_19),
4640+ MX6PAD(CSI0_DATA_EN__IPU1_CSI0_DATA_EN),
4641+ MX6PAD(CSI0_MCLK__IPU1_CSI0_HSYNC),
4642+ MX6PAD(CSI0_PIXCLK__IPU1_CSI0_PIXCLK),
4643+ MX6PAD(CSI0_VSYNC__IPU1_CSI0_VSYNC),
4644+ MX6PAD(GPIO_6__GPIO_1_6), /* J5 - Camera GP */
4645+ MX6PAD(GPIO_8__GPIO_1_8), /* J5 - Camera Reset */
4646+ MX6PAD(NANDF_CS0__GPIO_6_11), /* J5 - Camera Reset */
4647+ MX6PAD(SD1_DAT0__GPIO_1_16), /* J5 - Camera GP */
4648+ MX6PAD(NANDF_D5__GPIO_2_5), /* J16 - MIPI GP */
4649+ MX6PAD(NANDF_WP_B__GPIO_6_9), /* J16 - MIPI GP */
4650+ 0
4651+};
4652+#endif
4653+
4654+static iomux_v3_cfg_t MX6NAME(sabrelite_hdmi_ddc_pads)[] = {
4655+ MX6PAD(KEY_COL3__HDMI_TX_DDC_SCL), /* HDMI DDC SCL */
4656+ MX6PAD(KEY_ROW3__HDMI_TX_DDC_SDA), /* HDMI DDC SDA */
4657+ 0
4658+};
4659+
4660+static iomux_v3_cfg_t MX6NAME(sabrelite_i2c2_pads)[] = {
4661+ MX6PAD(KEY_COL3__I2C2_SCL), /* I2C2 SCL */
4662+ MX6PAD(KEY_ROW3__I2C2_SDA), /* I2C2 SDA */
4663+ 0
4664+};
4665+
4666+static iomux_v3_cfg_t MX6NAME(sabrelite_mc33902_flexcan_pads)[] = {
4667+ NEW_PAD_CTRL(MX6PAD(GPIO_7__GPIO_1_7), MX6_SABRELITE_CAN1_ERR_PADCFG),
4668+ 0
4669+};
4670+
4671+#define MX6_USDHC_PAD_SETTING(id, speed) \
4672+ MX6NAME(sd##id##_##speed##mhz)[] = { SD_PINS(id, speed), 0 }
4673+
4674+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(2, 50);
4675+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(2, 100);
4676+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(2, 200);
4677+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(3, 50);
4678+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(3, 100);
4679+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(3, 200);
4680+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(4, 50);
4681+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(4, 100);
4682+static iomux_v3_cfg_t MX6_USDHC_PAD_SETTING(4, 200);
4683+
4684+#define _50MHZ 0
4685+#define _100MHZ 1
4686+#define _200MHZ 2
4687+#define SD_SPEED_CNT 3
4688+static iomux_v3_cfg_t * MX6NAME(sd_pads)[] =
4689+{
4690+ MX6NAME(sd2_50mhz),
4691+ MX6NAME(sd2_100mhz),
4692+ MX6NAME(sd2_200mhz),
4693+ MX6NAME(sd3_50mhz),
4694+ MX6NAME(sd3_100mhz),
4695+ MX6NAME(sd3_200mhz),
4696+ MX6NAME(sd4_50mhz),
4697+ MX6NAME(sd4_100mhz),
4698+ MX6NAME(sd4_200mhz),
4699+};
4700diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
4701old mode 100755
4702new mode 100644
4703diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile
4704old mode 100755
4705new mode 100644
4706diff --git a/arch/arm/plat-mxc/clock.c b/arch/arm/plat-mxc/clock.c
4707old mode 100755
4708new mode 100644
4709diff --git a/arch/arm/plat-mxc/cpu.c b/arch/arm/plat-mxc/cpu.c
4710old mode 100755
4711new mode 100644
4712diff --git a/arch/arm/plat-mxc/cpufreq.c b/arch/arm/plat-mxc/cpufreq.c
4713old mode 100755
4714new mode 100644
4715diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig
4716old mode 100755
4717new mode 100644
4718diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile
4719old mode 100755
4720new mode 100644
4721diff --git a/arch/arm/plat-mxc/devices/platform-ahci-imx.c b/arch/arm/plat-mxc/devices/platform-ahci-imx.c
4722old mode 100755
4723new mode 100644
4724diff --git a/arch/arm/plat-mxc/devices/platform-imx-dcp.c b/arch/arm/plat-mxc/devices/platform-imx-dcp.c
4725old mode 100755
4726new mode 100644
4727diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
4728old mode 100755
4729new mode 100644
4730diff --git a/arch/arm/plat-mxc/devices/platform-imx-i2c.c b/arch/arm/plat-mxc/devices/platform-imx-i2c.c
4731old mode 100755
4732new mode 100644
4733diff --git a/arch/arm/plat-mxc/devices/platform-imx-iim.c b/arch/arm/plat-mxc/devices/platform-imx-iim.c
4734old mode 100755
4735new mode 100644
4736diff --git a/arch/arm/plat-mxc/devices/platform-imx-ocotp.c b/arch/arm/plat-mxc/devices/platform-imx-ocotp.c
4737old mode 100755
4738new mode 100644
4739diff --git a/arch/arm/plat-mxc/devices/platform-imx-rngb.c b/arch/arm/plat-mxc/devices/platform-imx-rngb.c
4740old mode 100755
4741new mode 100644
4742diff --git a/arch/arm/plat-mxc/devices/platform-imx-ssi.c b/arch/arm/plat-mxc/devices/platform-imx-ssi.c
4743old mode 100755
4744new mode 100644
4745diff --git a/arch/arm/plat-mxc/devices/platform-imx_dvfs.c b/arch/arm/plat-mxc/devices/platform-imx_dvfs.c
4746old mode 100755
4747new mode 100644
4748diff --git a/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c b/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
4749old mode 100755
4750new mode 100644
4751diff --git a/arch/arm/plat-mxc/devices/platform-imx_srtc.c b/arch/arm/plat-mxc/devices/platform-imx_srtc.c
4752old mode 100755
4753new mode 100644
4754diff --git a/arch/arm/plat-mxc/devices/platform-imx_tve.c b/arch/arm/plat-mxc/devices/platform-imx_tve.c
4755old mode 100755
4756new mode 100644
4757diff --git a/arch/arm/plat-mxc/devices/platform-imx_vpu.c b/arch/arm/plat-mxc/devices/platform-imx_vpu.c
4758old mode 100755
4759new mode 100644
4760diff --git a/arch/arm/plat-mxc/devices/platform-mxc_gpu.c b/arch/arm/plat-mxc/devices/platform-mxc_gpu.c
4761old mode 100755
4762new mode 100644
4763diff --git a/arch/arm/plat-mxc/devices/platform-mxc_pwm.c b/arch/arm/plat-mxc/devices/platform-mxc_pwm.c
4764old mode 100755
4765new mode 100644
4766diff --git a/arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c b/arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c
4767old mode 100755
4768new mode 100644
4769diff --git a/arch/arm/plat-mxc/dvfs_core.c b/arch/arm/plat-mxc/dvfs_core.c
4770old mode 100755
4771new mode 100644
4772diff --git a/arch/arm/plat-mxc/dvfs_per.c b/arch/arm/plat-mxc/dvfs_per.c
4773old mode 100755
4774new mode 100644
4775diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c
4776old mode 100755
4777new mode 100644
4778diff --git a/arch/arm/plat-mxc/include/mach/ahci_sata.h b/arch/arm/plat-mxc/include/mach/ahci_sata.h
4779old mode 100755
4780new mode 100644
4781diff --git a/arch/arm/plat-mxc/include/mach/arc_otg.h b/arch/arm/plat-mxc/include/mach/arc_otg.h
4782old mode 100755
4783new mode 100644
4784diff --git a/arch/arm/plat-mxc/include/mach/clock.h b/arch/arm/plat-mxc/include/mach/clock.h
4785old mode 100755
4786new mode 100644
4787diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h
4788old mode 100755
4789new mode 100644
4790diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
4791old mode 100755
4792new mode 100644
4793diff --git a/arch/arm/plat-mxc/include/mach/dvfs_dptc_struct.h b/arch/arm/plat-mxc/include/mach/dvfs_dptc_struct.h
4794old mode 100755
4795new mode 100644
4796diff --git a/arch/arm/plat-mxc/include/mach/esdhc.h b/arch/arm/plat-mxc/include/mach/esdhc.h
4797index bb15db1..294e4cd 100644
4798--- a/arch/arm/plat-mxc/include/mach/esdhc.h
4799+++ b/arch/arm/plat-mxc/include/mach/esdhc.h
4800@@ -34,6 +34,7 @@ struct esdhc_platform_data {
4801 unsigned int support_18v;
4802 unsigned int support_8bit;
4803 unsigned int keep_power_at_suspend;
4804+ unsigned int caps;
4805 unsigned int delay_line;
4806 int (*platform_pad_change)(unsigned int index, int clock);
4807 };
4808diff --git a/arch/arm/plat-mxc/include/mach/fsl_usb.h b/arch/arm/plat-mxc/include/mach/fsl_usb.h
4809old mode 100755
4810new mode 100644
4811diff --git a/arch/arm/plat-mxc/include/mach/fsl_usb_gadget.h b/arch/arm/plat-mxc/include/mach/fsl_usb_gadget.h
4812old mode 100755
4813new mode 100644
4814diff --git a/arch/arm/plat-mxc/include/mach/hardware.h b/arch/arm/plat-mxc/include/mach/hardware.h
4815old mode 100755
4816new mode 100644
4817diff --git a/arch/arm/plat-mxc/include/mach/imx_rfkill.h b/arch/arm/plat-mxc/include/mach/imx_rfkill.h
4818old mode 100755
4819new mode 100644
4820diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx53.h b/arch/arm/plat-mxc/include/mach/iomux-mx53.h
4821old mode 100755
4822new mode 100644
4823diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx6q.h b/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
4824index 9226af1..83f2881 100644
4825--- a/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
4826+++ b/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
4827@@ -2909,6 +2909,24 @@
4828 #define _MX6Q_PAD_TEST_MODE__TCU_TEST_MODE \
4829 IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, 0)
4830
4831+#define _MX6Q_PAD_SD2_CMD__USDHC3_CMD \
4832+ IOMUX_PAD(0x06A0, 0x02B8, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0)
4833+
4834+#define _MX6Q_PAD_SD2_CLK__USDHC3_CLK \
4835+ IOMUX_PAD(0x06A4, 0x02BC, 0, 0x0000, 0, 0)
4836+
4837+#define _MX6Q_PAD_SD2_DAT0__USDHC3_DAT0 \
4838+ IOMUX_PAD(0x06A8, 0x02C0, 0, 0x0000, 0, 0)
4839+
4840+#define _MX6Q_PAD_SD2_DAT1__USDHC3_DAT1 \
4841+ IOMUX_PAD(0x06AC, 0x02C4, 0, 0x0000, 0, 0)
4842+
4843+#define _MX6Q_PAD_SD2_DAT2__USDHC3_DAT2 \
4844+ IOMUX_PAD(0x06B0, 0x02C8, 0, 0x0000, 0, 0)
4845+
4846+#define _MX6Q_PAD_SD2_DAT3__USDHC3_DAT3 \
4847+ IOMUX_PAD(0x06B4, 0x02CC, 0, 0x0000, 0, 0)
4848+
4849 #define _MX6Q_PAD_SD3_DAT7__USDHC3_DAT7 \
4850 IOMUX_PAD(0x0690, 0x02A8, 0, 0x0000, 0, 0)
4851 #define _MX6Q_PAD_SD3_DAT7__UART1_TXD \
4852@@ -6517,6 +6535,48 @@
4853 #define MX6Q_PAD_TEST_MODE__TCU_TEST_MODE \
4854 (_MX6Q_PAD_TEST_MODE__TCU_TEST_MODE | MUX_PAD_CTRL(NO_PAD_CTRL))
4855
4856+#define MX6Q_PAD_SD2_CMD__USDHC2_CMD_50MHZ \
4857+ (_MX6Q_PAD_SD2_CMD__USDHC2_CMD | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4858+#define MX6Q_PAD_SD2_CMD__USDHC2_CMD_100MHZ \
4859+ (_MX6Q_PAD_SD2_CMD__USDHC2_CMD | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_100MHZ))
4860+#define MX6Q_PAD_SD2_CMD__USDHC2_CMD_200MHZ \
4861+ (_MX6Q_PAD_SD2_CMD__USDHC2_CMD | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_200MHZ))
4862+
4863+#define MX6Q_PAD_SD2_CLK__USDHC2_CLK_50MHZ \
4864+ (_MX6Q_PAD_SD2_CLK__USDHC2_CLK | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4865+#define MX6Q_PAD_SD2_CLK__USDHC2_CLK_100MHZ \
4866+ (_MX6Q_PAD_SD2_CLK__USDHC2_CLK | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_100MHZ))
4867+#define MX6Q_PAD_SD2_CLK__USDHC2_CLK_200MHZ \
4868+ (_MX6Q_PAD_SD2_CLK__USDHC2_CLK | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_200MHZ))
4869+
4870+#define MX6Q_PAD_SD2_DAT0__USDHC2_DAT0_50MHZ \
4871+ (_MX6Q_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4872+#define MX6Q_PAD_SD2_DAT0__USDHC2_DAT0_100MHZ \
4873+ (_MX6Q_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_100MHZ))
4874+#define MX6Q_PAD_SD2_DAT0__USDHC2_DAT0_200MHZ \
4875+ (_MX6Q_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_200MHZ))
4876+
4877+#define MX6Q_PAD_SD2_DAT1__USDHC2_DAT1_50MHZ \
4878+ (_MX6Q_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4879+#define MX6Q_PAD_SD2_DAT1__USDHC2_DAT1_100MHZ \
4880+ (_MX6Q_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_100MHZ))
4881+#define MX6Q_PAD_SD2_DAT1__USDHC2_DAT1_200MHZ \
4882+ (_MX6Q_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_200MHZ))
4883+
4884+#define MX6Q_PAD_SD2_DAT2__USDHC2_DAT2_50MHZ \
4885+ (_MX6Q_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4886+#define MX6Q_PAD_SD2_DAT2__USDHC2_DAT2_100MHZ \
4887+ (_MX6Q_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_100MHZ))
4888+#define MX6Q_PAD_SD2_DAT2__USDHC2_DAT2_200MHZ \
4889+ (_MX6Q_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_200MHZ))
4890+
4891+#define MX6Q_PAD_SD2_DAT3__USDHC2_DAT3_50MHZ \
4892+ (_MX6Q_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4893+#define MX6Q_PAD_SD2_DAT3__USDHC2_DAT3_100MHZ \
4894+ (_MX6Q_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_100MHZ))
4895+#define MX6Q_PAD_SD2_DAT3__USDHC2_DAT3_200MHZ \
4896+ (_MX6Q_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL_200MHZ))
4897+
4898 #define MX6Q_PAD_SD3_DAT7__USDHC3_DAT7_50MHZ \
4899 (_MX6Q_PAD_SD3_DAT7__USDHC3_DAT7 | MUX_PAD_CTRL(MX6Q_USDHC_PAD_CTRL))
4900 #define MX6Q_PAD_SD3_DAT7__USDHC3_DAT7_100MHZ \
4901diff --git a/arch/arm/plat-mxc/include/mach/ipu-v3.h b/arch/arm/plat-mxc/include/mach/ipu-v3.h
4902old mode 100755
4903new mode 100644
4904diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h
4905old mode 100755
4906new mode 100644
4907diff --git a/arch/arm/plat-mxc/include/mach/mx50.h b/arch/arm/plat-mxc/include/mach/mx50.h
4908old mode 100755
4909new mode 100644
4910diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
4911old mode 100755
4912new mode 100644
4913diff --git a/arch/arm/plat-mxc/include/mach/mx53.h b/arch/arm/plat-mxc/include/mach/mx53.h
4914old mode 100755
4915new mode 100644
4916diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h
4917old mode 100755
4918new mode 100644
4919diff --git a/arch/arm/plat-mxc/include/mach/mxc91231.h b/arch/arm/plat-mxc/include/mach/mxc91231.h
4920old mode 100755
4921new mode 100644
4922diff --git a/arch/arm/plat-mxc/include/mach/mxc_dvfs.h b/arch/arm/plat-mxc/include/mach/mxc_dvfs.h
4923old mode 100755
4924new mode 100644
4925diff --git a/arch/arm/plat-mxc/include/mach/mxc_edid.h b/arch/arm/plat-mxc/include/mach/mxc_edid.h
4926old mode 100755
4927new mode 100644
4928diff --git a/arch/arm/plat-mxc/include/mach/mxc_vpu.h b/arch/arm/plat-mxc/include/mach/mxc_vpu.h
4929old mode 100755
4930new mode 100644
4931diff --git a/arch/arm/plat-mxc/include/mach/sdram_autogating.h b/arch/arm/plat-mxc/include/mach/sdram_autogating.h
4932old mode 100755
4933new mode 100644
4934diff --git a/arch/arm/plat-mxc/include/mach/system.h b/arch/arm/plat-mxc/include/mach/system.h
4935old mode 100755
4936new mode 100644
4937diff --git a/arch/arm/plat-mxc/isp1504xc.c b/arch/arm/plat-mxc/isp1504xc.c
4938old mode 100755
4939new mode 100644
4940diff --git a/arch/arm/plat-mxc/pwm.c b/arch/arm/plat-mxc/pwm.c
4941old mode 100755
4942new mode 100644
4943diff --git a/arch/arm/plat-mxc/serialxc.c b/arch/arm/plat-mxc/serialxc.c
4944old mode 100755
4945new mode 100644
4946diff --git a/arch/arm/plat-mxc/usb_common.c b/arch/arm/plat-mxc/usb_common.c
4947old mode 100755
4948new mode 100644
4949diff --git a/arch/arm/plat-mxc/usb_wakeup.c b/arch/arm/plat-mxc/usb_wakeup.c
4950old mode 100755
4951new mode 100644
4952diff --git a/arch/arm/plat-mxc/utmixc.c b/arch/arm/plat-mxc/utmixc.c
4953old mode 100755
4954new mode 100644
4955diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
4956old mode 100755
4957new mode 100644
4958diff --git a/drivers/char/fsl_otp.c b/drivers/char/fsl_otp.c
4959old mode 100755
4960new mode 100644
4961diff --git a/drivers/char/fsl_otp.h b/drivers/char/fsl_otp.h
4962old mode 100755
4963new mode 100644
4964diff --git a/drivers/char/regs-ocotp-v2.h b/drivers/char/regs-ocotp-v2.h
4965old mode 100755
4966new mode 100644
4967diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
4968old mode 100755
4969new mode 100644
4970diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
4971old mode 100755
4972new mode 100644
4973diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
4974old mode 100755
4975new mode 100644
4976diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
4977old mode 100755
4978new mode 100644
4979diff --git a/drivers/hwmon/da9052-adc.c b/drivers/hwmon/da9052-adc.c
4980old mode 100755
4981new mode 100644
4982diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
4983old mode 100755
4984new mode 100644
4985diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
4986old mode 100755
4987new mode 100644
4988diff --git a/drivers/input/misc/isl29023.c b/drivers/input/misc/isl29023.c
4989old mode 100755
4990new mode 100644
4991diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
4992old mode 100755
4993new mode 100644
4994index 7cf975a..a2589e4
4995--- a/drivers/input/touchscreen/Kconfig
4996+++ b/drivers/input/touchscreen/Kconfig
4997@@ -199,6 +199,16 @@ config TOUCHSCREEN_ELAN
4998 To compile this driver as a module, choose M here: the
4999 module will be called elan-touch.
5000
5001+config TOUCHSCREEN_EGALAX_SINGLE_TOUCH
5002+ bool "EETI eGalax touchscreen as single-touch"
5003+ default N
5004+ depends on TOUCHSCREEN_EGALAX
5005+ help
5006+ If you say yes here you get single-touch touchscreen support
5007+ on the eGalax I2C controller.
5008+ If you say "no", you'll get the normal multi-touch.
5009+
5010+
5011 config TOUCHSCREEN_FUJITSU
5012 tristate "Fujitsu serial touchscreen"
5013 select SERIO
5014@@ -282,6 +292,22 @@ config TOUCHSCREEN_MAX11801
5015 To compile this driver as a module, choose M here: the
5016 module will be called max11801_ts.
5017
5018+config TOUCHSCREEN_FT5X06
5019+ tristate "Focaltech FT5X06 5 point touchscreen"
5020+ select I2C
5021+ help
5022+ If you say yes here you get touchscreen support through
5023+ FocalTech's FT5X06 controller.
5024+
5025+config TOUCHSCREEN_FT5X06_SINGLE_TOUCH
5026+ bool "FT5X06 touchscreen as single-touch"
5027+ default N
5028+ depends on TOUCHSCREEN_FT5X06
5029+ help
5030+ If you say yes here you get single-touch touchscreen support
5031+ on the FT5X06 I2C controller.
5032+ If you say "no", you'll get the normal 5-finger goodness.
5033+
5034 config TOUCHSCREEN_MCS5000
5035 tristate "MELFAS MCS-5000 touchscreen"
5036 depends on I2C
5037@@ -695,6 +721,17 @@ config TOUCHSCREEN_TSC2007
5038 To compile this driver as a module, choose M here: the
5039 module will be called tsc2007.
5040
5041+config TOUCHSCREEN_TSC2004
5042+ tristate "TSC2004 based touchscreens"
5043+ depends on I2C
5044+ help
5045+ Say Y here if you have a TSC2004 based touchscreen.
5046+
5047+ If unsure, say N.
5048+
5049+ To compile this driver as a module, choose M here: the
5050+ module will be called tsc2004.
5051+
5052 config TOUCHSCREEN_W90X900
5053 tristate "W90P910 touchscreen driver"
5054 depends on HAVE_CLK
5055diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
5056old mode 100755
5057new mode 100644
5058index e614512..eac3453
5059--- a/drivers/input/touchscreen/Makefile
5060+++ b/drivers/input/touchscreen/Makefile
5061@@ -49,6 +49,7 @@ obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
5062 obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
5063 obj-$(CONFIG_TOUCHSCREEN_TSC2005) += tsc2005.o
5064 obj-$(CONFIG_TOUCHSCREEN_TSC2007) += tsc2007.o
5065+obj-$(CONFIG_TOUCHSCREEN_TSC2004) += tsc2004.o
5066 obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o
5067 obj-$(CONFIG_TOUCHSCREEN_WACOM_W8001) += wacom_w8001.o
5068 obj-$(CONFIG_TOUCHSCREEN_WM831X) += wm831x-ts.o
5069@@ -64,4 +65,5 @@ obj-$(CONFIG_TOUCHSCREEN_P1003) += p1003_ts.o
5070 obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
5071 obj-$(CONFIG_TOUCHSCREEN_MAX11801) += max11801_ts.o
5072 obj-$(CONFIG_TOUCHSCREEN_EGALAX) += egalax_ts.o
5073+obj-$(CONFIG_TOUCHSCREEN_FT5X06) += ft5x06_ts.o
5074 obj-$(CONFIG_TOUCHSCREEN_ELAN) += elan_ts.o
5075diff --git a/drivers/input/touchscreen/da9052_tsi_filter.c b/drivers/input/touchscreen/da9052_tsi_filter.c
5076old mode 100755
5077new mode 100644
5078diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
5079index fff8afe..0b6cde7 100644
5080--- a/drivers/input/touchscreen/egalax_ts.c
5081+++ b/drivers/input/touchscreen/egalax_ts.c
5082@@ -139,7 +139,7 @@ retry:
5083 events[id].x = x;
5084 events[id].y = y;
5085
5086-#ifdef FORCE_SINGLE_POINTER_SUPPORT
5087+#ifdef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH
5088 input_report_abs(input_dev, ABS_X, x);
5089 input_report_abs(input_dev, ABS_Y, y);
5090 input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1);
5091@@ -166,7 +166,7 @@ retry:
5092 dev_dbg(&client->dev, "release id:%d\n", id);
5093 events[id].valid = 0;
5094 events[id].status = 0;
5095-#ifdef FORCE_SINGLE_POINTER_SUPPORT
5096+#ifdef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH
5097 input_report_key(input_dev, BTN_TOUCH, 0);
5098 input_report_abs(input_dev, ABS_PRESSURE, 0);
5099 #else
5100@@ -256,8 +256,9 @@ static int __devinit egalax_ts_probe(struct i2c_client *client,
5101 __set_bit(ABS_PRESSURE, input_dev->absbit);
5102 input_set_abs_params(input_dev, ABS_X, 0, 32767, 0, 0);
5103 input_set_abs_params(input_dev, ABS_Y, 0, 32767, 0, 0);
5104+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, 1, 0, 0);
5105
5106-#ifndef FORCE_SINGLE_POINTER_SUPPORT
5107+#ifndef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH
5108 input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, 32767, 0, 0);
5109 input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, 32767, 0, 0);
5110 input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
5111diff --git a/drivers/input/touchscreen/ft5x06_ts.c b/drivers/input/touchscreen/ft5x06_ts.c
5112new file mode 100644
5113index 0000000..89b5726
5114--- /dev/null
5115+++ b/drivers/input/touchscreen/ft5x06_ts.c
5116@@ -0,0 +1,572 @@
5117+/*
5118+ * Boundary Devices FTx06 touch screen controller.
5119+ *
5120+ * Copyright (c) by Boundary Devices <info@boundarydevices.com>
5121+ *
5122+ * This program is free software; you can redistribute it and/or modify
5123+ * it under the terms of the GNU General Public License as published by
5124+ * the Free Software Foundation; either version 2 of the License, or
5125+ * (at your option) any later version.
5126+ *
5127+ * This program is distributed in the hope that it will be useful,
5128+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
5129+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5130+ * GNU General Public License for more details.
5131+ *
5132+ * You should have received a copy of the GNU General Public License
5133+ * along with this program; if not, write to the Free Software
5134+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5135+ *
5136+ */
5137+#include <linux/module.h>
5138+#include <linux/init.h>
5139+#include <linux/i2c.h>
5140+#include <linux/slab.h>
5141+#include <linux/interrupt.h>
5142+#include <linux/wait.h>
5143+#include <linux/io.h>
5144+#include <mach/hardware.h>
5145+#include <mach/gpio.h>
5146+#include <linux/proc_fs.h>
5147+#include <linux/delay.h>
5148+#include <linux/input.h>
5149+
5150+#ifdef CONFIG_TOUCHSCREEN_FT5X06_SINGLE_TOUCH
5151+#else
5152+#define USE_ABS_MT
5153+#endif
5154+
5155+struct point {
5156+ int x;
5157+ int y;
5158+};
5159+
5160+struct ft5x06_ts {
5161+ struct i2c_client *client;
5162+ struct input_dev *idev;
5163+ wait_queue_head_t sample_waitq;
5164+ struct semaphore sem;
5165+ struct completion init_exit;
5166+ struct task_struct *rtask;
5167+ int use_count;
5168+ int bReady;
5169+ int irq;
5170+ unsigned gp;
5171+ struct proc_dir_entry *procentry;
5172+};
5173+static const char *client_name = "ft5x06";
5174+
5175+struct ft5x06_ts *gts;
5176+
5177+static char const procentryname[] = {
5178+ "ft5x06"
5179+};
5180+
5181+static int ts_startup(struct ft5x06_ts *ts);
5182+static void ts_shutdown(struct ft5x06_ts *ts);
5183+
5184+static int ft5x06_proc_read
5185+ (char *page,
5186+ char **start,
5187+ off_t off,
5188+ int count,
5189+ int *eof,
5190+ void *data)
5191+{
5192+ printk(KERN_ERR "%s\n", __func__);
5193+ return 0 ;
5194+}
5195+
5196+static int
5197+ft5x06_proc_write
5198+ (struct file *file,
5199+ const char __user *buffer,
5200+ unsigned long count,
5201+ void *data)
5202+{
5203+ printk(KERN_ERR "%s\n", __func__);
5204+ return count ;
5205+}
5206+
5207+/*-----------------------------------------------------------------------*/
5208+static inline void ts_evt_add(struct ft5x06_ts *ts,
5209+ unsigned buttons, struct point *p)
5210+{
5211+ struct input_dev *idev = ts->idev;
5212+ int i;
5213+ if (!buttons) {
5214+ /* send release to user space. */
5215+#ifdef USE_ABS_MT
5216+ input_event(idev, EV_ABS, ABS_MT_TOUCH_MAJOR, 0);
5217+ input_event(idev, EV_KEY, BTN_TOUCH, 0);
5218+ input_mt_sync(idev);
5219+#else
5220+ input_report_abs(idev, ABS_PRESSURE, 0);
5221+ input_report_key(idev, BTN_TOUCH, 0);
5222+ input_sync(idev);
5223+#endif
5224+ } else {
5225+ for (i = 0; i < buttons; i++) {
5226+#ifdef USE_ABS_MT
5227+ input_event(idev, EV_ABS, ABS_MT_POSITION_X, p[i].x);
5228+ input_event(idev, EV_ABS, ABS_MT_POSITION_Y, p[i].y);
5229+ input_event(idev, EV_ABS, ABS_MT_TOUCH_MAJOR, 1);
5230+ input_mt_sync(idev);
5231+#else
5232+ input_report_abs(idev, ABS_X, p[i].x);
5233+ input_report_abs(idev, ABS_Y, p[i].y);
5234+ input_report_abs(idev, ABS_PRESSURE, 1);
5235+ input_report_key(idev, BTN_TOUCH, 1);
5236+ input_sync(idev);
5237+#endif
5238+ }
5239+ input_event(idev, EV_KEY, BTN_TOUCH, 1);
5240+ }
5241+#ifdef USE_ABS_MT
5242+ input_sync(idev);
5243+#endif
5244+}
5245+
5246+static int ts_open(struct input_dev *idev)
5247+{
5248+ struct ft5x06_ts *ts = input_get_drvdata(idev);
5249+ return ts_startup(ts);
5250+}
5251+
5252+static void ts_close(struct input_dev *idev)
5253+{
5254+ struct ft5x06_ts *ts = input_get_drvdata(idev);
5255+ ts_shutdown(ts);
5256+}
5257+
5258+static inline int ts_register(struct ft5x06_ts *ts)
5259+{
5260+ struct input_dev *idev;
5261+ idev = input_allocate_device();
5262+ if (idev == NULL)
5263+ return -ENOMEM;
5264+
5265+ ts->idev = idev;
5266+ idev->name = procentryname ;
5267+ idev->id.product = ts->client->addr;
5268+ idev->open = ts_open;
5269+ idev->close = ts_close;
5270+
5271+ __set_bit(EV_ABS, idev->evbit);
5272+ __set_bit(EV_KEY, idev->evbit);
5273+ __set_bit(BTN_TOUCH, idev->keybit);
5274+
5275+#ifdef USE_ABS_MT
5276+ input_set_abs_params(idev, ABS_MT_POSITION_X, 0, 1023, 0, 0);
5277+ input_set_abs_params(idev, ABS_MT_POSITION_Y, 0, 0x255, 0, 0);
5278+ input_set_abs_params(idev, ABS_MT_TOUCH_MAJOR, 0, 1, 0, 0);
5279+#else
5280+ __set_bit(EV_SYN, idev->evbit);
5281+ input_set_abs_params(idev, ABS_X, 0, 1023, 0, 0);
5282+ input_set_abs_params(idev, ABS_Y, 0, 0x255, 0, 0);
5283+ input_set_abs_params(idev, ABS_PRESSURE, 0, 1, 0, 0);
5284+#endif
5285+
5286+ input_set_drvdata(idev, ts);
5287+ return input_register_device(idev);
5288+}
5289+
5290+static inline void ts_deregister(struct ft5x06_ts *ts)
5291+{
5292+ if (ts->idev) {
5293+ input_unregister_device(ts->idev);
5294+ input_free_device(ts->idev);
5295+ ts->idev = NULL;
5296+ }
5297+}
5298+
5299+#ifdef DEBUG
5300+static void printHex(u8 const *buf, unsigned len)
5301+{
5302+ char hex[512];
5303+ char *next = hex ;
5304+ char *end = hex+sizeof(hex);
5305+
5306+ while (len--) {
5307+ next += snprintf(next, end-next, "%02x", *buf++);
5308+ if (next >= end) {
5309+ hex[sizeof(hex)-1] = '\0' ;
5310+ break;
5311+ }
5312+ }
5313+ printk(KERN_ERR "%s\n", hex);
5314+}
5315+#endif
5316+
5317+static void write_reg(struct ft5x06_ts *ts, int regnum, int value)
5318+{
5319+ u8 regnval[] = {
5320+ regnum,
5321+ value
5322+ };
5323+ struct i2c_msg pkt = {
5324+ ts->client->addr, 0, sizeof(regnval), regnval
5325+ };
5326+ int ret = i2c_transfer(ts->client->adapter, &pkt, 1);
5327+ if (ret != 1)
5328+ printk(KERN_WARNING "%s: i2c_transfer failed\n", __func__);
5329+ else
5330+ printk(KERN_DEBUG "%s: set register 0x%02x to 0x%02x\n",
5331+ __func__, regnum, value);
5332+}
5333+
5334+static void set_mode(struct ft5x06_ts *ts, int mode)
5335+{
5336+ write_reg(ts, 0, (mode&7)<<4);
5337+ printk(KERN_DEBUG "%s: changed mode to 0x%02x\n", __func__, mode);
5338+}
5339+
5340+#define WORK_MODE 0
5341+#define FACTORY_MODE 4
5342+
5343+/*-----------------------------------------------------------------------*/
5344+
5345+/*
5346+ * This is a RT kernel thread that handles the I2c accesses
5347+ * The I2c access functions are expected to be able to sleep.
5348+ */
5349+static int ts_thread(void *_ts)
5350+{
5351+ int ret;
5352+ struct point points[5];
5353+ unsigned char buf[33];
5354+ struct ft5x06_ts *ts = _ts;
5355+ unsigned char startch[1] = { 0 };
5356+ struct i2c_msg readpkt[2] = {
5357+ {ts->client->addr, 0, 1, startch},
5358+ {ts->client->addr, I2C_M_RD, sizeof(buf), buf}
5359+ };
5360+
5361+ struct task_struct *tsk = current;
5362+
5363+ ts->rtask = tsk;
5364+
5365+ daemonize("ft5x06tsd");
5366+ /* only want to receive SIGKILL */
5367+ allow_signal(SIGKILL);
5368+
5369+ complete(&ts->init_exit);
5370+
5371+ do {
5372+ int buttons = 0 ;
5373+ ts->bReady = 0;
5374+ ret = i2c_transfer(ts->client->adapter, readpkt,
5375+ ARRAY_SIZE(readpkt));
5376+ if (ret != ARRAY_SIZE(readpkt)) {
5377+ printk(KERN_WARNING "%s: i2c_transfer failed\n",
5378+ client_name);
5379+ msleep(1000);
5380+ } else {
5381+ int i;
5382+ unsigned char *p = buf+3;
5383+#ifdef DEBUG
5384+ printHex(buf, sizeof(buf));
5385+#endif
5386+ buttons = buf[2];
5387+ if (buttons > 5) {
5388+ printk(KERN_ERR
5389+ "%s: invalid button count %02x\n",
5390+ __func__, buttons);
5391+ buttons = 0 ;
5392+ } else {
5393+ for (i = 0; i < buttons; i++) {
5394+ points[i].x = ((p[0] << 8)
5395+ | p[1]) & 0x7ff;
5396+ points[i].y = ((p[2] << 8)
5397+ | p[3]) & 0x7ff;
5398+ p += 6;
5399+ }
5400+ }
5401+ }
5402+
5403+ if (signal_pending(tsk))
5404+ break;
5405+#ifdef DEBUG
5406+ printk(KERN_ERR "%s: buttons = %d, "
5407+ "points[0].x = %d, "
5408+ "points[0].y = %d\n",
5409+ client_name, buttons, points[0].x, points[0].y);
5410+#endif
5411+ ts_evt_add(ts, buttons, points);
5412+ if (0 < buttons)
5413+ wait_event_interruptible_timeout(ts->sample_waitq,
5414+ ts->bReady, HZ/20);
5415+ else
5416+ wait_event_interruptible(ts->sample_waitq, ts->bReady);
5417+ if (gpio_get_value(ts->gp)) {
5418+ if (buttons) {
5419+ buttons = 0;
5420+ ts_evt_add(ts, buttons, points);
5421+ }
5422+ if (signal_pending(tsk))
5423+ break;
5424+ }
5425+ } while (1);
5426+
5427+ ts->rtask = NULL;
5428+ complete_and_exit(&ts->init_exit, 0);
5429+}
5430+
5431+/*
5432+ * We only detect samples ready with this interrupt
5433+ * handler, and even then we just schedule our task.
5434+ */
5435+static irqreturn_t ts_interrupt(int irq, void *id)
5436+{
5437+ struct ft5x06_ts *ts = id;
5438+ int bit = gpio_get_value(ts->gp);
5439+ if (bit == 0) {
5440+ ts->bReady = 1;
5441+ wmb(); /* flush bReady */
5442+ wake_up(&ts->sample_waitq);
5443+ }
5444+ return IRQ_HANDLED;
5445+}
5446+
5447+#define ID_G_THGROUP 0x80
5448+#define ID_G_PERIODMONITOR 0x89
5449+#define FT5X0X_REG_HEIGHT_B 0x8a
5450+#define FT5X0X_REG_MAX_FRAME 0x8b
5451+#define FT5X0X_REG_FEG_FRAME 0x8e
5452+#define FT5X0X_REG_LEFT_RIGHT_OFFSET 0x92
5453+#define FT5X0X_REG_UP_DOWN_OFFSET 0x93
5454+#define FT5X0X_REG_DISTANCE_LEFT_RIGHT 0x94
5455+#define FT5X0X_REG_DISTANCE_UP_DOWN 0x95
5456+#define FT5X0X_REG_MAX_X_HIGH 0x98
5457+#define FT5X0X_REG_MAX_X_LOW 0x99
5458+#define FT5X0X_REG_MAX_Y_HIGH 0x9a
5459+#define FT5X0X_REG_MAX_Y_LOW 0x9b
5460+#define FT5X0X_REG_K_X_HIGH 0x9c
5461+#define FT5X0X_REG_K_X_LOW 0x9d
5462+#define FT5X0X_REG_K_Y_HIGH 0x9e
5463+#define FT5X0X_REG_K_Y_LOW 0x9f
5464+
5465+#define ID_G_AUTO_CLB 0xa0
5466+#define ID_G_B_AREA_TH 0xae
5467+
5468+#ifdef DEBUG
5469+static void dumpRegs(struct ft5x06_ts *ts, unsigned start, unsigned end)
5470+{
5471+ u8 regbuf[512];
5472+ unsigned char startch[1] = { start };
5473+ int ret ;
5474+ struct i2c_msg readpkt[2] = {
5475+ {ts->client->addr, 0, 1, startch},
5476+ {ts->client->addr, I2C_M_RD, end-start+1, regbuf}
5477+ };
5478+ ret = i2c_transfer(ts->client->adapter, readpkt, ARRAY_SIZE(readpkt));
5479+ if (ret != ARRAY_SIZE(readpkt)) {
5480+ printk(KERN_WARNING "%s: i2c_transfer failed\n", client_name);
5481+ } else {
5482+ printk(KERN_ERR "registers %02x..%02x\n", start, end);
5483+ printHex(regbuf, end-start+1);
5484+ }
5485+}
5486+#endif
5487+
5488+static int ts_startup(struct ft5x06_ts *ts)
5489+{
5490+ int ret = 0;
5491+ if (ts == NULL)
5492+ return -EIO;
5493+
5494+ if (down_interruptible(&ts->sem))
5495+ return -EINTR;
5496+
5497+ if (ts->use_count++ != 0)
5498+ goto out;
5499+
5500+ if (ts->rtask)
5501+ panic("ft5x06tsd: rtask running?");
5502+
5503+ ret = request_irq(ts->irq, &ts_interrupt, IRQF_TRIGGER_FALLING,
5504+ client_name, ts);
5505+ if (ret) {
5506+ printk(KERN_ERR "%s: request_irq failed, irq:%i\n",
5507+ client_name, ts->irq);
5508+ goto out;
5509+ }
5510+
5511+#ifdef DEBUG
5512+ set_mode(ts, FACTORY_MODE);
5513+ dumpRegs(ts, 0x4c, 0x4C);
5514+ write_reg(ts, 0x4C, 0x05);
5515+ dumpRegs(ts, 0, 0x4C);
5516+#endif
5517+ set_mode(ts, WORK_MODE);
5518+#ifdef DEBUG
5519+ dumpRegs(ts, 0x3b, 0x3b);
5520+ dumpRegs(ts, 0x6a, 0x6a);
5521+ dumpRegs(ts, ID_G_THGROUP, ID_G_PERIODMONITOR);
5522+ dumpRegs(ts, FT5X0X_REG_HEIGHT_B, FT5X0X_REG_K_Y_LOW);
5523+ dumpRegs(ts, ID_G_AUTO_CLB, ID_G_B_AREA_TH);
5524+#endif
5525+ set_mode(ts, WORK_MODE);
5526+
5527+ init_completion(&ts->init_exit);
5528+ ret = kernel_thread(ts_thread, ts, CLONE_KERNEL);
5529+ if (ret >= 0) {
5530+ wait_for_completion(&ts->init_exit);
5531+ ret = 0;
5532+ } else {
5533+ free_irq(ts->irq, ts);
5534+ }
5535+
5536+ out:
5537+ if (ret)
5538+ ts->use_count--;
5539+ up(&ts->sem);
5540+ return ret;
5541+}
5542+
5543+/*
5544+ * Release touchscreen resources. Disable IRQs.
5545+ */
5546+static void ts_shutdown(struct ft5x06_ts *ts)
5547+{
5548+ if (ts) {
5549+ down(&ts->sem);
5550+ if (--ts->use_count == 0) {
5551+ if (ts->rtask) {
5552+ send_sig(SIGKILL, ts->rtask, 1);
5553+ wait_for_completion(&ts->init_exit);
5554+ }
5555+ free_irq(ts->irq, ts);
5556+ }
5557+ up(&ts->sem);
5558+ }
5559+}
5560+/*-----------------------------------------------------------------------*/
5561+
5562+/* Return 0 if detection is successful, -ENODEV otherwise */
5563+static int detect_ft5x06(struct i2c_client *client)
5564+{
5565+ struct i2c_adapter *adapter = client->adapter;
5566+ char buffer;
5567+ struct i2c_msg pkt = {
5568+ client->addr,
5569+ I2C_M_RD,
5570+ sizeof(buffer),
5571+ &buffer
5572+ };
5573+ if (!i2c_check_functionality(adapter, I2C_FUNC_I2C))
5574+ return -ENODEV;
5575+ if (i2c_transfer(adapter, &pkt, 1) != 1)
5576+ return -ENODEV;
5577+ return 0;
5578+}
5579+
5580+/* Return 0 if detection is successful, -ENODEV otherwise */
5581+static int ts_detect(struct i2c_client *client,
5582+ struct i2c_board_info *info)
5583+{
5584+ int err = detect_ft5x06(client);
5585+ if (!err)
5586+ strlcpy(info->type, "ft5x06-ts", I2C_NAME_SIZE);
5587+ return err;
5588+}
5589+
5590+static int ts_probe(struct i2c_client *client, const struct i2c_device_id *id)
5591+{
5592+ int err = 0;
5593+ struct ft5x06_ts *ts;
5594+ struct device *dev = &client->dev;
5595+ if (gts) {
5596+ printk(KERN_ERR "%s: Error gts is already allocated\n",
5597+ client_name);
5598+ return -ENOMEM;
5599+ }
5600+ if (detect_ft5x06(client) != 0) {
5601+ dev_err(dev, "%s: Could not detect touch screen.\n",
5602+ client_name);
5603+ return -ENODEV;
5604+ }
5605+ ts = kzalloc(sizeof(struct ft5x06_ts), GFP_KERNEL);
5606+ if (!ts) {
5607+ dev_err(dev, "Couldn't allocate memory for %s\n", client_name);
5608+ return -ENOMEM;
5609+ }
5610+ init_waitqueue_head(&ts->sample_waitq);
5611+ sema_init(&ts->sem, 1);
5612+ ts->client = client;
5613+ ts->irq = client->irq ;
5614+ ts->gp = irq_to_gpio(client->irq);
5615+ printk(KERN_INFO "%s: %s touchscreen irq=%i, gp=%i\n", __func__,
5616+ client_name, ts->irq, ts->gp);
5617+ i2c_set_clientdata(client, ts);
5618+ err = ts_register(ts);
5619+ if (err == 0) {
5620+ gts = ts;
5621+ ts->procentry = create_proc_entry(procentryname, 0, NULL);
5622+ if (ts->procentry) {
5623+ ts->procentry->read_proc = ft5x06_proc_read ;
5624+ ts->procentry->write_proc = ft5x06_proc_write ;
5625+ }
5626+ } else {
5627+ printk(KERN_WARNING "%s: ts_register failed\n", client_name);
5628+ ts_deregister(ts);
5629+ kfree(ts);
5630+ }
5631+ return err;
5632+}
5633+
5634+static int ts_remove(struct i2c_client *client)
5635+{
5636+ struct ft5x06_ts *ts = i2c_get_clientdata(client);
5637+ remove_proc_entry(procentryname, 0);
5638+ if (ts == gts) {
5639+ gts = NULL;
5640+ ts_deregister(ts);
5641+ } else {
5642+ printk(KERN_ERR "%s: Error ts!=gts\n", client_name);
5643+ }
5644+ kfree(ts);
5645+ return 0;
5646+}
5647+
5648+
5649+/*-----------------------------------------------------------------------*/
5650+
5651+static const struct i2c_device_id ts_idtable[] = {
5652+ { "ft5x06-ts", 0 },
5653+ { }
5654+};
5655+
5656+static struct i2c_driver ts_driver = {
5657+ .driver = {
5658+ .owner = THIS_MODULE,
5659+ .name = "ft5x06-ts",
5660+ },
5661+ .id_table = ts_idtable,
5662+ .probe = ts_probe,
5663+ .remove = __devexit_p(ts_remove),
5664+ .detect = ts_detect,
5665+};
5666+
5667+static int __init ts_init(void)
5668+{
5669+ int res = i2c_add_driver(&ts_driver);
5670+ if (res) {
5671+ printk(KERN_WARNING "%s: i2c_add_driver failed\n", client_name);
5672+ return res;
5673+ }
5674+ printk(KERN_INFO "%s: " __DATE__ "\n", client_name);
5675+ return 0;
5676+}
5677+
5678+static void __exit ts_exit(void)
5679+{
5680+ i2c_del_driver(&ts_driver);
5681+}
5682+
5683+MODULE_AUTHOR("Boundary Devices <info@boundarydevices.com>");
5684+MODULE_DESCRIPTION("I2C interface for FocalTech ft5x06 touch screen controller.");
5685+MODULE_LICENSE("GPL");
5686+
5687+module_init(ts_init)
5688+module_exit(ts_exit)
5689diff --git a/drivers/input/touchscreen/max11801_ts.c b/drivers/input/touchscreen/max11801_ts.c
5690old mode 100755
5691new mode 100644
5692diff --git a/drivers/input/touchscreen/tsc2004.c b/drivers/input/touchscreen/tsc2004.c
5693new file mode 100644
5694index 0000000..37af845
5695--- /dev/null
5696+++ b/drivers/input/touchscreen/tsc2004.c
5697@@ -0,0 +1,561 @@
5698+/*
5699+ * drivers/input/touchscreen/tsc2004.c
5700+ *
5701+ * Copyright (C) 2009 Texas Instruments Inc
5702+ * Author: Vaibhav Hiremath <hvaibhav@ti.com>
5703+ *
5704+ * Using code from:
5705+ * - tsc2007.c
5706+ *
5707+ * This package is free software; you can redistribute it and/or modify
5708+ * it under the terms of the GNU General Public License version 2 as
5709+ * published by the Free Software Foundation.
5710+ *
5711+ * This program is distributed in the hope that it will be useful,
5712+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
5713+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5714+ * GNU General Public License for more details.
5715+ *
5716+ * You should have received a copy of the GNU General Public License
5717+ * along with this program; if not, write to the Free Software
5718+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
5719+ *
5720+ */
5721+
5722+#include <linux/module.h>
5723+#include <linux/slab.h>
5724+#include <linux/input.h>
5725+#include <linux/interrupt.h>
5726+#include <linux/i2c.h>
5727+#include <linux/i2c/tsc2007.h>
5728+
5729+static int calibration[7];
5730+module_param_array(calibration, int, NULL, S_IRUGO | S_IWUSR);
5731+
5732+static void translate(u16 *px, u16 *py)
5733+{
5734+ int x, y, x1, y1;
5735+ if (calibration[6]) {
5736+ x1 = *px;
5737+ y1 = *py;
5738+
5739+ x = calibration[0] * x1 +
5740+ calibration[1] * y1 +
5741+ calibration[2];
5742+ x /= calibration[6];
5743+ if (x < 0)
5744+ x = 0;
5745+ y = calibration[3] * x1 +
5746+ calibration[4] * y1 +
5747+ calibration[5];
5748+ y /= calibration[6];
5749+ if (y < 0)
5750+ y = 0;
5751+ *px = x ;
5752+ *py = y ;
5753+ }
5754+}
5755+
5756+#define TS_POLL_DELAY 1 /* ms delay between samples */
5757+#define TS_POLL_PERIOD 1 /* ms delay between samples */
5758+
5759+/* Control byte 0 */
5760+#define TSC2004_CMD0(addr, pnd, rw) ((addr<<3)|(pnd<<1)|rw)
5761+/* Control byte 1 */
5762+#define TSC2004_CMD1(cmd, mode, rst) ((1<<7)|(cmd<<4)|(mode<<2)|(rst<<1))
5763+
5764+/* Command Bits */
5765+#define READ_REG 1
5766+#define WRITE_REG 0
5767+#define SWRST_TRUE 1
5768+#define SWRST_FALSE 0
5769+#define PND0_TRUE 1
5770+#define PND0_FALSE 0
5771+
5772+/* Converter function mapping */
5773+enum convertor_function {
5774+ MEAS_X_Y_Z1_Z2, /* Measure X,Y,z1 and Z2: 0x0 */
5775+ MEAS_X_Y, /* Measure X and Y only: 0x1 */
5776+ MEAS_X, /* Measure X only: 0x2 */
5777+ MEAS_Y, /* Measure Y only: 0x3 */
5778+ MEAS_Z1_Z2, /* Measure Z1 and Z2 only: 0x4 */
5779+ MEAS_AUX, /* Measure Auxillary input: 0x5 */
5780+ MEAS_TEMP1, /* Measure Temparature1: 0x6 */
5781+ MEAS_TEMP2, /* Measure Temparature2: 0x7 */
5782+ MEAS_AUX_CONT, /* Continuously measure Auxillary input: 0x8 */
5783+ X_DRV_TEST, /* X-Axis drivers tested 0x9 */
5784+ Y_DRV_TEST, /* Y-Axis drivers tested 0xA */
5785+ /*Command Reserved*/
5786+ SHORT_CKT_TST = 0xC, /* Short circuit test: 0xC */
5787+ XP_XN_DRV_STAT, /* X+,Y- drivers status: 0xD */
5788+ YP_YN_DRV_STAT, /* X+,Y- drivers status: 0xE */
5789+ YP_XN_DRV_STAT /* Y+,X- drivers status: 0xF */
5790+};
5791+
5792+/* Register address mapping */
5793+enum register_address {
5794+ X_REG, /* X register: 0x0 */
5795+ Y_REG, /* Y register: 0x1 */
5796+ Z1_REG, /* Z1 register: 0x2 */
5797+ Z2_REG, /* Z2 register: 0x3 */
5798+ AUX_REG, /* AUX register: 0x4 */
5799+ TEMP1_REG, /* Temp1 register: 0x5 */
5800+ TEMP2_REG, /* Temp2 register: 0x6 */
5801+ STAT_REG, /* Status Register: 0x7 */
5802+ AUX_HGH_TH_REG, /* AUX high threshold register: 0x8 */
5803+ AUX_LOW_TH_REG, /* AUX low threshold register: 0x9 */
5804+ TMP_HGH_TH_REG, /* Temp high threshold register:0xA */
5805+ TMP_LOW_TH_REG, /* Temp low threshold register: 0xB */
5806+ CFR0_REG, /* Configuration register 0: 0xC */
5807+ CFR1_REG, /* Configuration register 1: 0xD */
5808+ CFR2_REG, /* Configuration register 2: 0xE */
5809+ CONV_FN_SEL_STAT /* Convertor function select register: 0xF */
5810+};
5811+
5812+/* Supported Resolution modes */
5813+enum resolution_mode {
5814+ MODE_10BIT, /* 10 bit resolution */
5815+ MODE_12BIT /* 12 bit resolution */
5816+};
5817+
5818+/* Configuraton register bit fields */
5819+/* CFR0 */
5820+#define PEN_STS_CTRL_MODE (1<<15)
5821+#define ADC_STS (1<<14)
5822+#define RES_CTRL (1<<13)
5823+#define ADC_CLK_4MHZ (0<<11)
5824+#define ADC_CLK_2MHZ (1<<11)
5825+#define ADC_CLK_1MHZ (2<<11)
5826+#define PANEL_VLTG_STB_TIME_0US (0<<8)
5827+#define PANEL_VLTG_STB_TIME_100US (1<<8)
5828+#define PANEL_VLTG_STB_TIME_500US (2<<8)
5829+#define PANEL_VLTG_STB_TIME_1MS (3<<8)
5830+#define PANEL_VLTG_STB_TIME_5MS (4<<8)
5831+#define PANEL_VLTG_STB_TIME_10MS (5<<8)
5832+#define PANEL_VLTG_STB_TIME_50MS (6<<8)
5833+#define PANEL_VLTG_STB_TIME_100MS (7<<8)
5834+
5835+/* CFR2 */
5836+#define PINTS1 (1<<15)
5837+#define PINTS0 (1<<14)
5838+#define MEDIAN_VAL_FLTR_SIZE_1 (0<<12)
5839+#define MEDIAN_VAL_FLTR_SIZE_3 (1<<12)
5840+#define MEDIAN_VAL_FLTR_SIZE_7 (2<<12)
5841+#define MEDIAN_VAL_FLTR_SIZE_15 (3<<12)
5842+#define AVRG_VAL_FLTR_SIZE_1 (0<<10)
5843+#define AVRG_VAL_FLTR_SIZE_3_4 (1<<10)
5844+#define AVRG_VAL_FLTR_SIZE_7_8 (2<<10)
5845+#define AVRG_VAL_FLTR_SIZE_16 (3<<10)
5846+#define MAV_FLTR_EN_X (1<<4)
5847+#define MAV_FLTR_EN_Y (1<<3)
5848+#define MAV_FLTR_EN_Z (1<<2)
5849+
5850+#define MAX_12BIT ((1 << 12) - 1)
5851+#define MEAS_MASK 0xFFF
5852+
5853+struct ts_event {
5854+ u16 x;
5855+ u16 y;
5856+ u16 z1, z2;
5857+};
5858+
5859+struct tsc2004 {
5860+ struct input_dev *input;
5861+ char phys[32];
5862+ struct delayed_work work;
5863+
5864+ struct i2c_client *client;
5865+
5866+ u16 model;
5867+ u16 x_plate_ohms;
5868+
5869+ bool pendown;
5870+ int irq;
5871+
5872+ int (*get_pendown_state)(void);
5873+ void (*clear_penirq)(void);
5874+};
5875+
5876+static inline int tsc2004_read_xyz_data(struct tsc2004 *tsc, u8 cmd)
5877+{
5878+ s32 data;
5879+ u16 val;
5880+
5881+ data = i2c_smbus_read_word_data(tsc->client, cmd);
5882+ if (data < 0) {
5883+ dev_err(&tsc->client->dev, "i2c io (read) error: %d\n", data);
5884+ return data;
5885+ }
5886+
5887+ /*
5888+ * We need to swap byte order for little-endian cpus.
5889+ * 12 bit precision, high 4 bits should be zero
5890+ */
5891+ val = be16_to_cpu(data) & 0xfff;
5892+
5893+ dev_dbg(&tsc->client->dev, "data: 0x%x, val: 0x%x\n", data, val);
5894+
5895+ return val;
5896+}
5897+
5898+static inline int tsc2004_write_word_data(struct tsc2004 *tsc, u8 cmd, u16 data)
5899+{
5900+ u16 val;
5901+
5902+ val = cpu_to_be16(data);
5903+ return i2c_smbus_write_word_data(tsc->client, cmd, val);
5904+}
5905+
5906+static inline int tsc2004_write_cmd(struct tsc2004 *tsc, u8 value)
5907+{
5908+ return i2c_smbus_write_byte(tsc->client, value);
5909+}
5910+
5911+static int tsc2004_prepare_for_reading(struct tsc2004 *ts)
5912+{
5913+ int err;
5914+ int cmd, data;
5915+ int retries ;
5916+
5917+ /* Reset the TSC, configure for 12 bit */
5918+ retries = 0 ;
5919+ do {
5920+ /* Reset the TSC, configure for 12 bit */
5921+ cmd = TSC2004_CMD1(MEAS_X_Y_Z1_Z2, MODE_12BIT, SWRST_TRUE);
5922+ err = tsc2004_write_cmd(ts, cmd);
5923+ if (err < 0)
5924+ printk (KERN_ERR "%s: write_cmd %d\n", __func__, err );
5925+ } while ( (err < 0) && (3 < retries++) );
5926+
5927+ if (err < 0)
5928+ return err ;
5929+
5930+ /* Enable interrupt for PENIRQ and DAV */
5931+ cmd = TSC2004_CMD0(CFR2_REG, PND0_FALSE, WRITE_REG);
5932+ data = PINTS1 | PINTS0 | MEDIAN_VAL_FLTR_SIZE_15 |
5933+ AVRG_VAL_FLTR_SIZE_7_8 | MAV_FLTR_EN_X | MAV_FLTR_EN_Y |
5934+ MAV_FLTR_EN_Z;
5935+ err = tsc2004_write_word_data(ts, cmd, data);
5936+ if (err < 0)
5937+ return err;
5938+
5939+ /* Configure the TSC in TSMode 1 */
5940+ cmd = TSC2004_CMD0(CFR0_REG, PND0_FALSE, WRITE_REG);
5941+ data = PEN_STS_CTRL_MODE | ADC_CLK_2MHZ | PANEL_VLTG_STB_TIME_1MS;
5942+ err = tsc2004_write_word_data(ts, cmd, data);
5943+ if (err < 0)
5944+ return err;
5945+
5946+ /* Enable x, y, z1 and z2 conversion functions */
5947+ cmd = TSC2004_CMD1(MEAS_X_Y_Z1_Z2, MODE_12BIT, SWRST_FALSE);
5948+ err = tsc2004_write_cmd(ts, cmd);
5949+ if (err < 0)
5950+ return err;
5951+
5952+ return 0;
5953+}
5954+
5955+static void tsc2004_read_values(struct tsc2004 *tsc, struct ts_event *tc)
5956+{
5957+ int cmd;
5958+
5959+ /* Read X Measurement */
5960+ cmd = TSC2004_CMD0(X_REG, PND0_FALSE, READ_REG);
5961+ tc->x = tsc2004_read_xyz_data(tsc, cmd);
5962+
5963+ /* Read Y Measurement */
5964+ cmd = TSC2004_CMD0(Y_REG, PND0_FALSE, READ_REG);
5965+ tc->y = tsc2004_read_xyz_data(tsc, cmd);
5966+
5967+ /* Read Z1 Measurement */
5968+ cmd = TSC2004_CMD0(Z1_REG, PND0_FALSE, READ_REG);
5969+ tc->z1 = tsc2004_read_xyz_data(tsc, cmd);
5970+
5971+ /* Read Z2 Measurement */
5972+ cmd = TSC2004_CMD0(Z2_REG, PND0_FALSE, READ_REG);
5973+ tc->z2 = tsc2004_read_xyz_data(tsc, cmd);
5974+
5975+
5976+ tc->x &= MEAS_MASK;
5977+ tc->y &= MEAS_MASK;
5978+ tc->z1 &= MEAS_MASK;
5979+ tc->z2 &= MEAS_MASK;
5980+
5981+ /* Prepare for touch readings */
5982+ if (tsc2004_prepare_for_reading(tsc) < 0)
5983+ dev_dbg(&tsc->client->dev, "Failed to prepare TSC for next"
5984+ "reading\n");
5985+}
5986+
5987+static u32 tsc2004_calculate_pressure(struct tsc2004 *tsc, struct ts_event *tc)
5988+{
5989+ u32 rt = 0;
5990+
5991+ /* range filtering */
5992+ if (tc->x == MAX_12BIT)
5993+ tc->x = 0;
5994+
5995+ if (likely(tc->x && tc->z1)) {
5996+ /* compute touch pressure resistance using equation #1 */
5997+ rt = tc->z2 - tc->z1;
5998+ rt *= tc->x;
5999+ rt *= tsc->x_plate_ohms;
6000+ rt /= tc->z1;
6001+ rt = (rt + 2047) >> 12;
6002+ }
6003+
6004+ return rt;
6005+}
6006+
6007+static void tsc2004_send_up_event(struct tsc2004 *tsc)
6008+{
6009+ struct input_dev *input = tsc->input;
6010+
6011+ dev_dbg(&tsc->client->dev, "UP\n");
6012+
6013+ input_report_key(input, BTN_TOUCH, 0);
6014+ input_report_abs(input, ABS_PRESSURE, 0);
6015+ input_sync(input);
6016+}
6017+
6018+static void tsc2004_work(struct work_struct *work)
6019+{
6020+ struct tsc2004 *ts =
6021+ container_of(to_delayed_work(work), struct tsc2004, work);
6022+ struct ts_event tc;
6023+ u32 rt;
6024+
6025+ /*
6026+ * NOTE: We can't rely on the pressure to determine the pen down
6027+ * state, even though this controller has a pressure sensor.
6028+ * The pressure value can fluctuate for quite a while after
6029+ * lifting the pen and in some cases may not even settle at the
6030+ * expected value.
6031+ *
6032+ * The only safe way to check for the pen up condition is in the
6033+ * work function by reading the pen signal state (it's a GPIO
6034+ * and IRQ). Unfortunately such callback is not always available,
6035+ * in that case we have rely on the pressure anyway.
6036+ */
6037+ if (ts->get_pendown_state) {
6038+ if (unlikely(!ts->get_pendown_state())) {
6039+ tsc2004_send_up_event(ts);
6040+ ts->pendown = false;
6041+ goto out;
6042+ }
6043+
6044+ dev_dbg(&ts->client->dev, "pen is still down\n");
6045+ }
6046+
6047+ tsc2004_read_values(ts, &tc);
6048+
6049+ rt = tsc2004_calculate_pressure(ts, &tc);
6050+ if (rt > MAX_12BIT) {
6051+ /*
6052+ * Sample found inconsistent by debouncing or pressure is
6053+ * beyond the maximum. Don't report it to user space,
6054+ * repeat at least once more the measurement.
6055+ */
6056+ dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt);
6057+ goto out;
6058+
6059+ }
6060+
6061+ if (rt) {
6062+ struct input_dev *input = ts->input;
6063+
6064+ translate(&tc.x, &tc.y);
6065+
6066+ if (!ts->pendown) {
6067+ dev_dbg(&ts->client->dev, "DOWN\n");
6068+
6069+ input_report_key(input, BTN_TOUCH, 1);
6070+ ts->pendown = true;
6071+ }
6072+
6073+ input_report_abs(input, ABS_X, tc.x);
6074+ input_report_abs(input, ABS_Y, tc.y);
6075+ input_report_abs(input, ABS_PRESSURE, rt);
6076+
6077+ input_sync(input);
6078+
6079+ dev_dbg(&ts->client->dev, "point(%4d,%4d), pressure (%4u)\n",
6080+ tc.x, tc.y, rt);
6081+
6082+ } else if (!ts->get_pendown_state && ts->pendown) {
6083+ /*
6084+ * We don't have callback to check pendown state, so we
6085+ * have to assume that since pressure reported is 0 the
6086+ * pen was lifted up.
6087+ */
6088+ tsc2004_send_up_event(ts);
6089+ ts->pendown = false;
6090+ }
6091+
6092+ out:
6093+ if (ts->pendown)
6094+ schedule_delayed_work(&ts->work,
6095+ msecs_to_jiffies(TS_POLL_PERIOD));
6096+ else
6097+ enable_irq(ts->irq);
6098+}
6099+
6100+static irqreturn_t tsc2004_irq(int irq, void *handle)
6101+{
6102+ struct tsc2004 *ts = handle;
6103+
6104+ if (!ts->get_pendown_state || likely(ts->get_pendown_state())) {
6105+ disable_irq_nosync(ts->irq);
6106+ schedule_delayed_work(&ts->work,
6107+ msecs_to_jiffies(TS_POLL_DELAY));
6108+ }
6109+
6110+ if (ts->clear_penirq)
6111+ ts->clear_penirq();
6112+
6113+ return IRQ_HANDLED;
6114+}
6115+
6116+static void tsc2004_free_irq(struct tsc2004 *ts)
6117+{
6118+ free_irq(ts->irq, ts);
6119+ if (cancel_delayed_work_sync(&ts->work)) {
6120+ /*
6121+ * Work was pending, therefore we need to enable
6122+ * IRQ here to balance the disable_irq() done in the
6123+ * interrupt handler.
6124+ */
6125+ enable_irq(ts->irq);
6126+ }
6127+}
6128+
6129+static int __devinit tsc2004_probe(struct i2c_client *client,
6130+ const struct i2c_device_id *id)
6131+{
6132+ struct tsc2004 *ts;
6133+ struct tsc2007_platform_data *pdata = pdata = client->dev.platform_data;
6134+ struct input_dev *input_dev;
6135+ int err;
6136+
6137+ if (!pdata) {
6138+ dev_err(&client->dev, "platform data is required!\n");
6139+ return -EINVAL;
6140+ }
6141+
6142+ if (!i2c_check_functionality(client->adapter,
6143+ I2C_FUNC_SMBUS_READ_WORD_DATA))
6144+ return -EIO;
6145+
6146+ ts = kzalloc(sizeof(struct tsc2004), GFP_KERNEL);
6147+ input_dev = input_allocate_device();
6148+ if (!ts || !input_dev) {
6149+ err = -ENOMEM;
6150+ goto err_free_mem;
6151+ }
6152+
6153+ ts->client = client;
6154+ ts->irq = client->irq;
6155+ ts->input = input_dev;
6156+ INIT_DELAYED_WORK(&ts->work, tsc2004_work);
6157+
6158+ ts->model = pdata->model;
6159+ ts->x_plate_ohms = pdata->x_plate_ohms;
6160+ ts->get_pendown_state = pdata->get_pendown_state;
6161+ ts->clear_penirq = pdata->clear_penirq;
6162+
6163+ snprintf(ts->phys, sizeof(ts->phys),
6164+ "%s/input0", dev_name(&client->dev));
6165+
6166+ input_dev->name = "tsc2004";
6167+ input_dev->phys = ts->phys;
6168+ input_dev->id.bustype = BUS_I2C;
6169+
6170+ input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
6171+ input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
6172+
6173+ input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, 0, 0);
6174+ input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, 0, 0);
6175+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, 0, 0);
6176+
6177+ if (pdata->init_platform_hw)
6178+ pdata->init_platform_hw();
6179+
6180+ err = request_irq(ts->irq, tsc2004_irq, IRQF_TRIGGER_FALLING,
6181+ client->dev.driver->name, ts);
6182+ if (err < 0) {
6183+ dev_err(&client->dev, "irq %d busy?\n", ts->irq);
6184+ goto err_free_mem;
6185+ }
6186+
6187+ /* Prepare for touch readings */
6188+ err = tsc2004_prepare_for_reading(ts);
6189+ if (err < 0)
6190+ goto err_free_irq;
6191+
6192+ err = input_register_device(input_dev);
6193+ if (err)
6194+ goto err_free_irq;
6195+
6196+ i2c_set_clientdata(client, ts);
6197+
6198+ return 0;
6199+
6200+ err_free_irq:
6201+ tsc2004_free_irq(ts);
6202+ if (pdata->exit_platform_hw)
6203+ pdata->exit_platform_hw();
6204+ err_free_mem:
6205+ input_free_device(input_dev);
6206+ kfree(ts);
6207+ return err;
6208+}
6209+
6210+static int __devexit tsc2004_remove(struct i2c_client *client)
6211+{
6212+ struct tsc2004 *ts = i2c_get_clientdata(client);
6213+ struct tsc2007_platform_data *pdata = client->dev.platform_data;
6214+
6215+ tsc2004_free_irq(ts);
6216+
6217+ if (pdata->exit_platform_hw)
6218+ pdata->exit_platform_hw();
6219+
6220+ input_unregister_device(ts->input);
6221+ kfree(ts);
6222+
6223+ return 0;
6224+}
6225+
6226+static struct i2c_device_id tsc2004_idtable[] = {
6227+ { "tsc2004", 0 },
6228+ { }
6229+};
6230+
6231+MODULE_DEVICE_TABLE(i2c, tsc2004_idtable);
6232+
6233+static struct i2c_driver tsc2004_driver = {
6234+ .driver = {
6235+ .owner = THIS_MODULE,
6236+ .name = "tsc2004"
6237+ },
6238+ .id_table = tsc2004_idtable,
6239+ .probe = tsc2004_probe,
6240+ .remove = __devexit_p(tsc2004_remove),
6241+};
6242+
6243+static int __init tsc2004_init(void)
6244+{
6245+ return i2c_add_driver(&tsc2004_driver);
6246+}
6247+
6248+static void __exit tsc2004_exit(void)
6249+{
6250+ i2c_del_driver(&tsc2004_driver);
6251+}
6252+
6253+module_init(tsc2004_init);
6254+module_exit(tsc2004_exit);
6255+
6256+MODULE_AUTHOR("Vaibhav Hiremath <hvaibhav@ti.com>");
6257+MODULE_DESCRIPTION("TSC2004 TouchScreen Driver");
6258+MODULE_LICENSE("GPL");
6259diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
6260old mode 100755
6261new mode 100644
6262diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
6263old mode 100755
6264new mode 100644
6265diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
6266old mode 100755
6267new mode 100644
6268diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
6269old mode 100755
6270new mode 100644
6271diff --git a/drivers/mfd/da9052-core.c b/drivers/mfd/da9052-core.c
6272old mode 100755
6273new mode 100644
6274diff --git a/drivers/mfd/da9052-i2c.c b/drivers/mfd/da9052-i2c.c
6275old mode 100755
6276new mode 100644
6277diff --git a/drivers/mmc/core/sdio_cis.c b/drivers/mmc/core/sdio_cis.c
6278index 541bdb8..3b0ca83 100644
6279--- a/drivers/mmc/core/sdio_cis.c
6280+++ b/drivers/mmc/core/sdio_cis.c
6281@@ -230,6 +230,7 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
6282 int ret;
6283 struct sdio_func_tuple *this, **prev;
6284 unsigned i, ptr = 0;
6285+ unsigned ptr_null_end;
6286
6287 /*
6288 * Note that this works for the common CIS (function number 0) as
6289@@ -258,6 +259,7 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
6290
6291 BUG_ON(*prev);
6292
6293+ ptr_null_end = (ptr | 0xff) + 1;
6294 do {
6295 unsigned char tpl_code, tpl_link;
6296
6297@@ -269,6 +271,9 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
6298 if (tpl_code == 0xff)
6299 break;
6300
6301+ if ((tpl_code == 0x00) && (ptr == ptr_null_end))
6302+ break; /* patch for misbehaving rtl8712 card */
6303+
6304 /* null entries have no link field or data */
6305 if (tpl_code == 0x00)
6306 continue;
6307@@ -282,9 +287,10 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
6308 break;
6309
6310 this = kmalloc(sizeof(*this) + tpl_link, GFP_KERNEL);
6311- if (!this)
6312- return -ENOMEM;
6313-
6314+ if (!this) {
6315+ ret = -ENOMEM;
6316+ break;
6317+ }
6318 for (i = 0; i < tpl_link; i++) {
6319 ret = mmc_io_rw_direct(card, 0, 0,
6320 ptr + i, 0, &this->data[i]);
6321@@ -328,6 +334,12 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
6322 * not going to be queued for a driver.
6323 */
6324 kfree(this);
6325+ if (ret) {
6326+ printk(KERN_WARNING "%s: dropping invalid"
6327+ " CIS tuple 0x%02x (%u bytes)\n",
6328+ mmc_hostname(card->host),
6329+ tpl_code, tpl_link);
6330+ }
6331 }
6332
6333 ptr += tpl_link;
6334diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
6335index e173686..2e3330c 100644
6336--- a/drivers/mmc/host/sdhci-esdhc-imx.c
6337+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
6338@@ -849,6 +849,7 @@ static int esdhc_pltfm_init(struct sdhci_host *host, struct sdhci_pltfm_data *pd
6339 host->ocr_avail_sd |= MMC_VDD_165_195;
6340 if (boarddata->support_8bit)
6341 host->mmc->caps |= MMC_CAP_8_BIT_DATA;
6342+ host->mmc->caps |= boarddata->caps;
6343 if (boarddata->keep_power_at_suspend)
6344 host->mmc->pm_caps |= (MMC_PM_KEEP_POWER | \
6345 MMC_PM_WAKE_SDIO_IRQ);
6346diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
6347old mode 100755
6348new mode 100644
6349diff --git a/drivers/mxc/mlb/mxc_mlb150.c b/drivers/mxc/mlb/mxc_mlb150.c
6350old mode 100755
6351new mode 100644
6352diff --git a/drivers/net/fec.c b/drivers/net/fec.c
6353old mode 100755
6354new mode 100644
6355index 5af378f..c92bca0
6356--- a/drivers/net/fec.c
6357+++ b/drivers/net/fec.c
6358@@ -1054,7 +1054,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)
6359 return 0;
6360 }
6361
6362-static int fec_enet_mii_init(struct platform_device *pdev)
6363+static int fec_enet_mii_init(struct platform_device *pdev, int phy_irq)
6364 {
6365 static struct mii_bus *fec0_mii_bus;
6366 struct net_device *ndev = platform_get_drvdata(pdev);
6367@@ -1120,7 +1120,7 @@ static int fec_enet_mii_init(struct platform_device *pdev)
6368 }
6369
6370 for (i = 0; i < PHY_MAX_ADDR; i++)
6371- fep->mii_bus->irq[i] = PHY_POLL;
6372+ fep->mii_bus->irq[i] = phy_irq;
6373
6374 if (mdiobus_register(fep->mii_bus))
6375 goto err_out_free_mdio_irq;
6376@@ -1772,6 +1772,7 @@ fec_probe(struct platform_device *pdev)
6377 struct net_device *ndev;
6378 int i, irq, ret = 0;
6379 struct resource *r;
6380+ int phy_irq = PHY_POLL;
6381
6382 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
6383 if (!r)
6384@@ -1804,8 +1805,11 @@ fec_probe(struct platform_device *pdev)
6385 platform_set_drvdata(pdev, ndev);
6386
6387 pdata = pdev->dev.platform_data;
6388- if (pdata)
6389+ if (pdata) {
6390 fep->phy_interface = pdata->phy;
6391+ if (pdata->phy_irq)
6392+ phy_irq = pdata->phy_irq;
6393+ }
6394
6395 /* This device has up to three irqs on some platforms */
6396 for (i = 0; i < 3; i++) {
6397@@ -1833,7 +1837,7 @@ fec_probe(struct platform_device *pdev)
6398 if (ret)
6399 goto failed_init;
6400
6401- ret = fec_enet_mii_init(pdev);
6402+ ret = fec_enet_mii_init(pdev, phy_irq);
6403 if (ret)
6404 goto failed_mii_init;
6405
6406diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
6407index 80747d2..6eafb5c 100644
6408--- a/drivers/net/phy/micrel.c
6409+++ b/drivers/net/phy/micrel.c
6410@@ -16,6 +16,7 @@
6411 * ks8001, ks8737, ks8721, ks8041, ks8051 100/10 phy
6412 */
6413
6414+#include <linux/delay.h>
6415 #include <linux/kernel.h>
6416 #include <linux/module.h>
6417 #include <linux/phy.h>
6418@@ -48,16 +49,34 @@ static int kszphy_ack_interrupt(struct phy_device *phydev)
6419 int rc;
6420
6421 rc = phy_read(phydev, MII_KSZPHY_INTCS);
6422-
6423 return (rc < 0) ? rc : 0;
6424 }
6425
6426 static int kszphy_set_interrupt(struct phy_device *phydev)
6427 {
6428- int temp;
6429- temp = (PHY_INTERRUPT_ENABLED == phydev->interrupts) ?
6430- KSZPHY_INTCS_ALL : 0;
6431- return phy_write(phydev, MII_KSZPHY_INTCS, temp);
6432+ int bmcr, new_bmcr;
6433+ bmcr = phy_read(phydev, MII_BMCR);
6434+ if (PHY_INTERRUPT_ENABLED == phydev->interrupts) {
6435+ new_bmcr = bmcr & ~BMCR_PDOWN;
6436+ if (bmcr != new_bmcr) {
6437+ unsigned intcs, temp;
6438+ phy_write(phydev, MII_BMCR, new_bmcr);
6439+ udelay(100); /* power up needs delay after */
6440+ /* force master mode */
6441+ phy_write(phydev, 0x9, 0x1f00);
6442+ }
6443+ return phy_write(phydev, MII_KSZPHY_INTCS, KSZPHY_INTCS_ALL);
6444+ } else {
6445+ phy_write(phydev, MII_KSZPHY_INTCS, 0);
6446+ new_bmcr = bmcr | BMCR_PDOWN;
6447+ if ((PHY_HALTED == phydev->state) && (bmcr != new_bmcr)) {
6448+ phy_write(phydev, MII_BMCR, bmcr | BMCR_ANRESTART);
6449+ /* let phy note link is down before poweroff */
6450+ udelay(10);
6451+ phy_write(phydev, MII_BMCR, new_bmcr);
6452+ }
6453+ return 0;
6454+ }
6455 }
6456
6457 static int kszphy_config_intr(struct phy_device *phydev)
6458@@ -66,8 +85,10 @@ static int kszphy_config_intr(struct phy_device *phydev)
6459
6460 /* set the interrupt pin active low */
6461 temp = phy_read(phydev, MII_KSZPHY_CTRL);
6462- temp &= ~KSZPHY_CTRL_INT_ACTIVE_HIGH;
6463- phy_write(phydev, MII_KSZPHY_CTRL, temp);
6464+ if (temp & KSZPHY_CTRL_INT_ACTIVE_HIGH) {
6465+ temp &= ~KSZPHY_CTRL_INT_ACTIVE_HIGH;
6466+ phy_write(phydev, MII_KSZPHY_CTRL, temp);
6467+ }
6468 rc = kszphy_set_interrupt(phydev);
6469 return rc < 0 ? rc : 0;
6470 }
6471@@ -76,10 +97,12 @@ static int ksz9021_config_intr(struct phy_device *phydev)
6472 {
6473 int temp, rc;
6474
6475- /* set the interrupt pin active low */
6476 temp = phy_read(phydev, MII_KSZPHY_CTRL);
6477- temp &= ~KSZ9021_CTRL_INT_ACTIVE_HIGH;
6478- phy_write(phydev, MII_KSZPHY_CTRL, temp);
6479+ if (temp & KSZ9021_CTRL_INT_ACTIVE_HIGH) {
6480+ /* set the interrupt pin active low */
6481+ temp &= ~KSZ9021_CTRL_INT_ACTIVE_HIGH;
6482+ phy_write(phydev, MII_KSZPHY_CTRL, temp);
6483+ }
6484 rc = kszphy_set_interrupt(phydev);
6485 return rc < 0 ? rc : 0;
6486 }
6487diff --git a/drivers/net/wireless/wl12xx/Kconfig b/drivers/net/wireless/wl12xx/Kconfig
6488index 35ce7b0..1dc6a47 100644
6489--- a/drivers/net/wireless/wl12xx/Kconfig
6490+++ b/drivers/net/wireless/wl12xx/Kconfig
6491@@ -1,6 +1,7 @@
6492 menuconfig WL12XX_MENU
6493 tristate "TI wl12xx driver support"
6494 depends on MAC80211 && EXPERIMENTAL
6495+ select WEXT_PRIV
6496 ---help---
6497 This will enable TI wl12xx driver support for the following chips:
6498 wl1271, wl1273, wl1281 and wl1283.
6499@@ -12,6 +13,7 @@ config WL12XX
6500 depends on INET
6501 select FW_LOADER
6502 select CRC7
6503+ select WIRELESS_EXT
6504 ---help---
6505 This module adds support for wireless adapters based on TI wl1271 and
6506 TI wl1273 chipsets. This module does *not* include support for wl1251.
6507diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
6508index e6497dc..f1ffec0 100644
6509--- a/drivers/net/wireless/wl12xx/main.c
6510+++ b/drivers/net/wireless/wl12xx/main.c
6511@@ -1767,6 +1767,8 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw,
6512
6513 mutex_unlock(&wl->mutex);
6514 cancel_work_sync(&wl->recovery_work);
6515+ if (wl->set_power)
6516+ wl->set_power(0);
6517 }
6518
6519 void wl1271_configure_filters(struct wl1271 *wl, unsigned int filters)
6520@@ -3781,9 +3783,39 @@ static ssize_t wl1271_sysfs_show_hw_pg_ver(struct device *dev,
6521 static DEVICE_ATTR(hw_pg_ver, S_IRUGO | S_IWUSR,
6522 wl1271_sysfs_show_hw_pg_ver, NULL);
6523
6524+
6525+static int parse_mac(unsigned char *mac, unsigned char const *str_mac)
6526+{
6527+ int i = 0;
6528+ char *end;
6529+ int ret = -EINVAL;
6530+
6531+ for (;;) {
6532+ mac[i++] = simple_strtoul(str_mac, &end, 16);
6533+ if (i == 6) {
6534+ if (!*end || (*end == ' '))
6535+ ret = 0;
6536+ break;
6537+ }
6538+ str_mac = end + 1;
6539+ if ((*end != '-') && (*end != ':'))
6540+ break;
6541+ }
6542+ return ret;
6543+}
6544+
6545+static char *mac;
6546+module_param(mac, charp, S_IRUGO);
6547+MODULE_PARM_DESC(mac, "mac address override");
6548+
6549 int wl1271_register_hw(struct wl1271 *wl)
6550 {
6551 int ret;
6552+ u8 override_mac[ETH_ALEN];
6553+ memset(override_mac, 0, ETH_ALEN);
6554+ if (mac)
6555+ if (parse_mac(override_mac, mac))
6556+ memset(override_mac, 0, ETH_ALEN);
6557
6558 if (wl->mac80211_registered)
6559 return 0;
6560@@ -3804,6 +3836,9 @@ int wl1271_register_hw(struct wl1271 *wl)
6561 wl->mac_addr[5] = nvs_ptr[3];
6562 }
6563
6564+ if (is_valid_ether_addr(override_mac))
6565+ memcpy(wl->mac_addr, override_mac, sizeof(wl->mac_addr));
6566+
6567 SET_IEEE80211_PERM_ADDR(wl->hw, wl->mac_addr);
6568
6569 ret = ieee80211_register_hw(wl->hw);
6570diff --git a/drivers/net/wireless/wl12xx/sdio.c b/drivers/net/wireless/wl12xx/sdio.c
6571index 536e506..5bd82f2 100644
6572--- a/drivers/net/wireless/wl12xx/sdio.c
6573+++ b/drivers/net/wireless/wl12xx/sdio.c
6574@@ -303,6 +303,7 @@ static int __devinit wl1271_probe(struct sdio_func *func,
6575 /* Tell PM core that we don't need the card to be powered now */
6576 pm_runtime_put_noidle(&func->dev);
6577
6578+ wl->set_power = wlan_data->set_power;
6579 wl1271_notice("initialized");
6580
6581 return 0;
6582diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
6583old mode 100755
6584new mode 100644
6585diff --git a/drivers/power/Makefile b/drivers/power/Makefile
6586old mode 100755
6587new mode 100644
6588diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
6589old mode 100755
6590new mode 100644
6591diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
6592old mode 100755
6593new mode 100644
6594diff --git a/drivers/regulator/da9052-regulator.c b/drivers/regulator/da9052-regulator.c
6595old mode 100755
6596new mode 100644
6597diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
6598old mode 100755
6599new mode 100644
6600diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
6601old mode 100755
6602new mode 100644
6603diff --git a/drivers/rtc/rtc-da9052.c b/drivers/rtc/rtc-da9052.c
6604old mode 100755
6605new mode 100644
6606diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
6607index 8a66f3e..96df580 100644
6608--- a/drivers/tty/serial/imx.c
6609+++ b/drivers/tty/serial/imx.c
6610@@ -1212,9 +1212,12 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
6611 {
6612 struct imx_port *sport = (struct imx_port *)port;
6613 unsigned long flags;
6614- unsigned int ucr2, old_ucr1, old_txrxen, baud, quot;
6615+ unsigned new_ucr2, old_ucr2;
6616+ unsigned new_ufcr, old_ufcr;
6617+ unsigned old_ubir, old_ubmr;
6618+ unsigned int baud, quot;
6619 unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8;
6620- unsigned int div, ufcr;
6621+ unsigned int div;
6622 unsigned long num, denom;
6623 uint64_t tdiv64;
6624
6625@@ -1237,26 +1240,25 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
6626 old_csize = CS8;
6627 }
6628
6629+ new_ucr2 = UCR2_SRST | UCR2_IRTS;
6630 if ((termios->c_cflag & CSIZE) == CS8)
6631- ucr2 = UCR2_WS | UCR2_SRST | UCR2_IRTS;
6632- else
6633- ucr2 = UCR2_SRST | UCR2_IRTS;
6634+ new_ucr2 |= UCR2_WS;
6635
6636 if (termios->c_cflag & CRTSCTS) {
6637 if( sport->have_rtscts ) {
6638- ucr2 &= ~UCR2_IRTS;
6639- ucr2 |= UCR2_CTSC;
6640+ new_ucr2 &= ~UCR2_IRTS;
6641+ new_ucr2 |= UCR2_CTSC;
6642 } else {
6643 termios->c_cflag &= ~CRTSCTS;
6644 }
6645 }
6646
6647 if (termios->c_cflag & CSTOPB)
6648- ucr2 |= UCR2_STPB;
6649+ new_ucr2 |= UCR2_STPB;
6650 if (termios->c_cflag & PARENB) {
6651- ucr2 |= UCR2_PREN;
6652+ new_ucr2 |= UCR2_PREN;
6653 if (termios->c_cflag & PARODD)
6654- ucr2 |= UCR2_PROE;
6655+ new_ucr2 |= UCR2_PROE;
6656 }
6657
6658 /*
6659@@ -1269,7 +1271,7 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
6660
6661 spin_lock_irqsave(&sport->port.lock, flags);
6662
6663- sport->port.read_status_mask = 0;
6664+ sport->port.read_status_mask = 0xff;
6665 if (termios->c_iflag & INPCK)
6666 sport->port.read_status_mask |= (URXD_FRMERR | URXD_PRERR);
6667 if (termios->c_iflag & (BRKINT | PARMRK))
6668@@ -1296,22 +1298,6 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
6669 */
6670 uart_update_timeout(port, termios->c_cflag, baud);
6671
6672- /*
6673- * disable interrupts and drain transmitter
6674- */
6675- old_ucr1 = readl(sport->port.membase + UCR1);
6676- writel(old_ucr1 & ~(UCR1_TXMPTYEN | UCR1_RRDYEN | UCR1_RTSDEN),
6677- sport->port.membase + UCR1);
6678-
6679- while ( !(readl(sport->port.membase + USR2) & USR2_TXDC))
6680- barrier();
6681-
6682- /* then, disable everything */
6683- old_txrxen = readl(sport->port.membase + UCR2);
6684- writel(old_txrxen & ~( UCR2_TXEN | UCR2_RXEN),
6685- sport->port.membase + UCR2);
6686- old_txrxen &= (UCR2_TXEN | UCR2_RXEN);
6687-
6688 if (USE_IRDA(sport)) {
6689 /*
6690 * use maximum available submodule frequency to
6691@@ -1338,31 +1324,47 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
6692 num -= 1;
6693 denom -= 1;
6694
6695- ufcr = readl(sport->port.membase + UFCR);
6696- ufcr = (ufcr & (~UFCR_RFDIV)) | UFCR_RFDIV_REG(div);
6697+ old_ufcr = readl(sport->port.membase + UFCR);
6698+ new_ufcr = (old_ufcr & (~UFCR_RFDIV)) | UFCR_RFDIV_REG(div);
6699
6700- if (sport->use_dcedte)
6701- ufcr |= UFCR_DCEDTE;
6702-
6703- writel(ufcr, sport->port.membase + UFCR);
6704+ old_ubir = readl(sport->port.membase + UBIR);
6705+ old_ubmr = readl(sport->port.membase + UBMR);
6706+ old_ucr2 = readl(sport->port.membase + UCR2) & ~UCR2_CTS;
6707+ new_ucr2 |= old_ucr2 & (UCR2_TXEN | UCR2_RXEN);
6708
6709- writel(num, sport->port.membase + UBIR);
6710- writel(denom, sport->port.membase + UBMR);
6711+ if (sport->use_dcedte)
6712+ new_ufcr |= UFCR_DCEDTE;
6713+ if ((old_ufcr != new_ufcr) || (old_ucr2 != new_ucr2) ||
6714+ (old_ubir != num) || (old_ubmr != denom)) {
6715+ int i;
6716+ /* software reset */
6717+ writel(readl(sport->port.membase + UCR2) &
6718+ ~(UCR2_TXEN | UCR2_RXEN | UCR2_SRST | UCR2_CTS),
6719+ sport->port.membase + UCR2);
6720+ for (i = 0; i < 2000; i++) {
6721+ unsigned uts = readl(sport->port.membase + UTS);
6722+ if (!(uts & UTS_SOFTRST))
6723+ break;
6724+ }
6725+ writel(new_ufcr, sport->port.membase + UFCR);
6726+ writel(num, sport->port.membase + UBIR);
6727+ writel(denom, sport->port.membase + UBMR);
6728
6729- if (!cpu_is_mx1())
6730- writel(sport->port.uartclk / div / 1000,
6731+ if (!cpu_is_mx1())
6732+ writel(sport->port.uartclk / div / 1000,
6733 sport->port.membase + MX2_ONEMS);
6734
6735- writel(old_ucr1, sport->port.membase + UCR1);
6736+ /* set the parity, stop bits and data size */
6737+ writel(new_ucr2, sport->port.membase + UCR2);
6738
6739- /* set the parity, stop bits and data size */
6740- writel(ucr2 | old_txrxen, sport->port.membase + UCR2);
6741+ if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
6742+ imx_enable_ms(&sport->port);
6743
6744+ pr_info("old_ufcr=%x new_ufcr=%x, old_ucr2=%x new_ucr2=%x, old_ubir=%x num=%lx, old_ubmr=%x denom=%lx\n",
6745+ old_ufcr, new_ufcr, old_ucr2, new_ucr2, old_ubir, num, old_ubmr, denom);
6746+ pr_info("clk=%i div=%i num=%li denom=%li baud=%i\n", sport->port.uartclk, div, num+1, denom+1, baud);
6747+ }
6748 spin_unlock_irqrestore(&sport->port.lock, flags);
6749-
6750- if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
6751- imx_enable_ms(&sport->port);
6752-
6753 }
6754
6755 static const char *imx_type(struct uart_port *port)
6756diff --git a/drivers/tty/serial/mxc_uart_early.c b/drivers/tty/serial/mxc_uart_early.c
6757index ffa3660..443dff5 100644
6758--- a/drivers/tty/serial/mxc_uart_early.c
6759+++ b/drivers/tty/serial/mxc_uart_early.c
6760@@ -183,7 +183,7 @@ int __init mxc_early_uart_console_disable(void)
6761 if (mxc_early_uart_console.index >= 0) {
6762 unregister_console(&mxc_early_uart_console);
6763 iounmap(port->membase);
6764- clk_disable(device->clk);
6765+// clk_disable(device->clk);
6766 clk_put(device->clk);
6767 }
6768 return 0;
6769diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
6770old mode 100755
6771new mode 100644
6772diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
6773old mode 100755
6774new mode 100644
6775diff --git a/drivers/usb/gadget/arcotg_udc.c b/drivers/usb/gadget/arcotg_udc.c
6776old mode 100755
6777new mode 100644
6778diff --git a/drivers/usb/gadget/arcotg_udc.h b/drivers/usb/gadget/arcotg_udc.h
6779old mode 100755
6780new mode 100644
6781diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
6782old mode 100755
6783new mode 100644
6784diff --git a/drivers/usb/host/ehci-arc.c b/drivers/usb/host/ehci-arc.c
6785old mode 100755
6786new mode 100644
6787diff --git a/drivers/usb/host/ehci-fsl.h b/drivers/usb/host/ehci-fsl.h
6788old mode 100755
6789new mode 100644
6790diff --git a/drivers/usb/otg/Kconfig b/drivers/usb/otg/Kconfig
6791old mode 100755
6792new mode 100644
6793diff --git a/drivers/usb/otg/Makefile b/drivers/usb/otg/Makefile
6794old mode 100755
6795new mode 100644
6796diff --git a/drivers/usb/otg/fsl_otg.c b/drivers/usb/otg/fsl_otg.c
6797old mode 100755
6798new mode 100644
6799diff --git a/drivers/usb/otg/fsl_otg.h b/drivers/usb/otg/fsl_otg.h
6800old mode 100755
6801new mode 100644
6802diff --git a/drivers/usb/otg/otg_fsm.c b/drivers/usb/otg/otg_fsm.c
6803old mode 100755
6804new mode 100644
6805diff --git a/drivers/usb/otg/otg_fsm.h b/drivers/usb/otg/otg_fsm.h
6806old mode 100755
6807new mode 100644
6808diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
6809old mode 100755
6810new mode 100644
6811diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
6812old mode 100755
6813new mode 100644
6814diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c
6815index 745c485..d8df225 100644
6816--- a/drivers/video/mxc/mxc_ipuv3_fb.c
6817+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
6818@@ -830,6 +830,8 @@ static int mxcfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
6819 vtotal = var->yres + var->lower_margin + var->vsync_len +
6820 var->upper_margin;
6821 var->pixclock = (vtotal * htotal * 6UL) / 100UL;
6822+ if (!var->pixclock)
6823+ var->pixclock = 1000;
6824 var->pixclock = KHZ2PICOS(var->pixclock);
6825 dev_dbg(info->device,
6826 "pixclock set for 60Hz refresh = %u ps\n",
6827@@ -2229,7 +2231,7 @@ static int mxcfb_probe(struct platform_device *pdev)
6828 mxcfbi->ipu_ch_nf_irq = IPU_IRQ_DC_SYNC_NFACK;
6829 mxcfbi->ipu_alp_ch_irq = -1;
6830 mxcfbi->ipu_ch = MEM_DC_SYNC;
6831- mxcfbi->cur_blank = mxcfbi->next_blank = FB_BLANK_POWERDOWN;
6832+ mxcfbi->cur_blank = mxcfbi->next_blank = FB_BLANK_UNBLANK;
6833
6834 ret = mxcfb_register(fbi);
6835 if (ret < 0)
6836diff --git a/drivers/video/mxc/mxcfb.c b/drivers/video/mxc/mxcfb.c
6837index 4dffee5..a3f6476 100644
6838--- a/drivers/video/mxc/mxcfb.c
6839+++ b/drivers/video/mxc/mxcfb.c
6840@@ -346,6 +346,8 @@ static int mxcfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
6841 vtotal = var->yres + var->lower_margin + var->vsync_len +
6842 var->upper_margin;
6843 var->pixclock = (vtotal * htotal * 6UL) / 100UL;
6844+ if (!var->pixclock)
6845+ var->pixclock = 1000;
6846 var->pixclock = KHZ2PICOS(var->pixclock);
6847 dev_dbg(info->device,
6848 "pixclock set for 60Hz refresh = %u ps\n",
6849diff --git a/drivers/video/mxc/mxcfb_claa_wvga.c b/drivers/video/mxc/mxcfb_claa_wvga.c
6850index 3dbad0d..4f15ba4 100644
6851--- a/drivers/video/mxc/mxcfb_claa_wvga.c
6852+++ b/drivers/video/mxc/mxcfb_claa_wvga.c
6853@@ -117,7 +117,7 @@ static struct notifier_block nb = {
6854 static int __devinit lcd_probe(struct platform_device *pdev)
6855 {
6856 int i;
6857- struct mxc_lcd_platform_data *plat = pdev->dev.platform_data;
6858+ struct fsl_mxc_lcd_platform_data *plat = pdev->dev.platform_data;
6859
6860 if (plat) {
6861 if (plat->reset)
6862diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c
6863index a45c347..3d96dfa 100644
6864--- a/drivers/video/mxc_hdmi.c
6865+++ b/drivers/video/mxc_hdmi.c
6866@@ -1538,10 +1538,10 @@ static void mxc_hdmi_edid_rebuild_modelist(struct mxc_hdmi *hdmi)
6867 */
6868 mode = &hdmi->fbi->monspecs.modedb[i];
6869
6870- if (!(mode->vmode & FB_VMODE_INTERLACED) &&
6871- (mxc_edid_mode_to_vic(mode) != 0)) {
6872+ if (!(mode->vmode & FB_VMODE_INTERLACED)) {
6873+ int vic = mxc_edid_mode_to_vic(mode);
6874
6875- dev_dbg(&hdmi->pdev->dev, "Added mode %d:", i);
6876+ dev_info(&hdmi->pdev->dev, "%s: Added mode %d(VIC %u):", __func__, i, vic);
6877 dev_dbg(&hdmi->pdev->dev,
6878 "xres = %d, yres = %d, freq = %d, vmode = %d, flag = %d\n",
6879 hdmi->fbi->monspecs.modedb[i].xres,
6880diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
6881old mode 100755
6882new mode 100644
6883diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
6884old mode 100755
6885new mode 100644
6886diff --git a/include/linux/fec.h b/include/linux/fec.h
6887index 8f69cb5..7a08261 100644
6888--- a/include/linux/fec.h
6889+++ b/include/linux/fec.h
6890@@ -21,6 +21,7 @@ struct fec_platform_data {
6891 int (*power_hibernate) (struct phy_device *);
6892 phy_interface_t phy;
6893 unsigned char mac[ETH_ALEN];
6894+ int phy_irq;
6895 };
6896
6897 #endif
6898diff --git a/include/linux/mfd/da9052/da9052.h b/include/linux/mfd/da9052/da9052.h
6899old mode 100755
6900new mode 100644
6901diff --git a/include/linux/mfd/da9052/tsi_filter.h b/include/linux/mfd/da9052/tsi_filter.h
6902old mode 100755
6903new mode 100644
diff --git a/recipes-kernel/linux/linux-imx_3.0.35.bb b/recipes-kernel/linux/linux-imx_3.0.35.bb
index 60ec3b0..c183e1e 100644
--- a/recipes-kernel/linux/linux-imx_3.0.35.bb
+++ b/recipes-kernel/linux/linux-imx_3.0.35.bb
@@ -3,7 +3,7 @@
3 3
4include linux-imx.inc 4include linux-imx.inc
5 5
6PR = "${INC_PR}.3" 6PR = "${INC_PR}.4"
7 7
8COMPATIBLE_MACHINE = "(mx6)" 8COMPATIBLE_MACHINE = "(mx6)"
9 9
@@ -13,3 +13,5 @@ LOCALVERSION = "-12.09.01+yocto"
13 13
14SRC_URI += "file://perf_tools_Fix_build_against_newer_glibc.patch" 14SRC_URI += "file://perf_tools_Fix_build_against_newer_glibc.patch"
15 15
16# iMX6Q SabreLITE changes done by Boundary Devices
17SRC_URI_append_imx6qsabrelite = " file://sync-boundary-changes.patch"