aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsbrissen <sbrissen@hotmail.com>2013-06-21 07:40:19 -0400
committerDaniel Hillenbrand <codeworkx@cyanogenmod.org>2013-06-25 17:05:03 +0200
commitcb93f68cb9ab19d9647962568b4c895548a869e8 (patch)
tree489bbfb6351db1d685e81c3d8c9c118544b68be4
parent5b3cb3ccc3df3b6106b5ae91f1ca77fcb1d99064 (diff)
downloadkernel_samsung_smdk4412-cb93f68cb9ab19d9647962568b4c895548a869e8.tar.gz
kernel_samsung_smdk4412-cb93f68cb9ab19d9647962568b4c895548a869e8.tar.bz2
kernel_samsung_smdk4412-cb93f68cb9ab19d9647962568b4c895548a869e8.zip
smdk4412: add i925/p4noteltevzw support
Change-Id: I17d3befd6a6538c16db0675253927068a09085c6
-rw-r--r--arch/arm/configs/cyanogenmod_i925_defconfig3349
-rw-r--r--arch/arm/mach-exynos/Kconfig3
-rw-r--r--arch/arm/mach-exynos/Kconfig.local25
-rw-r--r--arch/arm/mach-exynos/Makefile10
-rw-r--r--arch/arm/mach-exynos/include/mach/gpio-rev00-p4notepq.h7
-rw-r--r--arch/arm/mach-exynos/include/mach/mdm2.h5
-rw-r--r--arch/arm/mach-exynos/mach-p4notepq.c22
-rw-r--r--arch/arm/mach-exynos/mdm2.c7
-rw-r--r--arch/arm/mach-exynos/mdm_common.c224
-rw-r--r--arch/arm/mach-exynos/mdm_device.c15
-rw-r--r--arch/arm/mach-exynos/mdm_private.h18
-rw-r--r--arch/arm/mach-exynos/midas-lcd.c14
-rw-r--r--arch/arm/mach-exynos/p4-input.c17
-rw-r--r--arch/arm/mach-exynos/p4note-gpio.c14
-rw-r--r--arch/arm/mach-exynos/px-switch.c10
-rw-r--r--arch/arm/mach-exynos/setup-usb-phy.c11
-rw-r--r--arch/arm/plat-samsung/pm.c8
-rw-r--r--drivers/accessory/30pin_con.c148
-rw-r--r--drivers/accessory/sec_keyboard.c46
-rw-r--r--drivers/accessory/sec_keyboard.h5
-rw-r--r--drivers/irda/ir_remote_con_mc96.c189
-rw-r--r--drivers/misc/sec_jack.c2
-rw-r--r--drivers/power/max17042_fuelgauge_px.c49
-rw-r--r--drivers/power/sec_battery_px.c3
-rw-r--r--drivers/sensor/lsm330dlc_accel.c30
-rw-r--r--drivers/sensor/sensors_core.c1
-rw-r--r--drivers/video/samsung/s3cfb_s6c1372.c2
-rw-r--r--include/linux/30pin_con.h11
-rw-r--r--include/linux/battery/sec_battery.h14
-rw-r--r--include/linux/mdm_hsic_pm.h6
-rw-r--r--include/linux/msm_charm.h4
-rw-r--r--include/linux/power/max17042_fuelgauge_px.h2
-rwxr-xr-xinclude/linux/power/smb347_charger.h3
-rw-r--r--include/linux/power_supply.h1
34 files changed, 4174 insertions, 101 deletions
diff --git a/arch/arm/configs/cyanogenmod_i925_defconfig b/arch/arm/configs/cyanogenmod_i925_defconfig
new file mode 100644
index 00000000000..c0cd6f5cc4c
--- /dev/null
+++ b/arch/arm/configs/cyanogenmod_i925_defconfig
@@ -0,0 +1,3349 @@
+#
+# Automatically generated make config: don't edit
+# Linux/arm 3.0.64 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_NO_IOPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_LOCKBREAK=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-CM"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=20
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_DEBUG=y
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_DEVICE is not set
+# CONFIG_CPUSETS is not set
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+# CONFIG_CGROUP_MEM_RES_CTLR is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+# CONFIG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+# CONFIG_CC_CHECK_WARNING_STRICTLY is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_PANIC_TIMEOUT=1
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_PERF_COUNTERS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_SLUB_DEBUG is not set
+CONFIG_COMPAT_BRK=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_TRACEPOINTS=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_IOSCHED_ROW=y
+CONFIG_IOSCHED_SIO=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_NUC93X is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+CONFIG_ARCH_EXYNOS=y
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+CONFIG_PLAT_SAMSUNG=y
+
+#
+# Base Address for SFR mapping
+#
+CONFIG_S3C_ADDR_BASE=0xFC000000
+
+#
+# Boot options
+#
+# CONFIG_S3C_BOOT_ERROR_RESET is not set
+CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
+CONFIG_S3C_LOWLEVEL_UART_PORT=2
+CONFIG_SAMSUNG_CLKSRC=y
+CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
+CONFIG_SAMSUNG_IRQ_UART=y
+CONFIG_SAMSUNG_GPIOLIB_4BIT=y
+CONFIG_S3C_GPIO_CFG_S3C24XX=y
+CONFIG_S3C_GPIO_CFG_S3C64XX=y
+CONFIG_S3C_GPIO_PULL_UPDOWN=y
+CONFIG_S5P_GPIO_DRVSTR=y
+CONFIG_SAMSUNG_GPIO_EXTRA=0
+CONFIG_S3C_GPIO_SPACE=0
+CONFIG_S3C_GPIO_TRACK=y
+CONFIG_S3C_ADC=y
+CONFIG_S3C_DEV_ADC=y
+# CONFIG_S3C_DEV_ADC1 is not set
+CONFIG_S3C_DEV_HSMMC2=y
+CONFIG_S3C_DEV_HSMMC3=y
+CONFIG_EXYNOS4_DEV_MSHC=y
+CONFIG_S3C_DEV_I2C1=y
+CONFIG_S3C_DEV_I2C3=y
+CONFIG_S3C_DEV_I2C4=y
+CONFIG_S3C_DEV_I2C5=y
+CONFIG_S3C_DEV_I2C6=y
+CONFIG_S3C_DEV_I2C7=y
+CONFIG_S3C_DEV_WDT=y
+CONFIG_S3C_DEV_RTC=y
+CONFIG_SAMSUNG_DEV_ADC=y
+CONFIG_S3C64XX_DEV_SPI=y
+CONFIG_SAMSUNG_DEV_PWM=y
+CONFIG_SAMSUNG_DEV_BACKLIGHT=y
+CONFIG_S3C24XX_PWM=y
+CONFIG_S3C_PL330_DMA=y
+# CONFIG_DMA_M2M_TEST is not set
+
+#
+# Power management
+#
+# CONFIG_SAMSUNG_PM_DEBUG is not set
+# CONFIG_SAMSUNG_PM_CHECK is not set
+
+#
+# Power Domain
+#
+CONFIG_SAMSUNG_PD=y
+CONFIG_PLAT_S5P=y
+CONFIG_S5P_GPIO_INT=y
+CONFIG_S5P_SYSTEM_MMU=y
+CONFIG_S5P_SYSTEM_MMU_REFCOUNT=y
+# CONFIG_S5P_SYSTEM_MMU_DEBUG is not set
+CONFIG_IOVMM=y
+CONFIG_IOMMU_EXYNOS4_API=y
+CONFIG_S3C_DEV_FIMC=y
+CONFIG_S5P_DEV_MFC=y
+CONFIG_S5P_DEV_TVOUT=y
+CONFIG_S5P_DEV_FIMG2D=y
+CONFIG_S5P_DEV_CSIS=y
+CONFIG_S5P_DEV_JPEG=y
+CONFIG_S5P_DEV_USB_EHCI=y
+CONFIG_S5P_DEV_FIMD_S5P=y
+CONFIG_S5P_DEV_USBGADGET=y
+CONFIG_S5P_MEM_CMA=y
+# CONFIG_S5P_BTS is not set
+# CONFIG_S3C_DEV_TSI is not set
+CONFIG_ARCH_EXYNOS4=y
+# CONFIG_ARCH_EXYNOS5 is not set
+CONFIG_CPU_EXYNOS4212=y
+CONFIG_CPU_EXYNOS4412=y
+# CONFIG_S5PV310_HI_ARMCLK_THAN_1_2GHZ is not set
+CONFIG_EXYNOS_CONTENT_PATH_PROTECTION=y
+CONFIG_EXYNOS4_PM=y
+CONFIG_EXYNOS4_CPUIDLE=y
+CONFIG_EXYNOS4_LOWPWR_IDLE=y
+CONFIG_EXYNOS_MCT=y
+CONFIG_EXYNOS_DEV_PD=y
+CONFIG_EXYNOS4_DEV_FIMC_LITE=y
+CONFIG_EXYNOS4_DEV_FIMC_IS=y
+CONFIG_EXYNOS4_SETUP_I2C1=y
+CONFIG_EXYNOS4_SETUP_I2C3=y
+CONFIG_EXYNOS4_SETUP_I2C4=y
+CONFIG_EXYNOS4_SETUP_I2C5=y
+CONFIG_EXYNOS4_SETUP_I2C6=y
+CONFIG_EXYNOS4_SETUP_I2C7=y
+CONFIG_EXYNOS4_SETUP_MFC=y
+CONFIG_EXYNOS4_SETUP_SDHCI=y
+CONFIG_EXYNOS4_SETUP_SDHCI_GPIO=y
+CONFIG_EXYNOS4_SETUP_MSHCI=y
+CONFIG_EXYNOS4_SETUP_MSHCI_GPIO=y
+CONFIG_EXYNOS4_SETUP_FIMC0=y
+CONFIG_EXYNOS4_SETUP_FIMC1=y
+CONFIG_EXYNOS4_SETUP_FIMC2=y
+CONFIG_EXYNOS4_SETUP_FIMC3=y
+CONFIG_EXYNOS4_SETUP_FIMC_IS=y
+CONFIG_EXYNOS4_SETUP_USB_PHY=y
+CONFIG_EXYNOS4_SETUP_CSIS=y
+CONFIG_EXYNOS4_SETUP_FB_S5P=y
+CONFIG_EXYNOS4_SETUP_TVOUT=y
+CONFIG_EXYNOS4_SETUP_THERMAL=y
+# CONFIG_EXYNOS_SETUP_THERMAL is not set
+CONFIG_EXYNOS4_SETUP_JPEG=y
+CONFIG_EXYNOS4_ENABLE_CLOCK_DOWN=y
+CONFIG_EXYNOS4_CPUFREQ=y
+# CONFIG_EXYNOS4X12_1500MHZ_SUPPORT is not set
+CONFIG_EXYNOS4X12_1400MHZ_SUPPORT=y
+# CONFIG_EXYNOS4X12_1200MHZ_SUPPORT is not set
+# CONFIG_EXYNOS4X12_1000MHZ_SUPPORT is not set
+CONFIG_MIDAS_COMMON=y
+
+#
+# Support dynamic CPU Hotplug
+#
+# CONFIG_EXYNOS_PM_HOTPLUG is not set
+
+#
+# Busfreq Model
+#
+# CONFIG_BUSFREQ is not set
+CONFIG_BUSFREQ_OPP=y
+# CONFIG_DISPFREQ_OPP is not set
+# CONFIG_DEVFREQ_BUS is not set
+# CONFIG_BUSFREQ_QOS_NONE is not set
+# CONFIG_BUSFREQ_QOS_1024X600 is not set
+# CONFIG_BUSFREQ_QOS_1280X720 is not set
+CONFIG_BUSFREQ_QOS_1280X800=y
+# CONFIG_BUSFREQ_DEBUG is not set
+# CONFIG_BUSFREQ_L2_160M is not set
+CONFIG_SEC_THERMISTOR=y
+# CONFIG_SEC_SUBTHERMISTOR is not set
+# CONFIG_EXYNOS_SYSREG_PM is not set
+CONFIG_ANDROID_WIP=y
+# CONFIG_COMPACTION_RETRY is not set
+
+#
+# EXYNOS4 Machines
+#
+# CONFIG_MACH_SMDKC210 is not set
+# CONFIG_MACH_SMDKV310 is not set
+# CONFIG_MACH_ARMLEX4210 is not set
+# CONFIG_MACH_UNIVERSAL_C210 is not set
+# CONFIG_MACH_NURI is not set
+# CONFIG_MACH_U1_NA_SPR is not set
+# CONFIG_MACH_U1_NA_USCC is not set
+# CONFIG_MACH_U1 is not set
+# CONFIG_TARGET_LOCALE_NAATT_TEMP is not set
+# CONFIG_MACH_PX is not set
+# CONFIG_TARGET_LOCALE_EUR is not set
+# CONFIG_TARGET_LOCALE_LTN is not set
+# CONFIG_TARGET_LOCALE_KOR is not set
+# CONFIG_TARGET_LOCALE_P2EUR_TEMP is not set
+# CONFIG_TARGET_LOCALE_P2TMO_TEMP is not set
+# CONFIG_TARGET_LOCALE_NA is not set
+# CONFIG_TARGET_LOCALE_EUR_U1_NFC is not set
+# CONFIG_TARGET_LOCALE_NTT is not set
+# CONFIG_TARGET_LOCALE_JPN is not set
+# CONFIG_TARGET_LOCALE_CHN is not set
+CONFIG_TARGET_LOCALE_USA=y
+CONFIG_MACH_P4NOTELTE_USA_VZW=y
+# CONFIG_MACH_P4NOTELTE_USA_ATT is not set
+# CONFIG_MACH_P4NOTELTE_USA_TMO is not set
+# CONFIG_MACH_P4NOTELTE_USA_SPR is not set
+# CONFIG_MACH_P4NOTELTE_USA_USCC is not set
+# CONFIG_MACH_P4NOTELTE_USA_ANY is not set
+# CONFIG_MACH_SMDK4X12 is not set
+CONFIG_MACH_MIDAS=y
+# CONFIG_MACH_M0 is not set
+# CONFIG_MACH_C1 is not set
+# CONFIG_MACH_M3 is not set
+CONFIG_MACH_P4NOTE=y
+# CONFIG_MACH_GC1 is not set
+# CONFIG_MACH_T0 is not set
+# CONFIG_MACH_KONA is not set
+# CONFIG_MACH_IRON is not set
+# CONFIG_MACH_GRANDE is not set
+# CONFIG_MACH_BAFFIN is not set
+# CONFIG_MIDAS_COMMON_BD is not set
+CONFIG_P4NOTE_00_BD=y
+# CONFIG_GC1_00_BD is not set
+# CONFIG_T0_00_BD is not set
+# CONFIG_KONA_00_BD is not set
+# CONFIG_T0_04_BD is not set
+# CONFIG_MACH_T0_GODIVA_LTE is not set
+# CONFIG_MACH_T0_VOLTE_Q is not set
+# CONFIG_IRON_BD is not set
+# CONFIG_GRANDE_BD is not set
+# CONFIG_WRITEBACK_ENABLED is not set
+# CONFIG_EXYNOS_SOUND_PLATFORM_DATA is not set
+# CONFIG_JACK_FET is not set
+# CONFIG_JACK_GROUND_DET is not set
+CONFIG_SAMSUNG_ANALOG_UART_SWITCH=2
+# CONFIG_EXYNOS5_DEV_BTS is not set
+
+#
+# MMC/SD slot setup
+#
+
+#
+# SELECT SYNOPSYS CONTROLLER INTERFACE DRIVER
+#
+CONFIG_EXYNOS4_MSHC_MPLL_40MHZ=y
+# CONFIG_EXYNOS4_MSHC_VPLL_46MHZ is not set
+# CONFIG_EXYNOS4_MSHC_EPLL_45MHZ is not set
+# CONFIG_EXYNOS4_MSHC_SUPPORT_PQPRIME_EPLL is not set
+
+#
+# Use 8-bit bus width
+#
+CONFIG_EXYNOS4_MSHC_8BIT=y
+# CONFIG_EXYNOS4_SDHCI_CH2_8BIT is not set
+
+#
+# Use DDR
+#
+CONFIG_EXYNOS4_MSHC_DDR=y
+
+#
+# Miscellaneous drivers
+#
+# CONFIG_WAKEUP_ASSIST is not set
+# CONFIG_S3C64XX_DEV_SPI0 is not set
+
+#
+# Debugging Feature
+#
+CONFIG_SEC_DEBUG=y
+CONFIG_SEC_DEBUG_SCHED_LOG=y
+# CONFIG_SEC_DEBUG_SOFTIRQ_LOG is not set
+CONFIG_SEC_DEBUG_SCHED_LOG_NONCACHED=y
+# CONFIG_SEC_DEBUG_SEMAPHORE_LOG is not set
+CONFIG_SEC_DEBUG_USER=y
+# CONFIG_SEC_DEBUG_PM_TEMP is not set
+# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
+CONFIG_SEC_DEBUG_AUXILIARY_LOG=y
+# CONFIG_SEC_DEBUG_FUPLOAD_DUMP_MORE is not set
+# CONFIG_SEC_DEBUG_UMP_ALLOC_FAIL is not set
+# CONFIG_SEC_DEBUG_LIST_CORRUPTION is not set
+CONFIG_SEC_WATCHDOG_RESET=y
+CONFIG_SEC_WATCHDOG_PET_TIME=0
+# CONFIG_SEC_LOG is not set
+# CONFIG_SEC_LOG_NONCACHED is not set
+CONFIG_SEC_LOG_LAST_KMSG=y
+# CONFIG_EHCI_IRQ_DISTRIBUTION is not set
+
+#
+# Connectivity Feature
+#
+# CONFIG_GPS_BRCM_475X is not set
+# CONFIG_BT_CSR8811 is not set
+# CONFIG_BT_BCM4330 is not set
+CONFIG_BT_BCM4334=y
+# CONFIG_BT_BCM43241 is not set
+CONFIG_BT_MGMT=y
+
+#
+# Qualcomm Modem Feature
+#
+CONFIG_QC_MODEM=y
+CONFIG_MSM_SUBSYSTEM_RESTART=y
+CONFIG_QC_MODEM_MDM9X15=y
+CONFIG_MDM_HSIC_PM=y
+# CONFIG_EMI_ERROR_RECOVERY is not set
+CONFIG_SIM_DETECT=y
+CONFIG_QC_MODEM_M3=y
+CONFIG_USB_CDFS_SUPPORT=y
+CONFIG_SAMSUNG_PRODUCT_SHIP=y
+# CONFIG_CORESIGHT_ETM is not set
+CONFIG_CPU_FREQ_TETHERING=y
+# CONFIG_MACH_KONA_SENSOR is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_TRUSTZONE=y
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_SWP_EMULATE=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_CACHE_L2X0=y
+CONFIG_CACHE_PL310=y
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_ARM_PLD_SIZE=32
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_ARM_ERRATA_430973 is not set
+# CONFIG_ARM_ERRATA_458693 is not set
+# CONFIG_ARM_ERRATA_460075 is not set
+# CONFIG_ARM_ERRATA_742230 is not set
+# CONFIG_ARM_ERRATA_742231 is not set
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_ARM_ERRATA_720789 is not set
+# CONFIG_ARM_ERRATA_720791 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+CONFIG_ARM_ERRATA_743622=y
+CONFIG_ARM_ERRATA_751472=y
+# CONFIG_ARM_ERRATA_753970 is not set
+CONFIG_ARM_ERRATA_754322=y
+# CONFIG_ARM_ERRATA_754327 is not set
+CONFIG_ARM_ERRATA_761320=y
+# CONFIG_ARM_ERRATA_761171 is not set
+# CONFIG_ARM_ERRATA_762974 is not set
+# CONFIG_ARM_ERRATA_763722 is not set
+CONFIG_ARM_GIC=y
+CONFIG_PL330=y
+# CONFIG_FIQ_DEBUGGER is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+CONFIG_ARM_ERRATA_764369=y
+# CONFIG_PL310_ERRATA_769419 is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_NR_CPUS=4
+CONFIG_HOTPLUG_CPU=y
+CONFIG_LOCAL_TIMERS=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_HZ=200
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_ARCH_SKIP_SECONDARY_CALIBRATE=y
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_CLEANCACHE is not set
+CONFIG_CMA=y
+# CONFIG_CMA_DEVELOPEMENT is not set
+CONFIG_CMA_BEST_FIT=y
+# CONFIG_DEBUG_VMALLOC is not set
+# CONFIG_LOWMEM_CHECK is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART=y
+CONFIG_VMWARE_MVP=y
+# CONFIG_VMWARE_MVP_DEBUG is not set
+
+#
+# Boot options
+#
+# CONFIG_USE_OF is not set
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_CMDLINE="console=ttySAC2,115200"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_AUTO_ZRELADDR is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ADAPTIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PEGASUSQ=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_GOV_ONDEMAND_FLEXRATE is not set
+# CONFIG_CPU_FREQ_GOV_INTERACTIVE is not set
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_GOV_ADAPTIVE is not set
+CONFIG_CPU_FREQ_GOV_PEGASUSQ=y
+# CONFIG_CPU_FREQ_GOV_SLP is not set
+# CONFIG_CPU_FREQ_DVFS_MONITOR is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=y
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_FAST_BOOT is not set
+CONFIG_HAS_WAKELOCK=y
+CONFIG_HAS_EARLYSUSPEND=y
+CONFIG_WAKELOCK=y
+CONFIG_WAKELOCK_STAT=y
+CONFIG_USER_WAKELOCK=y
+CONFIG_EARLYSUSPEND=y
+# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set
+# CONFIG_CONSOLE_EARLYSUSPEND is not set
+CONFIG_FB_EARLYSUSPEND=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_HAS_OPP=y
+CONFIG_PM_OPP=y
+CONFIG_PM_RUNTIME_CLK=y
+# CONFIG_SUSPEND_TIME is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=y
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+CONFIG_INET_ESP=y
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=y
+CONFIG_INET6_ESP=y
+CONFIG_INET6_IPCOMP=y
+CONFIG_IPV6_MIP6=y
+CONFIG_INET6_XFRM_TUNNEL=y
+CONFIG_INET6_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_BEET=y
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+# CONFIG_IPV6_SUBTREES is not set
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+CONFIG_NET_ACTIVITY_STATS=y
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=y
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NETFILTER_NETLINK_LOG=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_CONNTRACK_H323=y
+CONFIG_NF_CONNTRACK_IRC=y
+CONFIG_NF_CONNTRACK_BROADCAST=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
+# CONFIG_NF_CONNTRACK_SNMP is not set
+CONFIG_NF_CONNTRACK_PPTP=y
+CONFIG_NF_CONNTRACK_SANE=y
+# CONFIG_NF_CONNTRACK_SIP is not set
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_NF_CT_NETLINK=y
+CONFIG_NETFILTER_TPROXY=y
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=y
+CONFIG_NETFILTER_XT_CONNMARK=y
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+# CONFIG_NETFILTER_XT_TARGET_CT is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+# CONFIG_NETFILTER_XT_TARGET_HL is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_TARGET_NFLOG=y
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+CONFIG_NETFILTER_XT_TARGET_TPROXY=y
+CONFIG_NETFILTER_XT_TARGET_TRACE=y
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_HELPER=y
+CONFIG_NETFILTER_XT_MATCH_HL=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
+CONFIG_NETFILTER_XT_MATCH_LIMIT=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+CONFIG_NETFILTER_XT_MATCH_POLICY=y
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+CONFIG_NETFILTER_XT_MATCH_TIME=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_IP_NF_QUEUE is not set
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_AH=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_TARGET_REJECT_SKERR=y
+CONFIG_IP_NF_TARGET_LOG=y
+# CONFIG_IP_NF_TARGET_ULOG is not set
+CONFIG_NF_NAT=y
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_NF_NAT_PROTO_DCCP=y
+CONFIG_NF_NAT_PROTO_GRE=y
+CONFIG_NF_NAT_PROTO_UDPLITE=y
+CONFIG_NF_NAT_PROTO_SCTP=y
+CONFIG_NF_NAT_FTP=y
+CONFIG_NF_NAT_IRC=y
+CONFIG_NF_NAT_TFTP=y
+CONFIG_NF_NAT_AMANDA=y
+CONFIG_NF_NAT_PPTP=y
+CONFIG_NF_NAT_H323=y
+# CONFIG_NF_NAT_SIP is not set
+CONFIG_IP_NF_MANGLE=y
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
+# CONFIG_IP_NF_TARGET_ECN is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+CONFIG_IP_NF_RAW=y
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=y
+CONFIG_NF_CONNTRACK_IPV6=y
+# CONFIG_IP6_NF_QUEUE is not set
+CONFIG_IP6_NF_IPTABLES=y
+# CONFIG_IP6_NF_MATCH_AH is not set
+# CONFIG_IP6_NF_MATCH_EUI64 is not set
+# CONFIG_IP6_NF_MATCH_FRAG is not set
+# CONFIG_IP6_NF_MATCH_OPTS is not set
+# CONFIG_IP6_NF_MATCH_HL is not set
+# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
+# CONFIG_IP6_NF_MATCH_MH is not set
+# CONFIG_IP6_NF_MATCH_RT is not set
+# CONFIG_IP6_NF_TARGET_HL is not set
+CONFIG_IP6_NF_TARGET_LOG=y
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=y
+CONFIG_IP6_NF_TARGET_REJECT_SKERR=y
+CONFIG_IP6_NF_MANGLE=y
+CONFIG_IP6_NF_RAW=y
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=y
+# CONFIG_IEEE802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+# CONFIG_NET_SCH_CBQ is not set
+CONFIG_NET_SCH_HTB=y
+# CONFIG_NET_SCH_HFSC is not set
+# CONFIG_NET_SCH_PRIO is not set
+# CONFIG_NET_SCH_MULTIQ is not set
+# CONFIG_NET_SCH_RED is not set
+# CONFIG_NET_SCH_SFB is not set
+# CONFIG_NET_SCH_SFQ is not set
+# CONFIG_NET_SCH_TEQL is not set
+# CONFIG_NET_SCH_TBF is not set
+# CONFIG_NET_SCH_GRED is not set
+# CONFIG_NET_SCH_DSMARK is not set
+# CONFIG_NET_SCH_NETEM is not set
+# CONFIG_NET_SCH_DRR is not set
+# CONFIG_NET_SCH_MQPRIO is not set
+# CONFIG_NET_SCH_CHOKE is not set
+# CONFIG_NET_SCH_QFQ is not set
+CONFIG_NET_SCH_INGRESS=y
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+# CONFIG_NET_CLS_BASIC is not set
+# CONFIG_NET_CLS_TCINDEX is not set
+# CONFIG_NET_CLS_ROUTE4 is not set
+# CONFIG_NET_CLS_FW is not set
+CONFIG_NET_CLS_U32=y
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+# CONFIG_NET_CLS_RSVP is not set
+# CONFIG_NET_CLS_RSVP6 is not set
+# CONFIG_NET_CLS_FLOW is not set
+# CONFIG_NET_CLS_CGROUP is not set
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+# CONFIG_NET_EMATCH_CMP is not set
+# CONFIG_NET_EMATCH_NBYTE is not set
+CONFIG_NET_EMATCH_U32=y
+# CONFIG_NET_EMATCH_META is not set
+# CONFIG_NET_EMATCH_TEXT is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=y
+CONFIG_NET_ACT_GACT=y
+# CONFIG_GACT_PROB is not set
+CONFIG_NET_ACT_MIRRED=y
+# CONFIG_NET_ACT_IPT is not set
+# CONFIG_NET_ACT_NAT is not set
+# CONFIG_NET_ACT_PEDIT is not set
+# CONFIG_NET_ACT_SIMP is not set
+# CONFIG_NET_ACT_SKBEDIT is not set
+# CONFIG_NET_ACT_CSUM is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+CONFIG_BT_HIDP=y
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_ATH3K is not set
+# CONFIG_BT_HCIUART_LL is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+
+#
+# Bluetooth device drivers
+#
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_AF_RXRPC is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+# CONFIG_LIB80211 is not set
+# CONFIG_CFG80211_ALLOW_RECONNECT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=y
+CONFIG_RFKILL_PM=y
+# CONFIG_RFKILL_INPUT is not set
+# CONFIG_RFKILL_REGULATOR is not set
+# CONFIG_RFKILL_GPIO is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_DMA_SHARED_BUFFER is not set
+CONFIG_SYNC=y
+CONFIG_SW_SYNC=y
+CONFIG_SW_SYNC_USER=y
+# CONFIG_DMA_CMA is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+
+#
+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
+#
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_INTEL_MID_PTI is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_SENSORS_AK8975 is not set
+# CONFIG_SENSORS_AK8963 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+CONFIG_UID_STAT=y
+# CONFIG_BMP085 is not set
+# CONFIG_WL127X_RFKILL is not set
+# CONFIG_APANIC is not set
+# CONFIG_JACK_MON is not set
+# CONFIG_UART_SELECT is not set
+# CONFIG_SWITCH_DUAL_MODEM is not set
+# CONFIG_SWITCH_USB_PATH_AUTO is not set
+# CONFIG_WIMAX_CMC is not set
+CONFIG_SEC_DEV_JACK=y
+# CONFIG_MUIC_DET_JACK is not set
+# CONFIG_FM34_WE395 is not set
+# CONFIG_AUDIENCE_ES305 is not set
+# CONFIG_2MIC_FM34_WE395 is not set
+# CONFIG_USBHUB_USB3503 is not set
+# CONFIG_USBHUB_USB3503_OTG_CONN is not set
+# CONFIG_USBHUB_USB3803 is not set
+# CONFIG_PN544 is not set
+CONFIG_STMPE811_ADC=y
+# CONFIG_MPU_SENSORS_MPU3050 is not set
+# CONFIG_MPU_SENSORS_MPU6050 is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_IWMC3200TOP is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+# CONFIG_SAMSUNG_C2C is not set
+# CONFIG_SEC_MODEM is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+CONFIG_CHR_DEV_SG=y
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=y
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_RAID is not set
+# CONFIG_DM_ZERO is not set
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_UEVENT is not set
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_TARGET_CORE is not set
+CONFIG_NETDEVICES=y
+# CONFIG_IFB is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=y
+# CONFIG_VETH is not set
+CONFIG_MII=y
+# CONFIG_PHYLIB is not set
+# CONFIG_NET_ETHERNET is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_STMMAC_ETH is not set
+CONFIG_NETDEV_10000=y
+CONFIG_WLAN=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+CONFIG_WIFI_CONTROL_FUNC=y
+# CONFIG_ATH_COMMON is not set
+CONFIG_BCMDHD=m
+# CONFIG_BCM4330 is not set
+CONFIG_BCM4334=y
+# CONFIG_BCM43241 is not set
+CONFIG_BCMDHD_FW_PATH="/system/etc/firmware/fw_bcmdhd.bin"
+CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/bcmdhd.cal"
+CONFIG_BROADCOM_WIFI_RESERVED_MEM=y
+CONFIG_WLAN_REGION_CODE=100
+# CONFIG_HOSTAP is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_LGUIWLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_CDCETHER=y
+# CONFIG_USB_NET_CDC_EEM is not set
+CONFIG_USB_NET_CDC_NCM=y
+# CONFIG_USB_NET_DM9601 is not set
+# CONFIG_USB_NET_SMSC75XX is not set
+# CONFIG_USB_NET_SMSC95XX is not set
+# CONFIG_USB_NET_GL620A is not set
+CONFIG_USB_NET_NET1080=y
+# CONFIG_USB_NET_PLUSB is not set
+# CONFIG_USB_NET_MCS7830 is not set
+# CONFIG_USB_NET_RNDIS_HOST is not set
+CONFIG_USB_NET_CDC_SUBSET=y
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+CONFIG_USB_NET_ZAURUS=y
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_CDC_PHONET is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+CONFIG_MSM_RMNET_USB=y
+# CONFIG_WAN is not set
+
+#
+# CAIF transport drivers
+#
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+# CONFIG_PPP_ASYNC is not set
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_MPPE=y
+# CONFIG_PPPOE is not set
+CONFIG_PPPOLAC=y
+CONFIG_PPPOPNS=y
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_SECBRIDGE is not set
+CONFIG_INPUT_KEYRESET=y
+# CONFIG_INPUT_FBSUSPEND is not set
+# CONFIG_INPUT_MPU6050 is not set
+# CONFIG_INPUT_MPU6050_POLLING is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CYPRESS_TOUCH is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_MELFAS_GC is not set
+# CONFIG_TOUCHSCREEN_MELFAS is not set
+# CONFIG_TOUCHSCREEN_MELFAS_MMS is not set
+# CONFIG_TOUCHSCREEN_MMS152 is not set
+# CONFIG_TOUCHSCREEN_MELFAS_NOTE is not set
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT224_U1 is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT224_GRANDE is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT224S_GRANDE is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT224_GC is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT1536E is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT1664S=y
+# CONFIG_TOUCHSCREEN_ATMEL_MXT540E is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT224 is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_EXYNOS4 is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_MELFAS_TOUCHKEY is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_ZINITIX is not set
+# CONFIG_TOUCHSCREEN_MXT1386 is not set
+# CONFIG_TOUCHSCREEN_MXT768E is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_S7301=y
+# CONFIG_TOUCHSCREEN_SYNAPTICS_S7301_KEYS is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_S7301_WORKAROUND is not set
+# CONFIG_TOUCHSCREEN_CYPRESS_TMA46X is not set
+CONFIG_SEC_TOUCHSCREEN_DVFS_LOCK=y
+# CONFIG_SEC_TOUCHSCREEN_SURFACE_TOUCH is not set
+# CONFIG_KEYPAD_MELFAS_TOUCH is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXTS is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT540S is not set
+CONFIG_INPUT_WACOM=y
+CONFIG_EPEN_WACOM_G5SP=y
+# CONFIG_EPEN_WACOM_G9PM is not set
+# CONFIG_EPEN_WACOM_G9PL is not set
+# CONFIG_RMI4_BUS is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_SENSORS_BH1721FVC is not set
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+CONFIG_INPUT_KEYCHORD=y
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_GPIO=y
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_OPTICAL_GP2A is not set
+# CONFIG_OPTICAL_WAKE_ENABLE is not set
+# CONFIG_INPUT_CMA3000 is not set
+# CONFIG_INPUT_FLIP is not set
+# CONFIG_INPUT_KR3DH is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+# CONFIG_VT_CONSOLE is not set
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_CONSOLE is not set
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_UARTS_4=y
+CONFIG_SERIAL_SAMSUNG_UARTS=4
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE_SWITCH=y
+CONFIG_SERIAL_S5PV210=y
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX3107 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_CSR_GSD4T_CDMA is not set
+
+#
+# Diag Support
+#
+CONFIG_DIAG_CHAR=y
+
+#
+# DIAG traffic over USB
+#
+CONFIG_DIAG_OVER_USB=y
+
+#
+# SDIO support for DIAG
+#
+
+#
+# HSIC support for DIAG
+#
+CONFIG_DIAG_HSIC_PIPE=y
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+# CONFIG_RAMOOPS is not set
+CONFIG_S3C_MEM=y
+CONFIG_EXYNOS_MEM=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE is not set
+CONFIG_I2C_GPIO=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_HAVE_S3C2410_I2C=y
+CONFIG_I2C_S3C2410=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_GPIO=y
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+CONFIG_SPI_S3C64XX=y
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_BASIC_MMIO is not set
+# CONFIG_GPIO_IT8761E is not set
+CONFIG_GPIO_EXYNOS4=y
+CONFIG_GPIO_PLAT_SAMSUNG=y
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_WM8994 is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_74X164 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_BATTERY_MAX17043_FUELGAUGE is not set
+# CONFIG_BATTERY_MAX17042_FUELGAUGE is not set
+# CONFIG_BATTERY_MAX17047_FUELGAUGE is not set
+# CONFIG_BATTERY_SMB136_CHARGER is not set
+# CONFIG_BATTERY_SAMSUNG_P1X is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_BATTERY_S3C_ADC is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_BATTERY_SAMSUNG is not set
+# CONFIG_BATTERY_SEC_U1 is not set
+CONFIG_BATTERY_SEC_PX=y
+# CONFIG_CHARGER_MAX8922_U1 is not set
+# CONFIG_BATTERY_MAX17042_FUELGAUGE_U1 is not set
+CONFIG_BATTERY_MAX17042_FUELGAUGE_PX=y
+# CONFIG_SMB136_CHARGER is not set
+# CONFIG_SMB136_CHARGER_Q1 is not set
+# CONFIG_SMB328_CHARGER is not set
+CONFIG_SMB347_CHARGER=y
+# CONFIG_CHARGER_MANAGER is not set
+CONFIG_SAMSUNG_LPM_MODE=y
+# CONFIG_HWMON is not set
+CONFIG_THERMAL=y
+# CONFIG_CPU_THERMAL is not set
+# CONFIG_SENSORS_EXYNOS4_TMU is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_HAVE_S3C2410_WATCHDOG=y
+# CONFIG_S3C2410_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+# CONFIG_BCMA is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MAX8698 is not set
+CONFIG_MFD_MAX77686=y
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_S5M_CORE is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+CONFIG_MFD_WM8994=y
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13XXX is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_TPS65910 is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8952_GRANDE is not set
+CONFIG_REGULATOR_MAX77686=y
+CONFIG_REGULATOR_WM8994=y
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP8720 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+CONFIG_RC_MAP=y
+CONFIG_IR_NEC_DECODER=y
+CONFIG_IR_RC5_DECODER=y
+CONFIG_IR_RC6_DECODER=y
+CONFIG_IR_JVC_DECODER=y
+CONFIG_IR_SONY_DECODER=y
+CONFIG_IR_RC5_SZ_DECODER=y
+CONFIG_IR_LIRC_CODEC=y
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_RC_LOOPBACK is not set
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+CONFIG_MEDIA_TUNER_CUSTOMISE=y
+
+#
+# Customize TV tuners
+#
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+CONFIG_VIDEO_V4L2=y
+CONFIG_V4L2_MEM2MEM_DEV=y
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_MEMOPS=y
+CONFIG_VIDEOBUF2_CMA_PHYS=y
+# CONFIG_VIDEOBUF2_ION is not set
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_FIXED_MINOR_RANGES=y
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=y
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA7191 is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+# CONFIG_VIDEO_S5K3H2 is not set
+# CONFIG_VIDEO_S5K3H7 is not set
+# CONFIG_VIDEO_S5K4E5 is not set
+CONFIG_VIDEO_S5K6A3=y
+# CONFIG_S5K6A3_CSI_C is not set
+CONFIG_S5K6A3_CSI_D=y
+# CONFIG_VIDEO_M5MO is not set
+# CONFIG_VIDEO_M9MO is not set
+# CONFIG_VIDEO_S5K5BAFX is not set
+# CONFIG_VIDEO_S5K5CCGX_COMMON is not set
+# CONFIG_VIDEO_SR200PC20 is not set
+# CONFIG_VIDEO_SR200PC20M is not set
+CONFIG_VIDEO_ISX012=y
+# CONFIG_VIDEO_SLP_S5K4ECGX is not set
+# CONFIG_VIDEO_SLP_DB8131M is not set
+# CONFIG_VIDEO_S5K4EA is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_SLP_S5C73M3 is not set
+# CONFIG_VIDEO_SR130PC20 is not set
+CONFIG_VIDEO_IMPROVE_STREAMOFF=y
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_VIDEO_SAMSUNG_S5P_FIMC is not set
+# CONFIG_VIDEO_S5P_MIPI_CSIS is not set
+CONFIG_SAMSUNG_MFC_DRIVERS=y
+CONFIG_USE_LEGACY_MFC=y
+# CONFIG_USE_V4L2_MFC is not set
+CONFIG_V4L_USB_DRIVERS=y
+# CONFIG_USB_VIDEO_CLASS is not set
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+# CONFIG_USB_GSPCA is not set
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_HDPVR is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_ZR364XX is not set
+# CONFIG_USB_STKWEBCAM is not set
+# CONFIG_USB_S2255 is not set
+CONFIG_VIDEO_SAMSUNG=y
+CONFIG_VIDEO_SAMSUNG_V4L2=y
+CONFIG_VIDEO_FIMC=y
+CONFIG_VIDEO_FIMC_RANGE_NARROW=y
+# CONFIG_VIDEO_FIMC_RANGE_WIDE is not set
+# CONFIG_VIDEO_FIMC_DEBUG is not set
+CONFIG_VIDEO_FIMC_MIPI=y
+CONFIG_VIDEO_FIMC_MIPI_IRQ_DEBUG=y
+CONFIG_VIDEO_FIMC_DMA_AUTO=y
+# CONFIG_VIDEO_FIMC_FIFO is not set
+CONFIG_VIDEO_TVOUT=y
+# CONFIG_VIDEO_TVOUT_2CH_AUDIO is not set
+CONFIG_VIDEO_TVOUT_5_1CH_AUDIO=y
+# CONFIG_HDMI_CEC is not set
+CONFIG_HDMI_EARJACK_MUTE=y
+CONFIG_HDMI_HPD=y
+# CONFIG_HDMI_CONTROLLED_BY_EXT_IC is not set
+# CONFIG_HDMI_TX_STRENGTH is not set
+CONFIG_HDMI_SWITCH_HPD=y
+CONFIG_HDMI_14A_3D=y
+CONFIG_HDMI_PHY_32N=y
+CONFIG_TV_FB=y
+CONFIG_USER_ALLOC_TVOUT=y
+CONFIG_LSI_HDMI_AUDIO_CH_EVENT=y
+# CONFIG_TV_DEBUG is not set
+CONFIG_VIDEO_MFC5X=y
+CONFIG_VIDEO_MFC_MAX_INSTANCE=4
+# CONFIG_VIDEO_MFC5X_DEBUG is not set
+CONFIG_VIDEO_MALI400MP=y
+# CONFIG_MALI_DED_ONLY is not set
+# CONFIG_MALI_DED_MMU is not set
+CONFIG_MALI_OSMEM_ONLY=y
+# CONFIG_MALI_DED_OSMEM is not set
+# CONFIG_UMP_DED_ONLY is not set
+CONFIG_UMP_OSMEM_ONLY=y
+# CONFIG_UMP_VCM_ONLY is not set
+CONFIG_UMP_MEM_SIZE=1024
+# CONFIG_MALI_UMP_R2P4_LSI is not set
+# CONFIG_MALI_UMP_R3P1_LSI is not set
+# CONFIG_VIDEO_MALI400MP_UMP_DEBUG is not set
+# CONFIG_VIDEO_MALI400MP_STREAMLINE_PROFILING is not set
+CONFIG_VIDEO_MALI400MP_DVFS=y
+CONFIG_VIDEO_UMP=y
+CONFIG_VIDEO_FIMG2D=y
+# CONFIG_VIDEO_FIMG2D_DEBUG is not set
+CONFIG_VIDEO_FIMG2D4X=y
+# CONFIG_VIDEO_FIMG2D4X_DEBUG is not set
+CONFIG_VIDEO_JPEG_V2X=y
+CONFIG_JPEG_V2_1=y
+# CONFIG_JPEG_V2_2 is not set
+
+#
+# Reserved memory configurations
+#
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC0=12288
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC1=24640
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC2=0
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC3=0
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC_SECURE=47104
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC_NORMAL=10240
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG=0
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_TVOUT=0
+CONFIG_VIDEO_EXYNOS=y
+CONFIG_VIDEO_EXYNOS_MEMSIZE_FIMC_IS=12288
+CONFIG_EXYNOS_MEDIA_DEVICE=y
+CONFIG_VIDEO_EXYNOS_FIMC_LITE=y
+
+#
+# Reserved memory configurations
+#
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FLITE0=10240
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FLITE1=10240
+# CONFIG_VIDEO_EXYNOS_MIPI_CSIS is not set
+# CONFIG_VIDEO_EXYNOS_TV is not set
+# CONFIG_VIDEO_EXYNOS_ROTATOR is not set
+CONFIG_VIDEO_EXYNOS_FIMC_IS=y
+# CONFIG_VIDEO_EXYNOS_FIMC_IS_BAYER is not set
+CONFIG_MEDIA_EXYNOS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_VIDEO_MEM2MEM_TESTDEV is not set
+
+#
+# Mhl(sii9244) device support
+#
+CONFIG_SAMSUNG_MHL=y
+# CONFIG_SAMSUNG_USE_11PIN_CONNECTOR is not set
+# CONFIG_SAMSUNG_SMARTDOCK is not set
+CONFIG_SAMSUNG_WORKAROUND_HPD_GLANCE=y
+# CONFIG_SAMSUNG_MHL_UNPOWERED is not set
+# CONFIG_RADIO_ADAPTERS is not set
+# CONFIG_TDMB is not set
+# CONFIG_ISDBT is not set
+
+#
+# Graphics support
+#
+# CONFIG_DRM is not set
+CONFIG_ION=y
+CONFIG_ION_EXYNOS=y
+CONFIG_ION_EXYNOS_CONTIGHEAP_SIZE=81920
+# CONFIG_ION_EXYNOS_CONTIGHEAP_DEBUG is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_WMT_GE_ROPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_S5P=y
+# CONFIG_FB_S5P_SYSMMU is not set
+CONFIG_FB_S5P_SPLASH_SCREEN=y
+# CONFIG_FB_S5P_LCD_INIT is not set
+# CONFIG_FB_S5P_DEBUG is not set
+CONFIG_FB_S5P_VSYNC_THREAD=y
+CONFIG_FB_S5P_VSYNC_SYSFS=y
+# CONFIG_FB_S5P_TRACE_UNDERRUN is not set
+CONFIG_FB_S5P_DEFAULT_WINDOW=3
+CONFIG_FB_S5P_NR_BUFFERS=2
+# CONFIG_FB_S5P_VIRTUAL is not set
+CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD=8192
+CONFIG_FB_S5P_MDNIE=y
+CONFIG_FB_MDNIE_PWM=y
+# CONFIG_FB_S5P_MIPI_DSIM is not set
+CONFIG_FB_BGRA_ORDER=y
+# CONFIG_FB_RGBA_ORDER is not set
+CONFIG_FB_S5P_S6C1372=y
+# CONFIG_FB_S5P_LD9040 is not set
+# CONFIG_LCD_FREQ_SWITCH is not set
+CONFIG_FB_S5P_EXTDSP=y
+# CONFIG_FB_S5P_EXTDSP_DEBUG is not set
+CONFIG_FB_S5P_EXTDSP_NR_BUFFERS=3
+# CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_S5P_MIPI_DSI2 is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_L4F00242T03 is not set
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+# CONFIG_LCD_PLATFORM is not set
+# CONFIG_LCD_S6E63M0 is not set
+# CONFIG_LCD_MIPI_S6E63M0 is not set
+# CONFIG_LCD_MIPI_S6E8AB0 is not set
+# CONFIG_LCD_MIPI_TC358764 is not set
+# CONFIG_LCD_LD9040 is not set
+# CONFIG_LCD_WA101S is not set
+# CONFIG_LCD_LTE480WV is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+# CONFIG_BACKLIGHT_PWM is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LP855X is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=y
+# CONFIG_SOUND_OSS_CORE is not set
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_HWDEP=y
+CONFIG_SND_RAWMIDI=y
+CONFIG_SND_JACK=y
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_DEBUG=y
+# CONFIG_SND_DEBUG_VERBOSE is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+# CONFIG_SND_DRIVERS is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=y
+# CONFIG_SND_USB_UA101 is not set
+# CONFIG_SND_USB_CAIAQ is not set
+# CONFIG_SND_USB_6FIRE is not set
+CONFIG_SND_SOC=y
+# CONFIG_SND_SOC_CACHE_LZO is not set
+CONFIG_SND_SOC_SAMSUNG=y
+CONFIG_SND_SAMSUNG_I2S=y
+# CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811 is not set
+CONFIG_SND_SOC_SAMSUNG_LUNGO_WM1811=y
+# CONFIG_SND_SOC_SAMSUNG_USE_DMA_WRAPPER is not set
+CONFIG_SND_SOC_SAMSUNG_I2S_SEC=y
+# CONFIG_SND_SAMSUNG_NORMAL is not set
+# CONFIG_SND_SAMSUNG_LP is not set
+CONFIG_SND_SAMSUNG_ALP=y
+# CONFIG_SND_SAMSUNG_RP is not set
+CONFIG_AUDIO_SAMSUNG_MEMSIZE_SRP=1024
+# CONFIG_SND_SAMSUNG_RP_DEBUG is not set
+# CONFIG_SND_SAMSUNG_I2S_MASTER is not set
+# CONFIG_SND_DUOS_MODEM_SWITCH is not set
+# CONFIG_SND_USE_SUB_MIC is not set
+# CONFIG_SND_USE_THIRD_MIC is not set
+CONFIG_SND_USE_STEREO_SPEAKER=y
+CONFIG_SND_USE_LINEOUT_SWITCH=y
+# CONFIG_SND_USE_MUIC_SWITCH is not set
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_WM_HUBS=y
+CONFIG_SND_SOC_WM8994=y
+CONFIG_SND_SOC_USE_EXTERNAL_MIC_BIAS=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+CONFIG_UHID=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=y
+CONFIG_HID_ACRUX=y
+# CONFIG_HID_ACRUX_FF is not set
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+CONFIG_HID_PRODIKEYS=y
+CONFIG_HID_CYPRESS=y
+CONFIG_HID_DRAGONRISE=y
+# CONFIG_DRAGONRISE_FF is not set
+CONFIG_HID_EMS_FF=y
+CONFIG_HID_ELECOM=y
+CONFIG_HID_EZKEY=y
+CONFIG_HID_KEYTOUCH=y
+CONFIG_HID_KYE=y
+CONFIG_HID_UCLOGIC=y
+CONFIG_HID_WALTOP=y
+CONFIG_HID_GYRATION=y
+CONFIG_HID_TWINHAN=y
+CONFIG_HID_KENSINGTON=y
+CONFIG_HID_LCPOWER=y
+CONFIG_HID_LOGITECH=y
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWII_FF is not set
+CONFIG_HID_MAGICMOUSE=y
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+CONFIG_HID_MULTITOUCH=y
+CONFIG_HID_NTRIG=y
+CONFIG_HID_ORTEK=y
+CONFIG_HID_PANTHERLORD=y
+# CONFIG_PANTHERLORD_FF is not set
+CONFIG_HID_PETALYNX=y
+CONFIG_HID_PICOLCD=y
+# CONFIG_HID_PICOLCD_FB is not set
+# CONFIG_HID_PICOLCD_BACKLIGHT is not set
+# CONFIG_HID_PICOLCD_LCD is not set
+# CONFIG_HID_PICOLCD_LEDS is not set
+CONFIG_HID_QUANTA=y
+CONFIG_HID_ROCCAT=y
+CONFIG_HID_ROCCAT_COMMON=y
+CONFIG_HID_ROCCAT_ARVO=y
+CONFIG_HID_ROCCAT_KONE=y
+CONFIG_HID_ROCCAT_KONEPLUS=y
+CONFIG_HID_ROCCAT_KOVAPLUS=y
+CONFIG_HID_ROCCAT_PYRA=y
+CONFIG_HID_SAMSUNG=y
+CONFIG_HID_SONY=y
+CONFIG_HID_SUNPLUS=y
+CONFIG_HID_GREENASIA=y
+# CONFIG_GREENASIA_FF is not set
+CONFIG_HID_SMARTJOYPLUS=y
+# CONFIG_SMARTJOYPLUS_FF is not set
+CONFIG_HID_TOPSEED=y
+CONFIG_HID_THRUSTMASTER=y
+# CONFIG_THRUSTMASTER_FF is not set
+CONFIG_HID_WACOM=y
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=y
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
+CONFIG_USB_DEBUG=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_HOST_COMPLIANT_TEST is not set
+CONFIG_USB_HOST_NOTIFY=y
+CONFIG_USB_MON=y
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_S5P=y
+CONFIG_USB_S5P_HSIC0=y
+CONFIG_USB_S5P_HSIC1=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_S5P=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+# CONFIG_USB_S3C_OTG_HOST is not set
+# CONFIG_USB_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+CONFIG_USB_PRINTER=y
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=y
+# CONFIG_USB_SERIAL_CONSOLE is not set
+# CONFIG_USB_EZUSB is not set
+# CONFIG_USB_SERIAL_GENERIC is not set
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_CH341 is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+# CONFIG_USB_SERIAL_CP210X is not set
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+# CONFIG_USB_SERIAL_FTDI_SIO is not set
+# CONFIG_USB_SERIAL_FUNSOFT is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_GARMIN is not set
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_IUU is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_MOS7720 is not set
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_MOTOROLA is not set
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=y
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_QCAUX is not set
+CONFIG_USB_SERIAL_QUALCOMM=y
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
+# CONFIG_USB_SERIAL_HP4X is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_SYMBOL is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_XIRCOM is not set
+CONFIG_USB_SERIAL_WWAN=y
+# CONFIG_USB_SERIAL_OPTION is not set
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
+# CONFIG_USB_SERIAL_ZIO is not set
+# CONFIG_USB_SERIAL_SSU100 is not set
+CONFIG_USB_SERIAL_CSVT=y
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_QCOM_DIAG_BRIDGE=y
+# CONFIG_USB_QCOM_DIAG_BRIDGE_TEST is not set
+CONFIG_USB_QCOM_MDM_BRIDGE=y
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+CONFIG_USB_GADGET_S3C_OTGD=y
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+
+#
+# NOTE: S3C OTG device role enables the controller driver below
+#
+CONFIG_USB_S3C_OTGD=y
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_G_SLP is not set
+CONFIG_USB_G_ANDROID=y
+# CONFIG_USB_ANDROID_SAMSUNG_COMPOSITE is not set
+# CONFIG_USB_ANDROID_SAMSUNG_MTP is not set
+CONFIG_USB_DUN_SUPPORT=y
+# CONFIG_USB_ANDROID is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_OTG_WAKELOCK is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ULPI is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_CLKGATE=y
+CONFIG_MMC_EMBEDDED_SDIO=y
+# CONFIG_MMC_PARANOID_SD_INIT is not set
+CONFIG_MMC_NOT_USE_SANITIZE=y
+CONFIG_MMC_POLLING_WAIT_CMD23=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=16
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_SELECTIVE_PACKED_CMD_POLICY=y
+# CONFIG_MMC_CPRM is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_MSHCI=y
+# CONFIG_MMC_MSHCI_S3C_DMA_MAP is not set
+CONFIG_MMC_MSHCI_ASYNC_OPS=y
+# CONFIG_MMC_MSHCI_ENABLE_CACHE is not set
+CONFIG_MMC_SDHCI=y
+# CONFIG_MMC_SDHCI_PLTFM is not set
+CONFIG_MMC_SDHCI_S3C=y
+CONFIG_MMC_SDHCI_S3C_DMA=y
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_LEDS_SPFCW043 is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_MAX8997 is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_SWITCH is not set
+# CONFIG_LEDS_AAT1290A is not set
+# CONFIG_LEDS_TRIGGERS is not set
+
+#
+# LED Triggers
+#
+# CONFIG_NFC_DEVICES is not set
+CONFIG_SWITCH=y
+CONFIG_SWITCH_GPIO=y
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_ALARM=y
+CONFIG_RTC_INTF_ALARM_DEV=y
+# CONFIG_RTC_ALARM_BOOT is not set
+# CONFIG_RTC_POWER_OFF is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+CONFIG_RTC_DRV_MAX77686=y
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_HAVE_S3C_RTC=y
+CONFIG_RTC_DRV_S3C=y
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+CONFIG_STAGING=y
+# CONFIG_VIDEO_TM6000 is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_PRISM2_USB is not set
+# CONFIG_ECHO is not set
+# CONFIG_BRCMUTIL is not set
+# CONFIG_ASUS_OLED is not set
+# CONFIG_R8712U is not set
+# CONFIG_TRANZPORT is not set
+
+#
+# Android
+#
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_LOGGER=y
+CONFIG_ANDROID_RAM_CONSOLE=y
+CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION=y
+CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_DATA_SIZE=128
+CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_ECC_SIZE=16
+CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE=8
+CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_POLYNOMIAL=0x11d
+# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+CONFIG_ANDROID_TIMED_OUTPUT=y
+CONFIG_ANDROID_TIMED_GPIO=y
+CONFIG_ANDROID_LOW_MEMORY_KILLER=y
+# CONFIG_POHMELFS is not set
+# CONFIG_LINE6_USB is not set
+# CONFIG_USB_SERIAL_QUATECH2 is not set
+# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
+# CONFIG_VT6656 is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_LIRC_STAGING is not set
+# CONFIG_EASYCAP is not set
+# CONFIG_MACH_C110_WESTBRIDGE_AST_PNAND_HAL is not set
+CONFIG_MACH_NO_WESTBRIDGE=y
+# CONFIG_ATH6K_LEGACY is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_VIBETONZ=y
+CONFIG_MOTOR_DRV_ISA1200=y
+# CONFIG_MOTOR_DRV_DRV2603 is not set
+# CONFIG_FM_RADIO is not set
+CONFIG_SENSORS_CORE=y
+CONFIG_SENSORS_AK8975C=y
+# CONFIG_SENSORS_AK8963C is not set
+# CONFIG_SENSORS_BMP180 is not set
+# CONFIG_SENSORS_CM3663 is not set
+# CONFIG_SENSORS_PAS2M110 is not set
+# CONFIG_SENSORS_BMA254 is not set
+# CONFIG_SENSORS_TAOS is not set
+# CONFIG_SENSORS_GP2A is not set
+# CONFIG_SENSORS_GP2A_ANALOG is not set
+# CONFIG_SENSORS_CM36651 is not set
+CONFIG_SENSORS_BH1721=y
+CONFIG_SENSORS_AL3201=y
+# CONFIG_SENSORS_K3DH is not set
+# CONFIG_SENSORS_K3G is not set
+CONFIG_SENSORS_LSM330DLC=y
+# CONFIG_SENSORS_LPS331 is not set
+# CONFIG_SENSORS_YAS532 is not set
+# CONFIG_SENSORS_YAS_ORI is not set
+CONFIG_INPUT_YAS_MAGNETOMETER_POSITION=0
+# CONFIG_SENSORS_SYSFS is not set
+# CONFIG_SENSORS_SSP is not set
+# CONFIG_SENSORS_SSP_LSM330 is not set
+# CONFIG_SENSORS_SSP_AK8963C is not set
+# CONFIG_SENSORS_SSP_CM36651 is not set
+# CONFIG_SENSORS_SSP_BMP182 is not set
+# CONFIG_SENSORS_SSP_AT32UC3L0128 is not set
+# CONFIG_SENSORS_SSP_SENSORHUB is not set
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_SAMSUNG_PHONE_SVNET is not set
+CONFIG_ACCESSORY=y
+CONFIG_30PIN_CONN=y
+# CONFIG_MHL_SII9234 is not set
+CONFIG_SEC_KEYBOARD_DOCK=y
+# CONFIG_HPD_PULL is not set
+CONFIG_SAMSUNG_MHL_9290=y
+CONFIG_IR_REMOCON=y
+# CONFIG_IR_REMOCON_GPIO is not set
+CONFIG_IR_REMOCON_MC96=y
+# CONFIG_EXTCON is not set
+# CONFIG_BARCODE_EMUL is not set
+CONFIG_MOBICORE_SUPPORT=y
+# CONFIG_MOBICORE_DEBUG is not set
+CONFIG_MOBICORE_API=y
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_FELICA is not set
+CONFIG_AUTHENTEC_VPNCLIENT_INTERCEPTOR=m
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
+# CONFIG_EXT4_FS_XATTR is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+# CONFIG_AUTOFS4_FS is not set
+CONFIG_FUSE_FS=y
+# CONFIG_CUSE is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+# CONFIG_PROC_SEC_MEMINFO is not set
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_ECRYPT_FS=y
+CONFIG_WTL_ENCRYPTION_FILTER=y
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_LOGFS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_STATS2=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_ACL=y
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_CPU_ID=y
+# CONFIG_PRINTK_PID is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_DEBUG_LIST=y
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RCU_CPU_STALL_VERBOSE=y
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=y
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
+CONFIG_FAULT_INJECTION=y
+# CONFIG_FAILSLAB is not set
+# CONFIG_FAIL_PAGE_ALLOC is not set
+# CONFIG_FAIL_MAKE_REQUEST is not set
+# CONFIG_FAIL_IO_TIMEOUT is not set
+# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_OLD_MCOUNT=y
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_LL is not set
+# CONFIG_OC_ETM is not set
+CONFIG_DEBUG_S3C_UART=2
+# CONFIG_CACHE_PERF is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_KEYS_DEBUG_PROC_KEYS=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS_INTEG_OFFSET=0x20000000
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_GHASH is not set
+CONFIG_CRYPTO_MD4=y
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_TWOFISH_COMMON=y
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_S5P_DEV_ACE is not set
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+# CONFIG_XZ_DEC is not set
+# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=y
+CONFIG_TEXTSEARCH_BM=y
+CONFIG_TEXTSEARCH_FSM=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+# CONFIG_AVERAGE is not set
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index e53a6f0c8b8..2c177ecd2e7 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -1774,6 +1774,9 @@ config MDM_HSIC_PM
config EMI_ERROR_RECOVERY
bool "unsuspected emi error recovery on HUB"
default n
+config SIM_DETECT
+ bool "support sim detect"
+ default n
if QC_MODEM
choice
diff --git a/arch/arm/mach-exynos/Kconfig.local b/arch/arm/mach-exynos/Kconfig.local
index 9630ab1da28..54baf94c00e 100644
--- a/arch/arm/mach-exynos/Kconfig.local
+++ b/arch/arm/mach-exynos/Kconfig.local
@@ -183,6 +183,31 @@ config MACH_M0_KOR_LGT
endchoice
choice
+ prompt "P4 LTE USA Target Carrier"
+ depends on MACH_P4NOTE && TARGET_LOCALE_USA
+ default MACH_P4NOTE_USA_ANY
+
+config MACH_P4NOTELTE_USA_VZW
+ bool "P4NOTE LTE USA VZW"
+
+config MACH_P4NOTELTE_USA_ATT
+ bool "P4NOTE LTE USA ATT"
+
+config MACH_P4NOTELTE_USA_TMO
+ bool "P4NOTE LTE USA TMO"
+
+config MACH_P4NOTELTE_USA_SPR
+ bool "P4NOTE LTE USA SPR"
+
+config MACH_P4NOTELTE_USA_USCC
+ bool "P4NOTE LTE USA USCC"
+
+config MACH_P4NOTELTE_USA_ANY
+ bool "P4NOTE LTE USA ANY"
+
+endchoice
+
+choice
prompt "P4 KOR Target Carrier"
depends on MACH_P4NOTE && TARGET_LOCALE_KOR
default MACH_P4NOTE_KOR_ANY
diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
index 70025c6f410..22b8cfd3362 100644
--- a/arch/arm/mach-exynos/Makefile
+++ b/arch/arm/mach-exynos/Makefile
@@ -160,11 +160,19 @@ obj-$(CONFIG_MIDAS_COMMON) += sec-common.o \
obj-$(CONFIG_SEC_MODEM) += board-gps-bcm475x.o
else
ifeq ($(CONFIG_MACH_P4NOTE),y)
+ifeq ($(CONFIG_MACH_P4NOTELTE_USA_VZW),y)
+obj-$(CONFIG_MIDAS_COMMON) += sec-common.o\
+ midas-tsp.o board-midas-wlan.o \
+ midas-camera.o midas-thermistor.o \
+ midas-mhl.o midas-lcd.o midas-sound.o
+else
obj-$(CONFIG_MIDAS_COMMON) += sec-common.o\
midas-tsp.o board-midas-wlan.o \
midas-camera.o midas-thermistor.o \
midas-mhl.o midas-lcd.o midas-sound.o \
- board-gps-bcm475x.o
+ board-gps-bcm475x.o
+endif #CONFIG_MACH_P4NOTELTE_USA_VZW
+obj-$(CONFIG_GPS_BRCM_475X) += board-gps-bcm475x.o
else
ifeq ($(CONFIG_MACH_SLP_T0_LTE),y)
obj-$(CONFIG_MIDAS_COMMON) += sec-common.o \
diff --git a/arch/arm/mach-exynos/include/mach/gpio-rev00-p4notepq.h b/arch/arm/mach-exynos/include/mach/gpio-rev00-p4notepq.h
index c44ac94856d..506accea2a1 100644
--- a/arch/arm/mach-exynos/include/mach/gpio-rev00-p4notepq.h
+++ b/arch/arm/mach-exynos/include/mach/gpio-rev00-p4notepq.h
@@ -43,7 +43,7 @@ extern void midas_config_sleep_gpio_table(void);
#define GPIO_CAM_EN1 EXYNOS4212_GPJ0(6)
#define GPIO_5M_nSTBY EXYNOS4212_GPJ0(7)
#else
-#define GPIO_3M_nSTBY EXYNOS4212_GPM0(6)
+//#define GPIO_3M_nSTBY EXYNOS4212_GPM0(6)
#endif
#ifdef CONFIG_VIDEO_S5K5CCGX_COMMON
#define GPIO_2M_nRST EXYNOS4212_GPM1(6)
@@ -199,7 +199,7 @@ extern void midas_config_sleep_gpio_table(void);
#define GPIO_IRDA_CONTROL EXYNOS4_GPL0(3)
#elif defined(CONFIG_IR_REMOCON_MC96)
#define GPIO_IRDA_WAKE EXYNOS4_GPL0(3)
-#define GPIO_IRDA_IRQ EXYNOS4_GPM0(6)
+#define GPIO_IRDA_IRQ EXYNOS4212_GPM0(6)
#define GPIO_IRDA_SDA EXYNOS4_GPY0(0)
#define GPIO_IRDA_SCL EXYNOS4_GPY0(1)
#endif
@@ -377,6 +377,9 @@ extern void midas_config_sleep_gpio_table(void);
#define GPIO_MDM2AP_ERR_FATAL EXYNOS4_GPX1(2)
#define GPIO_MDM_LTE_ACTIVE EXYNOS4_GPX1(6)
#define GPIO_AP2MDM_HSIC_PORT_ACTIVE EXYNOS4_GPX3(2) /* AP2MDM_IPC1 */
+#ifdef CONFIG_SIM_DETECT
+#define GPIO_SIM_DETECT EXYNOS4_GPX1(7) /* sim detect */
+#endif
#endif
#endif /* __MACH_GPIO_MIDAS_H */
diff --git a/arch/arm/mach-exynos/include/mach/mdm2.h b/arch/arm/mach-exynos/include/mach/mdm2.h
index 61d875ced2d..534780e37e3 100644
--- a/arch/arm/mach-exynos/include/mach/mdm2.h
+++ b/arch/arm/mach-exynos/include/mach/mdm2.h
@@ -32,6 +32,11 @@ struct mdm_platform_data {
struct platform_device *peripheral_platform_device_ehci;
struct platform_device *peripheral_platform_device_ohci;
const unsigned int ramdump_timeout_ms;
+#ifdef CONFIG_SIM_DETECT
+ bool sim_polarity;
+#endif
+
+ void (*modem_complete)(struct device *dev);
};
struct mdm_hsic_pm_platform_data {
diff --git a/arch/arm/mach-exynos/mach-p4notepq.c b/arch/arm/mach-exynos/mach-p4notepq.c
index 7015259f958..eafb3b9d5a1 100644
--- a/arch/arm/mach-exynos/mach-p4notepq.c
+++ b/arch/arm/mach-exynos/mach-p4notepq.c
@@ -1028,6 +1028,10 @@ static void irda_device_init(void)
}
gpio_direction_output(GPIO_IRDA_WAKE, 0);
+ s3c_gpio_cfgpin(GPIO_IRDA_IRQ, S3C_GPIO_INPUT);
+ s3c_gpio_setpull(GPIO_IRDA_IRQ, S3C_GPIO_PULL_UP);
+ gpio_direction_input(GPIO_IRDA_IRQ);
+
return;
}
@@ -1448,6 +1452,17 @@ static int check_sec_keyboard_dock(bool attached)
return 0;
}
+/* call 30pin func. from sec_keyboard */
+static struct sec_30pin_callbacks *s30pin_callbacks;
+static int noti_sec_univ_kbd_dock(unsigned int code)
+{
+ if (s30pin_callbacks && s30pin_callbacks->noti_univ_kdb_dock)
+ return s30pin_callbacks->
+ noti_univ_kdb_dock(s30pin_callbacks, code);
+ return 0;
+}
+
+
static void check_uart_path(bool en)
{
int gpio_uart_sel;
@@ -1493,6 +1508,11 @@ static void check_uart_path(bool en)
#endif
}
+static void sec_30pin_register_cb(struct sec_30pin_callbacks *cb)
+{
+ s30pin_callbacks = cb;
+}
+
static void sec_keyboard_register_cb(struct sec_keyboard_callbacks *cb)
{
keyboard_callbacks = cb;
@@ -1503,6 +1523,7 @@ static struct sec_keyboard_platform_data kbd_pdata = {
.acc_power = smdk_accessory_power,
.check_uart_path = check_uart_path,
.register_cb = sec_keyboard_register_cb,
+ .noti_univ_kbd_dock = noti_sec_univ_kbd_dock,
.wakeup_key = NULL,
};
@@ -1572,6 +1593,7 @@ struct acc_con_platform_data acc_con_pdata = {
#ifdef CONFIG_SEC_KEYBOARD_DOCK
.check_keyboard = check_sec_keyboard_dock,
#endif
+ .register_cb = sec_30pin_register_cb,
.accessory_irq_gpio = GPIO_ACCESSORY_INT,
.dock_irq_gpio = GPIO_DOCK_INT,
#if defined(CONFIG_SAMSUNG_MHL_9290)
diff --git a/arch/arm/mach-exynos/mdm2.c b/arch/arm/mach-exynos/mdm2.c
index bb66e2eed81..f6981ec1393 100644
--- a/arch/arm/mach-exynos/mdm2.c
+++ b/arch/arm/mach-exynos/mdm2.c
@@ -289,8 +289,13 @@ static void mdm_status_changed(struct mdm_modem_drv *mdm_drv, int value)
if (value) {
mdm_peripheral_disconnect(mdm_drv);
mdm_peripheral_connect(mdm_drv);
- if (mdm_drv->ap2mdm_wakeup_gpio > 0)
+ if (mdm_drv->ap2mdm_wakeup_gpio > 0) {
+ if (gpio_get_value(mdm_drv->ap2mdm_wakeup_gpio)) {
+ gpio_set_value(mdm_drv->ap2mdm_wakeup_gpio, 0);
+ mdelay(5);
+ }
gpio_direction_output(mdm_drv->ap2mdm_wakeup_gpio, 1);
+ }
}
}
diff --git a/arch/arm/mach-exynos/mdm_common.c b/arch/arm/mach-exynos/mdm_common.c
index edd3418d79c..f0c819f3941 100644
--- a/arch/arm/mach-exynos/mdm_common.c
+++ b/arch/arm/mach-exynos/mdm_common.c
@@ -54,6 +54,10 @@ static const char rmnet_pm_dev[] = "mdm_hsic_pm0";
#include <mach/gpio.h>
#endif
+#ifdef CONFIG_SIM_DETECT
+#include <linux/poll.h>
+#endif
+
#define MDM_MODEM_TIMEOUT 6000
#define MDM_MODEM_DELTA 100
#define MDM_BOOT_TIMEOUT 60000L
@@ -181,6 +185,23 @@ void mdm_set_chip_configuration(bool dload)
}
}
+void print_mdm_gpio_state(void)
+{
+ pr_info("ap2mdm_status is %s\n",
+ gpio_get_value(mdm_drv->ap2mdm_status_gpio) ?
+ "high" : "low");
+ pr_info("ap2mdm_errfatal is %s\n",
+ gpio_get_value(mdm_drv->ap2mdm_errfatal_gpio) ?
+ "high" : "low");
+ pr_info("mdm2ap_status is %s\n",
+ gpio_get_value(mdm_drv->mdm2ap_status_gpio) ?
+ "high" : "low");
+ pr_info("mdm2ap_errfatal is %s\n",
+ gpio_get_value(mdm_drv->mdm2ap_errfatal_gpio) ?
+ "high" : "low");
+}
+EXPORT_SYMBOL(print_mdm_gpio_state);
+
static void mdm2ap_status_check(struct work_struct *work)
{
/*
@@ -198,6 +219,27 @@ static void mdm2ap_status_check(struct work_struct *work)
static DECLARE_DELAYED_WORK(mdm2ap_status_check_work, mdm2ap_status_check);
+static void mdm_silent_reset(void)
+{
+ pr_info("mdm: silent reset!!\n");
+
+ mdm_drv->boot_type = CHARM_NORMAL_BOOT;
+ complete(&mdm_needs_reload);
+ if (!wait_for_completion_timeout(&mdm_boot,
+ msecs_to_jiffies(MDM_BOOT_TIMEOUT))) {
+ mdm_drv->mdm_boot_status = -ETIMEDOUT;
+ pr_info("%s: mdm modem restart timed out.\n", __func__);
+ panic("%s[%p]: Failed to powerup!", __func__, current);
+ } else {
+ pr_info("%s: mdm modem has been restarted\n", __func__);
+
+ /* Log the reason for the restart */
+ if (mdm_drv->pdata->sfr_query)
+ queue_work(mdm_sfr_queue, &sfr_reason_work);
+ }
+ INIT_COMPLETION(mdm_boot);
+}
+
long mdm_modem_ioctl(struct file *filp, unsigned int cmd,
unsigned long arg)
{
@@ -300,9 +342,20 @@ long mdm_modem_ioctl(struct file *filp, unsigned int cmd,
return mdm_drv->proto_is_dload;
case GET_FORCE_RAMDUMP:
+ get_user(status, (unsigned long __user *) arg);
pr_info("%s: mdm get dump mode = %d\n", __func__, force_dump);
- return force_dump;
+ if (status)
+ mdm_force_fatal();
+ else
+ mdm_silent_reset();
+ break;
+#ifdef CONFIG_SIM_DETECT
+ case GET_SIM_DETECT:
+ pr_info("%s: mdm get sim detect = %d\n", __func__,
+ mdm_drv->sim_state);
+ return mdm_drv->sim_state;
+#endif
default:
pr_err("%s: invalid ioctl cmd = %d\n", __func__, _IOC_NR(cmd));
ret = -EINVAL;
@@ -312,19 +365,6 @@ long mdm_modem_ioctl(struct file *filp, unsigned int cmd,
return ret;
}
-/* temporary implemented, it should be removed at mass production */
-/* simply declare this function as extern at test point, and call it */
-void mdm_force_fatal(void)
-{
- pr_info("%s: Reseting the mdm due to AP request\n", __func__);
-
- force_dump = 1;
-
- notify_modem_fatal();
- subsystem_restart(EXTERNAL_MODEM);
-}
-EXPORT_SYMBOL(mdm_force_fatal);
-
static void mdm_fatal_fn(struct work_struct *work)
{
pr_info("%s: Reseting the mdm due to an errfatal\n", __func__);
@@ -351,6 +391,23 @@ static void mdm_status_fn(struct work_struct *work)
static DECLARE_WORK(mdm_status_work, mdm_status_fn);
+/* temporary implemented, it should be removed at mass production */
+/* simply declare this function as extern at test point, and call it */
+void mdm_force_fatal(void)
+{
+ pr_info("%s: Reseting the mdm due to AP request\n", __func__);
+
+ force_dump = 1;
+
+ if (in_irq())
+ queue_work(mdm_queue, &mdm_fatal_work);
+ else {
+ notify_modem_fatal();
+ subsystem_restart(EXTERNAL_MODEM);
+ }
+}
+EXPORT_SYMBOL(mdm_force_fatal);
+
static void mdm_disable_irqs(void)
{
disable_irq_nosync(mdm_drv->mdm_errfatal_irq);
@@ -370,6 +427,69 @@ static irqreturn_t mdm_errfatal(int irq, void *dev_id)
return IRQ_HANDLED;
}
+#ifdef CONFIG_SIM_DETECT
+
+/*
+ * SIM state gpio shows level when SIM inserted
+ *
+ * sim_polarity == 1
+ HIGH: attach
+ sim_polarity == 0
+ * LOW : attach
+ */
+void get_sim_state_at_boot(void)
+{
+ if (mdm_drv) {
+ mdm_drv->sim_state =
+ mdm_drv->pdata->sim_polarity ==
+ gpio_get_value(mdm_drv->sim_detect_gpio);
+ mdm_drv->sim_changed = 0;
+ pr_info("%s: sim state = %s\n", __func__,
+ mdm_drv->sim_state == 1 ? "Attach" : "Detach");
+ }
+}
+
+static void sim_status_check(struct work_struct *work)
+{
+ int cur_sim_state;
+
+ if (!mdm_drv->mdm_ready)
+ return;
+
+ cur_sim_state =
+ mdm_drv->pdata->sim_polarity ==
+ gpio_get_value(mdm_drv->sim_detect_gpio);
+
+ if (cur_sim_state != mdm_drv->sim_state) {
+ mdm_drv->sim_state = cur_sim_state;
+ mdm_drv->sim_changed = 1;
+ pr_info("sim state = %s\n",
+ mdm_drv->sim_state == 1 ? "Attach" : "Detach");
+ wake_up_interruptible(&mdm_drv->wq);
+ } else
+ mdm_drv->sim_changed = 0;
+
+ mdm_drv->sim_irq = false;
+}
+
+static DECLARE_DELAYED_WORK(sim_status_check_work, sim_status_check);
+
+#define SIM_DEBOUNCE_TIME_MS 1000
+static irqreturn_t sim_detect_irq_handler(int irq, void *dev_id)
+{
+ if (mdm_drv->mdm_ready) {
+ pr_info("%s: sim gpio level = %d\n", __func__,
+ gpio_get_value(mdm_drv->sim_detect_gpio));
+
+ mdm_drv->sim_irq = true;
+ schedule_delayed_work(&sim_status_check_work,
+ msecs_to_jiffies(SIM_DEBOUNCE_TIME_MS));
+ }
+
+ return IRQ_HANDLED;
+}
+#endif
+
static unsigned char *mdm_read_err_report(void)
{
/* Read CP error report from mdm_err.log in tombstones */
@@ -391,6 +511,20 @@ static unsigned char *mdm_read_err_report(void)
return (unsigned char *) buf;
}
+#ifdef CONFIG_SIM_DETECT
+static unsigned int mdm_modem_poll(struct file *file, poll_table *wait)
+{
+ int mask = 0;
+ poll_wait(file, &mdm_drv->wq, wait);
+ if (mdm_drv->sim_changed == 1) {
+ mdm_drv->sim_changed = 0;
+ mask = POLLHUP;
+ }
+
+ return mask;
+}
+#endif
+
static int mdm_modem_open(struct inode *inode, struct file *file)
{
return 0;
@@ -400,6 +534,9 @@ static const struct file_operations mdm_modem_fops = {
.owner = THIS_MODULE,
.open = mdm_modem_open,
.unlocked_ioctl = mdm_modem_ioctl,
+#ifdef CONFIG_SIM_DETECT
+ .poll = mdm_modem_poll,
+#endif
};
@@ -444,6 +581,7 @@ static int mdm_reboot_notifier(struct notifier_block *this,
{
int soft_reset_direction =
mdm_drv->pdata->soft_reset_inverted ? 1 : 0;
+ mdm_drv->mdm_ready = 0;
mdm_disable_irqs();
notify_modem_fatal();
gpio_direction_output(mdm_drv->ap2mdm_soft_reset_gpio,
@@ -500,6 +638,7 @@ static int mdm_subsys_shutdown(const struct subsys_data *crashed_subsys)
*/
msleep(mdm_drv->pdata->ramdump_delay_ms);
}
+
#if 0
if (!mdm_drv->mdm_unexpected_reset_occurred)
mdm_drv->ops->reset_mdm_cb(mdm_drv);
@@ -599,7 +738,6 @@ static int mdm_debugfs_init(void)
}
#endif
-
static void mdm_modem_initialize_data(struct platform_device *pdev,
struct mdm_ops *mdm_ops)
{
@@ -664,6 +802,17 @@ static void mdm_modem_initialize_data(struct platform_device *pdev,
"MDM2AP_PBLRDY");
if (pres)
mdm_drv->mdm2ap_pblrdy = pres->start;
+#ifdef CONFIG_SIM_DETECT
+ /* SIM_DETECT */
+ pres = platform_get_resource_byname(pdev, IORESOURCE_IO,
+ "SIM_DETECT");
+ if (pres)
+ mdm_drv->sim_detect_gpio = pres->start;
+ else
+ pr_err("%s: fail to get resource\n", __func__);
+
+#endif
+ mdm_drv->sim_irq = false;
mdm_drv->boot_type = CHARM_NORMAL_BOOT;
@@ -695,6 +844,9 @@ int mdm_common_create(struct platform_device *pdev,
gpio_request(mdm_drv->ap2mdm_kpdpwr_n_gpio, "AP2MDM_KPDPWR_N");
gpio_request(mdm_drv->mdm2ap_status_gpio, "MDM2AP_STATUS");
gpio_request(mdm_drv->mdm2ap_errfatal_gpio, "MDM2AP_ERRFATAL");
+#ifdef CONFIG_SIM_DETECT
+ gpio_request(mdm_drv->sim_detect_gpio, "SIM_DETECT");
+#endif
if (mdm_drv->mdm2ap_pblrdy > 0)
gpio_request(mdm_drv->mdm2ap_pblrdy, "MDM2AP_PBLRDY");
@@ -743,6 +895,10 @@ int mdm_common_create(struct platform_device *pdev,
gpio_direction_input(mdm_drv->mdm2ap_status_gpio);
gpio_direction_input(mdm_drv->mdm2ap_errfatal_gpio);
+#ifdef CONFIG_SIM_DETECT
+ gpio_direction_input(mdm_drv->sim_detect_gpio);
+ init_waitqueue_head(&mdm_drv->wq);
+#endif
mdm_queue = create_singlethread_workqueue("mdm_queue");
if (!mdm_queue) {
@@ -831,6 +987,38 @@ errfatal_err:
enable_irq_wake(irq);
status_err:
+#ifdef CONFIG_SIM_DETECT
+ /* sim detect irq */
+#ifdef CONFIG_ARCH_EXYNOS
+ s3c_gpio_cfgpin(mdm_drv->sim_detect_gpio, S3C_GPIO_SFN(0xf));
+ s3c_gpio_setpull(mdm_drv->sim_detect_gpio, S3C_GPIO_PULL_NONE);
+ irq = gpio_to_irq(mdm_drv->sim_detect_gpio);
+#else
+ irq = MSM_GPIO_TO_INT(mdm_drv->sim_detect_gpio);
+#endif
+ if (irq < 0) {
+ pr_err("%s: could not get SIM DETECT IRQ resource. "
+ "error=%d No IRQ will be generated on status change.",
+ __func__, irq);
+ goto simdetect_err;
+ }
+
+ ret = request_threaded_irq(irq, NULL, sim_detect_irq_handler,
+ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
+ "sim detect", mdm_drv);
+
+ if (ret < 0) {
+ pr_err("%s: SIM_DETECT IRQ#%d request failed with error=%d"
+ ". No IRQ will be generated on status change.",
+ __func__, irq, ret);
+ goto simdetect_err;
+ }
+
+ mdm_drv->mdm_status_irq = irq;
+ enable_irq_wake(irq);
+simdetect_err:
+#endif
+
if (mdm_drv->mdm2ap_pblrdy > 0) {
#ifdef CONFIG_ARCH_EXYNOS
s3c_gpio_cfgpin(mdm_drv->mdm2ap_pblrdy, S3C_GPIO_SFN(0xf));
@@ -885,6 +1073,9 @@ fatal_err:
gpio_free(mdm_drv->ap2mdm_pmic_pwr_en_gpio);
gpio_free(mdm_drv->mdm2ap_status_gpio);
gpio_free(mdm_drv->mdm2ap_errfatal_gpio);
+#ifdef CONFIG_MACH_SIM_DETECT
+ gpio_free(mdm_drv->sim_detect_gpio);
+#endif
if (mdm_drv->ap2mdm_soft_reset_gpio > 0)
gpio_free(mdm_drv->ap2mdm_soft_reset_gpio);
@@ -910,6 +1101,9 @@ int mdm_common_modem_remove(struct platform_device *pdev)
gpio_free(mdm_drv->ap2mdm_pmic_pwr_en_gpio);
gpio_free(mdm_drv->mdm2ap_status_gpio);
gpio_free(mdm_drv->mdm2ap_errfatal_gpio);
+#ifdef CONFIG_SIM_DETECT
+ gpio_free(mdm_drv->sim_detect_gpio);
+#endif
if (mdm_drv->ap2mdm_soft_reset_gpio > 0)
gpio_free(mdm_drv->ap2mdm_soft_reset_gpio);
diff --git a/arch/arm/mach-exynos/mdm_device.c b/arch/arm/mach-exynos/mdm_device.c
index f5af03c5c48..6c41e46d6b8 100644
--- a/arch/arm/mach-exynos/mdm_device.c
+++ b/arch/arm/mach-exynos/mdm_device.c
@@ -56,6 +56,15 @@ static struct resource mdm_resources[] = {
.name = "AP2MDM_WAKEUP",
.flags = IORESOURCE_IO,
},
+#ifdef CONFIG_SIM_DETECT
+ {
+ .start = GPIO_SIM_DETECT,
+ .end = GPIO_SIM_DETECT,
+ .name = "SIM_DETECT",
+ .flags = IORESOURCE_IO,
+ },
+#endif
+
};
#ifdef CONFIG_MDM_HSIC_PM
@@ -99,7 +108,7 @@ struct platform_device mdm_pm_device = {
static struct mdm_platform_data mdm_platform_data = {
.mdm_version = "3.0",
- .ramdump_delay_ms = 2000,
+ .ramdump_delay_ms = 3000,
.early_power_on = 1,
.sfr_query = 0,
.vddmin_resource = NULL,
@@ -110,6 +119,10 @@ static struct mdm_platform_data mdm_platform_data = {
.peripheral_platform_device_ohci = &s5p_device_ohci,
#endif
.ramdump_timeout_ms = 120000,
+#if defined(CONFIG_MACH_P4NOTE) && defined(CONFIG_QC_MODEM) \
+ && defined(CONFIG_SIM_DETECT)
+ .sim_polarity = 0,
+#endif
};
static int exynos_frequency_lock(struct device *dev)
diff --git a/arch/arm/mach-exynos/mdm_private.h b/arch/arm/mach-exynos/mdm_private.h
index 6dbcfa47622..d632c8fc52c 100644
--- a/arch/arm/mach-exynos/mdm_private.h
+++ b/arch/arm/mach-exynos/mdm_private.h
@@ -36,7 +36,9 @@ struct mdm_modem_drv {
unsigned ap2mdm_soft_reset_gpio;
unsigned ap2mdm_pmic_pwr_en_gpio;
unsigned mdm2ap_pblrdy;
-
+#ifdef CONFIG_SIM_DETECT
+ unsigned sim_detect_gpio;
+#endif
int proto_is_dload;
int mdm_errfatal_irq;
@@ -47,9 +49,16 @@ struct mdm_modem_drv {
enum charm_boot_type boot_type;
int mdm_debug_on;
int mdm_unexpected_reset_occurred;
-
+#ifdef CONFIG_SIM_DETECT
+ int sim_state;
+ bool sim_changed;
+ wait_queue_head_t wq;
+#endif
struct mdm_ops *ops;
struct mdm_platform_data *pdata;
+
+ bool sim_shutdown_req;
+ bool sim_irq;
};
int mdm_common_create(struct platform_device *pdev,
@@ -61,7 +70,10 @@ void mdm_peripheral_disconnect(struct mdm_modem_drv *mdm_drv);
void notify_modem_fatal(void);
void request_autopm_lock(int status);
-
+bool mdm_check_main_connect(const char *);
+#ifdef CONFIG_SIM_DETECT
+void get_sim_state_at_boot(void);
+#endif
extern unsigned int lpcharge;
extern void ctrl_bridge_stop_all(void);
extern void rmnet_usb_ctrl_stop_all(void);
diff --git a/arch/arm/mach-exynos/midas-lcd.c b/arch/arm/mach-exynos/midas-lcd.c
index 8612f62048c..f28c1961c22 100644
--- a/arch/arm/mach-exynos/midas-lcd.c
+++ b/arch/arm/mach-exynos/midas-lcd.c
@@ -360,8 +360,14 @@ static struct s3cfb_lcd s6c1372 = {
.p_width = 217,
.p_height = 135,
.bpp = 24,
-
+#if defined(CONFIG_MACH_P4NOTELTE_USA_SPR) || \
+ defined(CONFIG_MACH_P4NOTELTE_USA_VZW) || \
+ defined(CONFIG_MACH_P4NOTELTE_USA_USCC)
+ .freq = 55,
+#else
.freq = 60,
+#endif
+
.timing = {
.h_fp = 18,
.h_bp = 36,
@@ -794,6 +800,7 @@ static struct s3cfb_lcd lms501xx = {
#endif
static int reset_lcd(void)
{
+#if defined(GPIO_MLCD_RST)
int err;
err = gpio_request(GPIO_MLCD_RST, "MLCD_RST");
@@ -810,15 +817,18 @@ static int reset_lcd(void)
gpio_set_value(GPIO_MLCD_RST, 1);
usleep_range(5000, 5000);
gpio_free(GPIO_MLCD_RST);
+#endif
return 0;
}
static void lcd_cfg_gpio(void)
{
+#if defined(GPIO_MLCD_RST)
+
/* MLCD_RST */
s3c_gpio_cfgpin(GPIO_MLCD_RST, S3C_GPIO_OUTPUT);
s3c_gpio_setpull(GPIO_MLCD_RST, S3C_GPIO_PULL_NONE);
-
+#endif
#if defined(GPIO_LCD_22V_EN_00)
/* LCD_EN */
s3c_gpio_cfgpin(GPIO_LCD_22V_EN_00, S3C_GPIO_OUTPUT);
diff --git a/arch/arm/mach-exynos/p4-input.c b/arch/arm/mach-exynos/p4-input.c
index e4d43c0fdef..71aa13548bc 100644
--- a/arch/arm/mach-exynos/p4-input.c
+++ b/arch/arm/mach-exynos/p4-input.c
@@ -344,6 +344,10 @@ static int ts_power_reset(void)
Configuration for MXT1664-S
*/
#define MXT1664S_CONFIG_DATE "N80XX_ATM_0703"
+#if defined(CONFIG_MACH_P4NOTELTE_USA_VZW)
+#define MXT1664S_CONFIG_DATE_FOR_OVER_HW9 "I925_ATM_1121"
+#endif
+
#define MXT1664S_MAX_MT_FINGERS 10
#define MXT1664S_BLEN_BATT 112
#define MXT1664S_CHRGTIME_BATT 180
@@ -585,9 +589,17 @@ static void switch_config(u32 rev)
t62_config_s[14] = 1;
t62_config_s[20] = 136;
t62_config_s[22] = 35;
+#if defined(CONFIG_MACH_P4NOTELTE_USA_VZW)
+ t62_config_s[23] = 48;
+ t62_config_s[26] = 24;
+ t62_config_s[27] = 24;
+#endif
t62_config_s[35] = 80;
t62_config_s[36] = 50;
t62_config_s[38] = 5;
+#if defined(CONFIG_MACH_P4NOTELTE_USA_VZW)
+ t62_config_s[40] = 50;
+#endif
t62_config_s[42] = 30;
t62_config_s[43] = 40;
t62_config_s[44] = 10;
@@ -595,6 +607,11 @@ static void switch_config(u32 rev)
t62_config_s[48] = 30;
t62_config_s[49] = 30;
t62_config_s[53] = 20;
+#if defined(CONFIG_MACH_P4NOTELTE_USA_VZW)
+ /* Change Config Name for LTE */
+ mxt1664s_pdata.config_version =
+ MXT1664S_CONFIG_DATE_FOR_OVER_HW9;
+#endif
}
}
diff --git a/arch/arm/mach-exynos/p4note-gpio.c b/arch/arm/mach-exynos/p4note-gpio.c
index 5596b7a2e92..510ed61c102 100644
--- a/arch/arm/mach-exynos/p4note-gpio.c
+++ b/arch/arm/mach-exynos/p4note-gpio.c
@@ -36,6 +36,14 @@ extern int s3c_gpio_slp_setpull_updown(unsigned int pin, unsigned int config);
* P4NOTE GPIO Init Table
*/
static struct gpio_init_data p4note_init_gpios[] = {
+ #if defined(CONFIG_QC_MODEM)
+ {EXYNOS4_GPA0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
+ S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
+ {EXYNOS4_GPA0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
+ S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
+ {EXYNOS4_GPA0(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
+ S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
+#endif
#if defined(CONFIG_SEC_MODEM)
{EXYNOS4_GPA1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
@@ -136,7 +144,7 @@ static struct gpio_init_data p4note_init_gpios[] = {
{EXYNOS4_GPK3(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* WLAN_SDIO_D(3) */
-#if !defined(CONFIG_SEC_MODEM)
+#if !defined(CONFIG_SEC_MODEM) && !defined(CONFIG_QC_MODEM)
{EXYNOS4212_GPM0(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
#endif
@@ -192,7 +200,7 @@ static unsigned int p4note_sleep_gpio_table[][3] = {
{EXYNOS4_GPA1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
{EXYNOS4_GPA1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
{EXYNOS4_GPA1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
-#if defined(CONFIG_SEC_MODEM)
+#if defined(CONFIG_SEC_MODEM) || defined(CONFIG_QC_MODEM)
{EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC(IPC_RXD) */
{EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC(IPC_TXD) */
#else
@@ -450,7 +458,7 @@ static unsigned int p4note_sleep_gpio_table[][3] = {
{EXYNOS4212_GPM0(4), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* TSP_RST */
{EXYNOS4212_GPM0(5), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* LVDS_nSHDN */
{EXYNOS4212_GPM0(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* 3M_nSTBY */
-#if defined(CONFIG_SEC_MODEM)
+#if defined(CONFIG_SEC_MODEM) || defined(CONFIG_QC_MODEM)
{EXYNOS4212_GPM0(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* USB_SEL_CP */
#else
{EXYNOS4212_GPM0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
diff --git a/arch/arm/mach-exynos/px-switch.c b/arch/arm/mach-exynos/px-switch.c
index 99f0e15b22a..37173bb0b86 100644
--- a/arch/arm/mach-exynos/px-switch.c
+++ b/arch/arm/mach-exynos/px-switch.c
@@ -430,10 +430,10 @@ static void init_gpio(void)
s3c_gpio_cfgpin(GPIO_USB_SEL1, S3C_GPIO_OUTPUT);
s3c_gpio_setpull(GPIO_USB_SEL1, S3C_GPIO_PULL_NONE);
-
+#if defined(GPIO_USB_SEL_CP)
s3c_gpio_cfgpin(GPIO_USB_SEL_CP, S3C_GPIO_OUTPUT);
s3c_gpio_setpull(GPIO_USB_SEL_CP, S3C_GPIO_PULL_NONE);
-
+#endif /* GPIO_USB_SEL_CP */
s3c_gpio_cfgpin(GPIO_UART_SEL, S3C_GPIO_OUTPUT);
s3c_gpio_setpull(GPIO_UART_SEL, S3C_GPIO_PULL_NONE);
@@ -518,7 +518,9 @@ static int __init usb_switch_init(void)
#if defined(CONFIG_MACH_P4NOTE)
gpio_request(GPIO_USB_SEL0, "GPIO_USB_SEL0");
gpio_request(GPIO_USB_SEL1, "GPIO_USB_SEL1");
+#if defined(GPIO_USB_SEL_CP)
gpio_request(GPIO_USB_SEL_CP, "GPIO_USB_SEL_CP");
+#endif /* GPIO_USB_SEL_CP */
#else
gpio_request(GPIO_USB_SEL1, "GPIO_USB_SEL1");
gpio_request(GPIO_USB_SEL2, "GPIO_USB_SEL2");
@@ -540,7 +542,9 @@ static int __init usb_switch_init(void)
#if defined(CONFIG_MACH_P4NOTE)
gpio_export(GPIO_USB_SEL0, 1);
gpio_export(GPIO_USB_SEL1, 1);
+#if defined(GPIO_USB_SEL_CP)
gpio_export(GPIO_USB_SEL_CP, 1);
+#endif /* GPIO_USB_SEL_CP */
#else
gpio_export(GPIO_USB_SEL1, 1);
gpio_export(GPIO_USB_SEL2, 1);
@@ -567,7 +571,9 @@ static int __init usb_switch_init(void)
#if defined(CONFIG_MACH_P4NOTE)
gpio_export_link(sec_switch_dev, "GPIO_USB_SEL0", GPIO_USB_SEL0);
gpio_export_link(sec_switch_dev, "GPIO_USB_SEL1", GPIO_USB_SEL1);
+#if defined(GPIO_USB_SEL_CP)
gpio_export_link(sec_switch_dev, "GPIO_USB_SEL_CP", GPIO_USB_SEL_CP);
+#endif /* GPIO_USB_SEL_CP */
#else
gpio_export_link(sec_switch_dev, "GPIO_USB_SEL1", GPIO_USB_SEL1);
gpio_export_link(sec_switch_dev, "GPIO_USB_SEL2", GPIO_USB_SEL2);
diff --git a/arch/arm/mach-exynos/setup-usb-phy.c b/arch/arm/mach-exynos/setup-usb-phy.c
index c844752335d..22621c5a0f4 100644
--- a/arch/arm/mach-exynos/setup-usb-phy.c
+++ b/arch/arm/mach-exynos/setup-usb-phy.c
@@ -1044,11 +1044,14 @@ int exynos4_check_usb_op(void)
if (phypwr & (PHY1_STD_FORCE_SUSPEND
| EXYNOS4212_HSIC0_FORCE_SUSPEND
| EXYNOS4212_HSIC1_FORCE_SUSPEND)) {
-#if defined(CONFIG_LINK_DEVICE_HSIC) || defined(CONFIG_LINK_DEVICE_USB) \
- || defined(CONFIG_MDM_HSIC_PM)
- /* HSIC LPA: LPA USB phy retention reume call the usb
- * reset resume, so we should let CP to HSIC L3 mode. */
+#if defined(CONFIG_LINK_DEVICE_HSIC) || defined(CONFIG_LINK_DEVICE_USB)
set_hsic_lpa_states(STATE_HSIC_LPA_ENTER);
+#elif defined(CONFIG_MDM_HSIC_PM)
+ ret = set_hsic_lpa_states(STATE_HSIC_LPA_ENTER);
+ if (ret < 0) {
+ op = 1;
+ goto done;
+ }
#endif
/* unset to normal of Host */
writel(readl(EXYNOS4_PHYPWR)
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c
index 12b1bad64e2..5f304a7a715 100644
--- a/arch/arm/plat-samsung/pm.c
+++ b/arch/arm/plat-samsung/pm.c
@@ -320,9 +320,17 @@ static int s3c_pm_enter(suspend_state_t state)
#ifdef CONFIG_FAST_BOOT
if (fake_shut_down) {
+#if defined(CONFIG_SEC_MODEM) || defined(CONFIG_QC_MODEM)
+ /* Masking external wake up source
+ * only enable power key, FUEL ALERT, AP/IF PMIC IRQ
+ * and SIM Detect Irq
+ */
+ __raw_writel(0xdf77df7f, S5P_EINT_WAKEUP_MASK);
+#else
/* Masking external wake up source
* only enable power key, FUEL ALERT, AP/IF PMIC IRQ */
__raw_writel(0xff77df7f, S5P_EINT_WAKEUP_MASK);
+#endif
/* disable all system int */
__raw_writel(0xffffffff, S5P_WAKEUP_MASK);
}
diff --git a/drivers/accessory/30pin_con.c b/drivers/accessory/30pin_con.c
index 3ecaa6205b6..0014afb610d 100644
--- a/drivers/accessory/30pin_con.c
+++ b/drivers/accessory/30pin_con.c
@@ -67,10 +67,15 @@ struct acc_con_info {
struct switch_dev ear_jack_switch;
struct wake_lock wake_lock;
struct s3c_adc_client *padc;
+ struct sec_30pin_callbacks callbacks;
enum accessory_type current_accessory;
+ enum accessory_type univ_kdb_accessory;
enum dock_type current_dock;
int accessory_irq;
int dock_irq;
+ int cable_type;
+ int cable_sub_type;
+ int cable_pwr_type;
#if defined(CONFIG_MHL_SII9234) || defined(CONFIG_SAMSUNG_MHL_9290)
int mhl_irq;
bool mhl_pwr_state;
@@ -81,7 +86,7 @@ struct acc_con_info {
};
#if defined(CONFIG_STMPE811_ADC)
-#ifdef CONFIG_MACH_P4NOTE
+#if defined(CONFIG_MACH_P4NOTE) || defined(CONFIG_MACH_KONA)
#define ACCESSORY_ID_ADC_CH 7
#else
#define ACCESSORY_ID_ADC_CH 0
@@ -138,6 +143,8 @@ static int acc_get_accessory_id(struct acc_con_info *acc)
for (i = 0; i < 5; i++) {
adc_val = acc_get_adc_accessroy_id(acc->padc);
+ ACC_CONDEV_DBG("ACCESSORY_ID adc_val[%d] value = %d",
+ i, adc_val);
adc_buff[i] = adc_val;
adc_sum += adc_buff[i];
if (i == 0) {
@@ -151,7 +158,8 @@ static int acc_get_accessory_id(struct acc_con_info *acc)
}
msleep(20);
}
- adc = (adc_sum - adc_max - adc_min)/3;
+ /* adc = (adc_sum - adc_max - adc_min)/3; */
+ adc = adc_buff[4];
ACC_CONDEV_DBG("ACCESSORY_ID ADC value = %d", adc);
return (int)adc;
}
@@ -323,7 +331,7 @@ static void acc_dock_psy(struct acc_con_info *acc)
union power_supply_propval value;
/* only support p4note(high current charging) */
-#ifndef CONFIG_MACH_P4NOTE
+#if !defined(CONFIG_MACH_P4NOTE) && !defined(CONFIG_MACH_KONA)
return;
#endif
@@ -332,17 +340,65 @@ static void acc_dock_psy(struct acc_con_info *acc)
return;
}
- value.intval = acc->current_dock;
+ value.intval = 0;
+ value.intval = (acc->cable_type << 16) + (acc->cable_sub_type << 8) +
+ (acc->cable_pwr_type << 0);
+ pr_info("[BATT]30 cx(%d), sub(%d), pwr(%d)\n",
+ acc->cable_type, acc->cable_sub_type, acc->cable_pwr_type);
+
psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value);
}
+void acc_otg_enable_by_univkbd(struct acc_con_info *acc, bool val)
+{
+ char *env_ptr;
+ char *stat_ptr;
+ char *envp[3];
+
+ if (val == true) {
+ if (acc->univ_kdb_accessory == ACCESSORY_NONE) {
+ env_ptr = "ACCESSORY=OTG";
+ stat_ptr = "STATE=online";
+ acc->univ_kdb_accessory = ACCESSORY_OTG;
+
+ if (acc->pdata->usb_ldo_en)
+ acc->pdata->usb_ldo_en(1);
+ if (acc->pdata->otg_en)
+ acc->pdata->otg_en(1);
+
+ envp[0] = env_ptr;
+ envp[1] = stat_ptr;
+ envp[2] = NULL;
+ kobject_uevent_env(&acc->acc_dev->kobj,
+ KOBJ_CHANGE, envp);
+ ACC_CONDEV_DBG("%s : %s", env_ptr, stat_ptr);
+ }
+ } else {
+ if (acc->univ_kdb_accessory == ACCESSORY_OTG) {
+ env_ptr = "ACCESSORY=OTG";
+ stat_ptr = "STATE=offline";
+
+ envp[0] = env_ptr;
+ envp[1] = stat_ptr;
+ envp[2] = NULL;
+ kobject_uevent_env(&acc->acc_dev->kobj,
+ KOBJ_CHANGE, envp);
+ ACC_CONDEV_DBG("%s : %s", env_ptr, stat_ptr);
+
+ if (acc->pdata->otg_en)
+ acc->pdata->otg_en(0);
+
+ acc->univ_kdb_accessory = ACCESSORY_NONE;
+ }
+ }
+}
+
static void acc_check_dock_detection(struct acc_con_info *acc)
{
if (NULL == acc->pdata->get_dock_state) {
ACC_CONDEV_DBG("[30PIN] failed to get acc state!!!");
return;
}
-
if (!acc->pdata->get_dock_state()) {
#ifdef CONFIG_SEC_KEYBOARD_DOCK
if (acc->pdata->check_keyboard &&
@@ -355,16 +411,20 @@ static void acc_check_dock_detection(struct acc_con_info *acc)
acc->current_dock = DOCK_KEYBOARD;
ACC_CONDEV_DBG
- ("[30PIN] keyboard dock station attached!!!");
+ ("The dock proves to be a keyboard dock..!");
switch_set_state(&acc->dock_switch,
UEVENT_DOCK_KEYBOARD);
+ acc->cable_type = POWER_SUPPLY_TYPE_DOCK;
+ acc->cable_sub_type = ONLINE_SUB_TYPE_DESK;
} else
#endif
{
ACC_CONDEV_DBG
- ("[30PIN] desktop dock station attached!!!");
+ ("The dock proves to be a desktop dock..!");
switch_set_state(&acc->dock_switch, UEVENT_DOCK_DESK);
acc->current_dock = DOCK_DESK;
+ acc->cable_type = POWER_SUPPLY_TYPE_DOCK;
+ acc->cable_sub_type = ONLINE_SUB_TYPE_DESK;
#if defined(CONFIG_MHL_SII9234) || defined(CONFIG_SAMSUNG_MHL_9290)
mutex_lock(&acc->lock);
@@ -382,12 +442,21 @@ static void acc_check_dock_detection(struct acc_con_info *acc)
acc_dock_uevent(acc, true);
} else {
- ACC_CONDEV_DBG("[30PIN] dock station detached!!!");
+ ACC_CONDEV_DBG("dock station detached.. !");
switch_set_state(&acc->dock_switch, UEVENT_DOCK_NONE);
+ acc->current_dock = DOCK_NONE;
+ acc->cable_type = POWER_SUPPLY_TYPE_BATTERY;
+ acc->cable_sub_type = ONLINE_SUB_TYPE_UNKNOWN;
#ifdef CONFIG_SEC_KEYBOARD_DOCK
if (acc->pdata->check_keyboard)
acc->pdata->check_keyboard(false);
+ if (acc->univ_kdb_accessory == ACCESSORY_OTG) {
+ acc_otg_enable_by_univkbd(acc, false);
+ acc->current_dock = DOCK_NONE;
+ acc->cable_type = POWER_SUPPLY_TYPE_BATTERY;
+ acc->cable_sub_type = ONLINE_SUB_TYPE_UNKNOWN;
+ }
#endif
#if defined(CONFIG_MHL_SII9234) || defined(CONFIG_SAMSUNG_MHL_9290)
/*call MHL deinit */
@@ -400,11 +469,9 @@ static void acc_check_dock_detection(struct acc_con_info *acc)
acc->mhl_pwr_state = false;
}
#endif
- /*TVout_LDO_ctrl(false); */
acc_dock_uevent(acc, false);
}
-
acc_dock_psy(acc);
}
@@ -412,6 +479,8 @@ static irqreturn_t acc_dock_isr(int irq, void *ptr)
{
struct acc_con_info *acc = ptr;
wake_lock(&acc->wake_lock);
+ ACC_CONDEV_DBG
+ ("A dock station attached or detached..");
acc_check_dock_detection(acc);
wake_unlock(&acc->wake_lock);
return IRQ_HANDLED;
@@ -506,6 +575,48 @@ err_irq_dock:
return ;
}
+static int acc_noti_univkbd_dock(struct sec_30pin_callbacks *cb,
+ unsigned int code)
+{
+ struct acc_con_info *acc =
+ container_of(cb, struct acc_con_info, callbacks);
+
+ char *env_ptr;
+ char *stat_ptr;
+ char *envp[3];
+
+ ACC_CONDEV_DBG("universal keyboard noti. callback 0x%x", code);
+
+ switch (code) {
+ case 0x68: /*dock is con*/
+ acc_otg_enable_by_univkbd(acc, true);
+ acc->cable_type = POWER_SUPPLY_TYPE_DOCK;
+ acc->cable_sub_type = ONLINE_SUB_TYPE_KBD;
+ acc_dock_psy(acc);
+ break;
+ case 0x69: /*usb charging*/
+ acc->cable_pwr_type = ONLINE_POWER_TYPE_USB;
+ acc_dock_psy(acc);
+ break;
+ case 0x6a: /*USB cable attached */
+ acc_otg_enable_by_univkbd(acc, false);
+ acc->cable_pwr_type = ONLINE_POWER_TYPE_USB;
+ acc_dock_psy(acc);
+ break;
+ case 0x6b: /*TA connection*/
+ acc->cable_pwr_type = ONLINE_POWER_TYPE_TA;
+ acc_dock_psy(acc);
+ break;
+ case 0x6c: /* USB cable detached */
+ acc_otg_enable_by_univkbd(acc, true);
+ acc->cable_pwr_type = ONLINE_POWER_TYPE_BATTERY;
+ acc_dock_psy(acc);
+ break;
+ }
+
+ return 0;
+}
+
static void acc_dwork_accessory_detect(struct work_struct *work)
{
struct acc_con_info *acc = container_of(work,
@@ -513,6 +624,7 @@ static void acc_dwork_accessory_detect(struct work_struct *work)
int adc_val = 0;
int acc_state = 0;
+ int acc_state2 = 0;
acc_state = acc->pdata->get_acc_state();
@@ -520,9 +632,16 @@ static void acc_dwork_accessory_detect(struct work_struct *work)
ACC_CONDEV_DBG("Accessory detached");
acc_accessory_uevent(acc, false);
} else {
- ACC_CONDEV_DBG("Accessory attached");
adc_val = acc_get_accessory_id(acc);
+
+ acc_state2 = acc->pdata->get_acc_state();
+ if (acc_state2) {
+ ACC_CONDEV_DBG("Accessory detached2.");
+ acc_accessory_uevent(acc, false);
+ } else {
+ ACC_CONDEV_DBG("Accessory attached");
acc_accessory_uevent(acc, adc_val);
+ }
}
}
@@ -544,7 +663,7 @@ static int acc_con_probe(struct platform_device *pdev)
}
#ifdef CONFIG_REGULATOR
-#ifndef CONFIG_MACH_P4NOTE
+#if !defined(CONFIG_MACH_P4NOTE) && !defined(CONFIG_MACH_KONA)
/* LDO1 regulator ON */
vadc_regulator = regulator_get(&pdev->dev, "vadc_3.3v");
if (IS_ERR(vadc_regulator)) {
@@ -563,6 +682,7 @@ static int acc_con_probe(struct platform_device *pdev)
acc->pdata = pdata;
acc->current_dock = DOCK_NONE;
acc->current_accessory = ACCESSORY_NONE;
+ acc->univ_kdb_accessory = ACCESSORY_NONE;
#if defined(CONFIG_MHL_SII9234) || defined(CONFIG_SAMSUNG_MHL_9290)
acc->mhl_irq = gpio_to_irq(pdata->mhl_irq_gpio);
acc->mhl_pwr_state = false;
@@ -580,6 +700,10 @@ static int acc_con_probe(struct platform_device *pdev)
acc->padc = s3c_adc_register(pdev, NULL, NULL, 0);
#endif
+ acc->callbacks.noti_univ_kdb_dock = acc_noti_univkbd_dock;
+ if (pdata->register_cb)
+ pdata->register_cb(&acc->callbacks);
+
#ifdef CONFIG_MHL_SII9234
retval = i2c_add_driver(&SII9234A_i2c_driver);
if (retval) {
diff --git a/drivers/accessory/sec_keyboard.c b/drivers/accessory/sec_keyboard.c
index cc89c0c30f9..3e7556fc34c 100644
--- a/drivers/accessory/sec_keyboard.c
+++ b/drivers/accessory/sec_keyboard.c
@@ -44,6 +44,26 @@ static void sec_keyboard_remapkey(struct work_struct *work)
data->remap_key = 0;
}
+static void sec_keyboard_ack(struct work_struct *work)
+{
+ unsigned int ackcode = 0;
+ char *envp[3];
+ struct sec_keyboard_drvdata *data = container_of(work,
+ struct sec_keyboard_drvdata, ack_dwork.work);
+
+ if (data->ack_code) {
+ ackcode = data->ack_code;
+ sec_keyboard_tx(data, ackcode);
+ }
+
+ if (ackcode == 0x68)
+ data->univ_kbd_dock = true;
+
+ printk(KERN_DEBUG "[Keyboard] Ack code to KBD 0x%x\n", ackcode);
+
+ data->noti_univ_kbd_dock(data->ack_code);
+}
+
static void release_all_keys(struct sec_keyboard_drvdata *data)
{
int i;
@@ -105,7 +125,16 @@ static void sec_keyboard_process_data(
data->pressed[scan_code] = true;
schedule_delayed_work(&data->remap_dwork, HZ/3);
break;
-
+ case 0x68:
+ case 0x69:
+ case 0x6a:
+ case 0x6b:
+ case 0x6c:
+ data->ack_code = scan_code;
+ schedule_delayed_work(&data->ack_dwork, HZ/200);
+ printk(KERN_DEBUG "[Keyboard] scan_code %d Received.\n",
+ scan_code);
+ break;
case 0xc5:
case 0xc8:
keycode = (scan_code & 0x7f);
@@ -163,11 +192,15 @@ static int check_keyboard_dock(struct sec_keyboard_callbacks *cb, bool val)
return 0;
}
}
+ /* To block acc_power enable in LPM mode */
+ if ((data->tx_ready != true) && (val == true))
+ return 0 ;
}
- if (!val)
+ if (!val) {
data->dockconnected = false;
- else {
+ data->univ_kbd_dock = false;
+ } else {
cancel_delayed_work_sync(&data->power_dwork);
/* wakeup by keyboard dock */
if (data->pre_connected) {
@@ -304,7 +337,8 @@ static void keyboard_early_suspend(struct early_suspend *early_sus)
msleep(20);
*/
release_all_keys(data);
- sec_keyboard_tx(data, 0x10); /* the idle mode */
+ if (data->univ_kbd_dock == false)
+ sec_keyboard_tx(data, 0x10); /* the idle mode */
}
}
@@ -350,16 +384,19 @@ static int __devinit sec_keyboard_probe(struct platform_device *pdev)
ddata->led_on = false;
ddata->dockconnected = false;
ddata->pre_connected = false;
+ ddata->univ_kbd_dock = false;
ddata->remap_key = 0;
ddata->kl = UNKOWN_KEYLAYOUT;
ddata->callbacks.check_keyboard_dock = check_keyboard_dock;
if (pdata->register_cb)
pdata->register_cb(&ddata->callbacks);
+ ddata->noti_univ_kbd_dock = pdata->noti_univ_kbd_dock;
memcpy(ddata->keycode, sec_keycodes, sizeof(sec_keycodes));
INIT_DELAYED_WORK(&ddata->remap_dwork, sec_keyboard_remapkey);
INIT_DELAYED_WORK(&ddata->power_dwork, sec_keyboard_power);
+ INIT_DELAYED_WORK(&ddata->ack_dwork, sec_keyboard_ack);
platform_set_drvdata(pdev, ddata);
input_set_drvdata(input, ddata);
@@ -443,6 +480,7 @@ err_input_allocate_device:
input_free_device(input);
del_timer_sync(&ddata->remap_dwork.timer);
del_timer_sync(&ddata->power_dwork.timer);
+ del_timer_sync(&ddata->ack_dwork.timer);
err_free_mem:
kfree(ddata);
return error;
diff --git a/drivers/accessory/sec_keyboard.h b/drivers/accessory/sec_keyboard.h
index f5ccf5a24ee..e54ff30e0ef 100644
--- a/drivers/accessory/sec_keyboard.h
+++ b/drivers/accessory/sec_keyboard.h
@@ -18,6 +18,7 @@
#include <linux/slab.h>
#include <linux/30pin_con.h>
#include <linux/serio.h>
+#include <linux/power_supply.h>
#define KEYBOARD_SIZE 128
#define US_KEYBOARD 0xeb
@@ -51,6 +52,7 @@ struct sec_keyboard_drvdata {
struct device *keyboard_dev;
struct delayed_work remap_dwork;
struct delayed_work power_dwork;
+ struct delayed_work ack_dwork;
struct sec_keyboard_callbacks callbacks;
struct serio *serio;
struct serio_driver serio_driver;
@@ -59,16 +61,19 @@ struct sec_keyboard_drvdata {
#endif
void (*acc_power)(u8 token, bool active);
void (*check_uart_path)(bool en);
+ int (*noti_univ_kbd_dock)(unsigned int code);
bool led_on;
bool dockconnected;
bool pre_connected;
bool pressed[KEYBOARD_SIZE];
bool pre_uart_path;
bool tx_ready;
+ bool univ_kbd_dock;
int acc_int_gpio;
unsigned int remap_key;
unsigned int kl;
unsigned int pre_kl;
+ unsigned int ack_code;
unsigned short keycode[KEYBOARD_SIZE];
unsigned long connected_time;
unsigned long disconnected_time;
diff --git a/drivers/irda/ir_remote_con_mc96.c b/drivers/irda/ir_remote_con_mc96.c
index 5c624c8f861..9063137f19f 100644
--- a/drivers/irda/ir_remote_con_mc96.c
+++ b/drivers/irda/ir_remote_con_mc96.c
@@ -32,11 +32,12 @@
#include <linux/device.h>
#include <linux/ir_remote_con_mc96.h>
#include <linux/earlysuspend.h>
-#include <linux/spinlock.h>
#include "irda_fw.h"
+#include <mach/gpio-rev00-p4notepq.h>
#define MAX_SIZE 2048
#define MC96_READ_LENGTH 8
+#define DUMMY 0xffff
#define USE_STOP_MODE
@@ -45,7 +46,6 @@ struct ir_remocon_data {
struct i2c_client *client;
struct mc96_platform_data *pdata;
struct early_suspend early_suspend;
- spinlock_t lock;
char signal[MAX_SIZE];
int length;
int count;
@@ -60,31 +60,45 @@ static void ir_remocon_early_suspend(struct early_suspend *h);
static void ir_remocon_late_resume(struct early_suspend *h);
#endif
+static int count_number;
+static int ack_number;
+static int retry_count;
+static int download_pass;
+
static int irda_fw_update(struct ir_remocon_data *ir_data)
{
struct ir_remocon_data *data = ir_data;
struct i2c_client *client = data->client;
- int i, ret;
+ int i, k, ret, ret2, checksum, checksum2;
u8 buf_ir_test[8];
+ msleep(20);
data->pdata->ir_vdd_onoff(0);
- data->pdata->ir_wake_en(1);
+ msleep(20);
data->pdata->ir_vdd_onoff(1);
+ data->pdata->ir_wake_en(1);
msleep(100);
ret = i2c_master_recv(client, buf_ir_test, MC96_READ_LENGTH);
if (ret < 0) {
- printk(KERN_ERR "1. %s: err %d\n", __func__, ret);
+ printk(KERN_ERR "%s: err %d\n", __func__, ret);
ret = i2c_master_recv(client, buf_ir_test, MC96_READ_LENGTH);
- if (ret < 0)
- goto err_i2c_fail;
+ if (ret < 0) {
+ printk(KERN_INFO "%s: broken FW!\n", __func__);
+ retry_count = 1;
+ }
}
ret = buf_ir_test[2] << 8 | buf_ir_test[3];
- if (ret < FW_VERSION) {
+
+ if (ret == 0xffff)
+ ret = 0x202;
+
+ if ((ret != FW_VERSION) || (retry_count != 0)) {
printk(KERN_INFO "2. %s: chip : %04x, bin : %04x, need update!\n",
__func__, ret, FW_VERSION);
data->pdata->ir_vdd_onoff(0);
data->pdata->ir_wake_en(0);
+ msleep(20);
data->pdata->ir_vdd_onoff(1);
msleep(100);
@@ -94,11 +108,19 @@ static int irda_fw_update(struct ir_remocon_data *ir_data)
ret = buf_ir_test[6] << 8 | buf_ir_test[7];
- if (ret == 0x01fe)
- printk(KERN_INFO "4. %s: boot mode, FW download start\n",
- __func__);
- else
+ checksum = 0;
+
+ for (k = 0; k < 6; k++)
+ checksum += buf_ir_test[k];
+
+ if (ret == checksum)
+ printk(KERN_INFO "%s: boot mode, FW download start! ret=%04x\n",
+ __func__, ret);
+ else {
+ printk(KERN_ERR "ABOV IC bootcode broken\n");
goto err_bootmode;
+ }
+
msleep(30);
for (i = 0; i < FRAME_COUNT; i++) {
@@ -121,41 +143,72 @@ static int irda_fw_update(struct ir_remocon_data *ir_data)
printk(KERN_ERR "5. %s: err %d\n", __func__, ret);
ret = buf_ir_test[6] << 8 | buf_ir_test[7];
+ checksum = 0;
+ for (k = 0; k < 6; k++)
+ checksum += buf_ir_test[k];
+
+ msleep(20);
+
+ ret2 = i2c_master_recv(client, buf_ir_test, MC96_READ_LENGTH);
+ if (ret2 < 0)
+ printk(KERN_ERR "6. %s: err %d\n", __func__, ret2);
+
+ ret2 = buf_ir_test[6] << 8 | buf_ir_test[7];
+ for (k = 0; k < 6; k++)
+ checksum2 += buf_ir_test[k];
- if (ret == 0x02a3)
- printk(KERN_INFO "6. %s: boot down complete\n",
+ if (ret == checksum) {
+ printk(KERN_INFO "1. %s: boot down complete\n",
__func__);
- else
+ download_pass = 1;
+ } else if (ret2 == checksum2) {
+ printk(KERN_INFO "2. %s: boot down complete\n",
+ __func__);
+ download_pass = 1;
+ } else {
+ retry_count++;
+ printk(KERN_ERR "FW Checksum fail. Retry = %d\n",
+ retry_count);
goto err_bootmode;
+ }
data->pdata->ir_vdd_onoff(0);
- data->pdata->ir_wake_en(1);
+ msleep(20);
data->pdata->ir_vdd_onoff(1);
+ data->pdata->ir_wake_en(1);
msleep(60);
ret = i2c_master_recv(client, buf_ir_test, MC96_READ_LENGTH);
ret = buf_ir_test[2] << 8 | buf_ir_test[3];
- printk(KERN_INFO "7. %s: user mode dev: %04x\n", __func__, ret);
+ printk(KERN_INFO "7. %s: user mode : Upgrade FW_version : %04x\n",
+ __func__, ret);
+ data->pdata->ir_wake_en(0);
data->pdata->ir_vdd_onoff(0);
data->on_off = 0;
+ msleep(100);
} else {
- printk(KERN_INFO "8. %s: chip : %04x, bin : %04x, latest FW_version now\n",
+ if (ret != DUMMY)
+ printk(KERN_INFO "8. %s: chip : %04x, bin : %04x, latest FW_ver\n",
__func__, ret, FW_VERSION);
data->pdata->ir_wake_en(0);
data->pdata->ir_vdd_onoff(0);
data->on_off = 0;
+ msleep(100);
+
+ if (ret == FW_VERSION)
+ download_pass = 1;
}
return 0;
-err_i2c_fail:
- printk(KERN_ERR "%s: update fail! i2c ret : %x\n",
- __func__, ret);
err_update:
printk(KERN_ERR "%s: update fail! count : %x, ret = %x\n",
__func__, i, ret);
+ return ret;
err_bootmode:
- printk(KERN_ERR "%s: update fail, ret = %x\n", __func__, ret);
+ printk(KERN_ERR "%s: update fail, checksum = %x ret = %x\n",
+ __func__, checksum, ret);
+ data->pdata->ir_wake_en(0);
data->pdata->ir_vdd_onoff(0);
data->on_off = 0;
return ret;
@@ -165,9 +218,9 @@ static void irda_add_checksum_length(struct ir_remocon_data *ir_data, int count)
{
struct ir_remocon_data *data = ir_data;
int i = 0, csum = 0;
-
+#if 0
printk(KERN_INFO "%s: length: %04x\n", __func__, count);
-
+#endif
data->signal[0] = count >> 8;
data->signal[1] = count & 0xff;
@@ -191,8 +244,8 @@ static int irda_read_device_info(struct ir_remocon_data *ir_data)
int ret;
printk(KERN_INFO"%s called\n", __func__);
- data->pdata->ir_wake_en(1);
data->pdata->ir_vdd_onoff(1);
+ data->pdata->ir_wake_en(1);
msleep(60);
ret = i2c_master_recv(client, buf_ir_test, MC96_READ_LENGTH);
@@ -216,17 +269,22 @@ static void ir_remocon_work(struct ir_remocon_data *ir_data, int count)
struct i2c_client *client = data->client;
int buf_size = count+2;
- int ret, i;
+ int ret;
int sleep_timing;
int end_data;
int emission_time;
- unsigned long flags;
+ int ack_pin_onoff;
+
+ if (count_number >= 100)
+ count_number = 0;
+
+ count_number++;
printk(KERN_INFO "%s: total buf_size: %d\n", __func__, buf_size);
irda_add_checksum_length(data, count);
- spin_lock_irqsave(&data->lock, flags);
+ mutex_lock(&data->mutex);
ret = i2c_master_send(client, data->signal, buf_size);
if (ret < 0) {
@@ -236,24 +294,57 @@ static void ir_remocon_work(struct ir_remocon_data *ir_data, int count)
dev_err(&client->dev, "%s: err2 %d\n", __func__, ret);
}
- spin_unlock_irqrestore(&data->lock, flags);
+ mdelay(10);
+
+ ack_pin_onoff = 0;
+ if (gpio_get_value(GPIO_IRDA_IRQ)) {
+ printk(KERN_INFO "%s : %d Checksum NG!\n",
+ __func__, count_number);
+ ack_pin_onoff = 1;
+ } else {
+ printk(KERN_INFO "%s : %d Checksum OK!\n",
+ __func__, count_number);
+ ack_pin_onoff = 2;
+ }
+ ack_number = ack_pin_onoff;
+
+ mutex_unlock(&data->mutex);
/*
- for (i = 0; i < buf_size; i++) {
+ for (int i = 0; i < buf_size; i++) {
printk(KERN_INFO "%s: data[%d] : 0x%02x\n", __func__, i,
data->signal[i]);
}
*/
data->count = 2;
-
end_data = data->signal[count-2] << 8 | data->signal[count-1];
emission_time = \
(1000 * (data->ir_sum - end_data) / (data->ir_freq)) + 10;
sleep_timing = emission_time - 130;
if (sleep_timing > 0)
msleep(sleep_timing);
+/*
printk(KERN_INFO "%s: sleep_timing = %d\n", __func__, sleep_timing);
+*/
+ emission_time = \
+ (1000 * (data->ir_sum) / (data->ir_freq)) + 50;
+ if (emission_time > 0)
+ msleep(emission_time);
+ printk(KERN_INFO "%s: emission_time = %d\n",
+ __func__, emission_time);
+
+ if (gpio_get_value(GPIO_IRDA_IRQ)) {
+ printk(KERN_INFO "%s : %d Sending IR OK!\n",
+ __func__, count_number);
+ ack_pin_onoff = 4;
+ } else {
+ printk(KERN_INFO "%s : %d Sending IR NG!\n",
+ __func__, count_number);
+ ack_pin_onoff = 2;
+ }
+
+ ack_number += ack_pin_onoff;
#ifndef USE_STOP_MODE
data->pdata->ir_vdd_onoff(0);
data->on_off = 0;
@@ -279,11 +370,12 @@ static ssize_t remocon_store(struct device *dev, struct device_attribute *attr,
data->ir_freq = _data;
if (data->on_off) {
data->pdata->ir_wake_en(0);
+ udelay(200);
data->pdata->ir_wake_en(1);
- msleep(20);
+ msleep(30);
} else {
- data->pdata->ir_wake_en(1);
data->pdata->ir_vdd_onoff(1);
+ data->pdata->ir_wake_en(1);
msleep(60);
data->on_off = 1;
}
@@ -328,7 +420,21 @@ static ssize_t remocon_show(struct device *dev, struct device_attribute *attr,
return strlen(buf);
}
+static ssize_t remocon_ack(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct ir_remocon_data *data = dev_get_drvdata(dev);
+
+ printk(KERN_INFO "%s : ack_number = %d\n", __func__, ack_number);
+
+ if (ack_number == 6)
+ return sprintf(buf, "1\n");
+ else
+ return sprintf(buf, "0\n");
+}
+
static DEVICE_ATTR(ir_send, 0664, remocon_show, remocon_store);
+static DEVICE_ATTR(ir_send_result, 0664, remocon_ack, NULL);
static ssize_t check_ir_show(struct device *dev, struct device_attribute *attr,
char *buf)
@@ -349,9 +455,9 @@ static int __devinit ir_remocon_probe(struct i2c_client *client,
struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
struct ir_remocon_data *data;
struct device *ir_remocon_dev;
- int error;
+ int i, error;
- printk(KERN_INFO "%s probe!\n", __func__);
+ printk(KERN_INFO "%s start!\n", __func__);
if (!i2c_check_functionality(adapter, I2C_FUNC_I2C))
return -EIO;
@@ -366,16 +472,17 @@ static int __devinit ir_remocon_probe(struct i2c_client *client,
data->client = client;
data->pdata = client->dev.platform_data;
- data->pdata->ir_remote_init();
mutex_init(&data->mutex);
data->count = 2;
data->on_off = 0;
i2c_set_clientdata(client, data);
- irda_fw_update(data);
-
- spin_lock_init(&data->lock);
+ for (i = 0; i < 6; i++) {
+ if (download_pass == 1)
+ break;
+ irda_fw_update(data);
+ }
/*
irda_read_device_info(data);
*/
@@ -388,6 +495,10 @@ static int __devinit ir_remocon_probe(struct i2c_client *client,
pr_err("Failed to create device file(%s)!\n",
dev_attr_ir_send.attr.name);
+ if (device_create_file(ir_remocon_dev, &dev_attr_ir_send_result) < 0)
+ pr_err("Failed to create device file(%s)!\n",
+ dev_attr_ir_send.attr.name);
+
if (device_create_file(ir_remocon_dev, &dev_attr_check_ir) < 0)
pr_err("Failed to create device file(%s)!\n",
dev_attr_check_ir.attr.name);
diff --git a/drivers/misc/sec_jack.c b/drivers/misc/sec_jack.c
index df77d33224b..550f894e580 100644
--- a/drivers/misc/sec_jack.c
+++ b/drivers/misc/sec_jack.c
@@ -44,7 +44,7 @@
/* keep this value if you support double-pressed concept */
#if defined(CONFIG_TARGET_LOCALE_KOR)
#define SEND_KEY_CHECK_TIME_MS 20 /* 20ms - GB VOC in KOR*/
-#elif defined(CONFIG_MACH_Q1_BD)
+#elif defined(CONFIG_MACH_Q1_BD) || defined(CONFIG_MACH_P4NOTE)
/* 27ms, total delay is approximately double more
because hrtimer is called twice by gpio input driver,
new sec spec total delay is 60ms +/-10ms */
diff --git a/drivers/power/max17042_fuelgauge_px.c b/drivers/power/max17042_fuelgauge_px.c
index b8f02cbaf1a..1334db0a32a 100644
--- a/drivers/power/max17042_fuelgauge_px.c
+++ b/drivers/power/max17042_fuelgauge_px.c
@@ -387,6 +387,31 @@ static int fg_read_soc(void)
return soc;
}
+static int fg_read_raw_soc(void)
+{
+ struct i2c_client *client = fg_i2c_client;
+ struct max17042_chip *chip = i2c_get_clientdata(client);
+ u8 data[2];
+ u32 soc_lsb = 0;
+ int psoc = 0;
+
+ if (fg_i2c_read(client, SOCREP_REG, data, 2) < 0) {
+ pr_err("%s: Failed to read SOCREP\n", __func__);
+ return -1;
+ }
+
+ soc_lsb = (data[0] * 100) / 256;
+ psoc = (data[1] * 100) + soc_lsb;
+ chip->info.psoc = psoc;
+
+ if (!(chip->info.pr_cnt % PRINT_COUNT))
+ pr_info("%s: psoc(%d), vfsoc(%d)\n", __func__,
+ psoc, fg_read_vfsoc());
+
+ return psoc;
+}
+
+
static int fg_read_current(void)
{
struct i2c_client *client = fg_i2c_client;
@@ -907,6 +932,27 @@ void fg_check_vf_fullcap_range(void)
fg_read_register(DPACC_REG));
}
+int fg_check_cap_corruption_p4(void)
+{
+
+ struct i2c_client *client = fg_i2c_client;
+ struct max17042_chip *chip = i2c_get_clientdata(client);
+
+ int designcap;
+
+ /* If usgin Jig or low batt compensation flag is set,
+ then skip checking. */
+ if (chip->pdata->check_jig_status()) {
+ fg_write_register(DESIGNCAP_REG, chip->info.vfcapacity - 1);
+ designcap = fg_read_register(DESIGNCAP_REG);
+ pr_info("%s: return by jig, vfcap(0x%04x), designcap(0x%04x)\n",
+ __func__, chip->info.vfcapacity, designcap);
+ return 0;
+ } else
+ return 1;
+}
+
+
int fg_check_cap_corruption(void)
{
struct i2c_client *client = fg_i2c_client;
@@ -1621,6 +1667,9 @@ int get_fuelgauge_value(int data)
ret = fg_read_voltage_now();
break;
+ case FG_RAW_LEVEL:
+ ret = fg_read_raw_soc();
+ break;
default:
ret = -1;
break;
diff --git a/drivers/power/sec_battery_px.c b/drivers/power/sec_battery_px.c
index 4787c9d3ca6..0a31772c22f 100644
--- a/drivers/power/sec_battery_px.c
+++ b/drivers/power/sec_battery_px.c
@@ -1043,11 +1043,12 @@ static int sec_bat_get_charging_status(struct battery_data *battery)
{
switch (battery->info.charging_source) {
case CHARGER_BATTERY:
- case CHARGER_USB:
+ //case CHARGER_USB:
return POWER_SUPPLY_STATUS_DISCHARGING;
case CHARGER_AC:
case CHARGER_MISC:
case CHARGER_DOCK:
+ case CHARGER_USB:
if (battery->info.batt_is_full)
return POWER_SUPPLY_STATUS_FULL;
else if (battery->info.batt_improper_ta)
diff --git a/drivers/sensor/lsm330dlc_accel.c b/drivers/sensor/lsm330dlc_accel.c
index 5f228c788a0..430ef85df43 100644
--- a/drivers/sensor/lsm330dlc_accel.c
+++ b/drivers/sensor/lsm330dlc_accel.c
@@ -1045,15 +1045,25 @@ static int lsm330dlc_accel_probe(struct i2c_client *client,
{
struct lsm330dlc_accel_data *data;
struct accel_platform_data *pdata;
- int err = 0;
+ int err = 0, retry;
+ int probe_retry_max = 3;
accel_dbgmsg("is started\n");
- if (!i2c_check_functionality(client->adapter,
- I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
- I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
- pr_err("%s: i2c functionality check failed!\n", __func__);
- err = -ENODEV;
- goto exit;
+probe_retry:
+ for (retry = 0; retry < 5; retry++) {
+ if (!i2c_check_functionality(client->adapter,
+ I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
+ I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
+ pr_err("%s: i2c functionality failed!\n", __func__);
+
+ if (retry == 4) {
+ err = -ENODEV;
+ goto exit;
+ }
+ i2c_smbus_write_byte_data(client, CTRL_REG1, PM_OFF);
+ mdelay(2);
+ } else
+ break;
}
data = kzalloc(sizeof(struct lsm330dlc_accel_data), GFP_KERNEL);
@@ -1315,6 +1325,12 @@ err_misc_register:
err_read_reg:
kfree(data);
exit:
+ if (probe_retry_max > 0) {
+ pr_err("%s: Failed to probe..(%d try left)\n",
+ __func__, probe_retry_max);
+ probe_retry_max--;
+ goto probe_retry;
+ }
return err;
}
diff --git a/drivers/sensor/sensors_core.c b/drivers/sensor/sensors_core.c
index e003652ea8a..1813b9978cb 100644
--- a/drivers/sensor/sensors_core.c
+++ b/drivers/sensor/sensors_core.c
@@ -26,7 +26,6 @@ struct class *sensors_class;
* sensors_classdev_register - create new sensor device in sensors_class.
* @dev: The device to register.
*/
-
static void set_sensor_attr(struct device *dev,
struct device_attribute *attributes[])
{
diff --git a/drivers/video/samsung/s3cfb_s6c1372.c b/drivers/video/samsung/s3cfb_s6c1372.c
index 4d23708005e..1b0178595ca 100644
--- a/drivers/video/samsung/s3cfb_s6c1372.c
+++ b/drivers/video/samsung/s3cfb_s6c1372.c
@@ -74,7 +74,7 @@ static ssize_t lcdtype_show(struct device *dev,
sprintf(temp, "SMD_S6F1202A02\n");
#else
/*For p4*/
- sprintf(temp, "SMD_S6C1372\n");
+ sprintf(temp, "SEC_LTL101AL01-002/003\n");
#endif
strcat(buf, temp);
return strlen(buf);
diff --git a/include/linux/30pin_con.h b/include/linux/30pin_con.h
index 9e3a4c136f9..b3561557800 100644
--- a/include/linux/30pin_con.h
+++ b/include/linux/30pin_con.h
@@ -26,10 +26,16 @@ struct sec_keyboard_platform_data {
int (*wakeup_key)(void);
void (*check_uart_path)(bool en);
void (*acc_power)(u8 token, bool active);
+ int (*noti_univ_kbd_dock)(unsigned int code);
void (*register_cb)(struct sec_keyboard_callbacks *cb);
};
#endif
+struct sec_30pin_callbacks {
+ int (*noti_univ_kdb_dock)(struct sec_30pin_callbacks *cb,
+ unsigned int code);
+};
+
struct acc_con_platform_data {
void (*otg_en) (int active);
void (*acc_power) (u8 token, bool active);
@@ -37,6 +43,7 @@ struct acc_con_platform_data {
int (*get_acc_state)(void);
int (*get_dock_state)(void);
int (*check_keyboard)(bool attached);
+ void (*register_cb)(struct sec_30pin_callbacks *cb);
int accessory_irq_gpio;
int dock_irq_gpio;
int mhl_irq_gpio;
@@ -48,6 +55,10 @@ u16 stmpe811_get_adc_data(u8 channel);
#endif
extern struct device *sec_switch_dev;
+#ifdef CONFIG_MACH_P4NOTE
+extern void host_notifier_enable_irq(void);
+extern void host_notifier_disable_irq(void);
+#endif
#ifdef CONFIG_SAMSUNG_MHL_9290
int acc_register_notifier(struct notifier_block *nb);
#endif
diff --git a/include/linux/battery/sec_battery.h b/include/linux/battery/sec_battery.h
index 4c57e62d3f1..70a5c509ea2 100644
--- a/include/linux/battery/sec_battery.h
+++ b/include/linux/battery/sec_battery.h
@@ -99,7 +99,8 @@ struct sec_battery_info {
/* event set */
unsigned int event;
unsigned int event_wait;
- struct timer_list event_expired_timer;
+ struct alarm event_termination_alarm;
+ ktime_t last_event_time;
/* battery check */
unsigned int check_count;
@@ -130,13 +131,16 @@ struct sec_battery_info {
/* charging */
unsigned int charging_mode;
int cable_type;
+ int extended_cable_type;
struct wake_lock cable_wake_lock;
struct work_struct cable_work;
struct wake_lock vbus_wake_lock;
unsigned int full_check_cnt;
+ unsigned int recharge_check_cnt;
/* test mode */
bool test_activated;
+ bool factory_mode;
};
static char *supply_list[] = {
@@ -192,10 +196,14 @@ static struct device_attribute sec_battery_attrs[] = {
SEC_BATTERY_ATTR(batt_charging_source),
SEC_BATTERY_ATTR(fg_reg_dump),
SEC_BATTERY_ATTR(fg_reset_cap),
+ SEC_BATTERY_ATTR(fg_capacity),
SEC_BATTERY_ATTR(auth),
SEC_BATTERY_ATTR(chg_current_adc),
SEC_BATTERY_ATTR(wc_adc),
SEC_BATTERY_ATTR(wc_status),
+ SEC_BATTERY_ATTR(factory_mode),
+ SEC_BATTERY_ATTR(update),
+ SEC_BATTERY_ATTR(test_mode),
SEC_BATTERY_ATTR(2g_call),
SEC_BATTERY_ATTR(3g_call),
@@ -232,10 +240,14 @@ enum {
BATT_CHARGING_SOURCE,
FG_REG_DUMP,
FG_RESET_CAP,
+ FG_CAPACITY,
AUTH,
CHG_CURRENT_ADC,
WC_ADC,
WC_STATUS,
+ FACTORY_MODE,
+ UPDATE,
+ TEST_MODE,
BATT_EVENT_2G_CALL,
BATT_EVENT_3G_CALL,
diff --git a/include/linux/mdm_hsic_pm.h b/include/linux/mdm_hsic_pm.h
index 63880748363..ce035dc7e52 100644
--- a/include/linux/mdm_hsic_pm.h
+++ b/include/linux/mdm_hsic_pm.h
@@ -15,6 +15,8 @@ void set_host_stat(const char *name, enum pwr_stat status);
int wait_dev_pwr_stat(const char *name, enum pwr_stat status);
int check_udev_suspend_allowed(const char *name);
bool check_request_blocked(const char *name);
+int pm_dev_runtime_get_enabled(struct usb_device *udev);
+int pm_dev_wait_lpa_wake(void);
/*add wakelock interface for fast dormancy*/
#ifdef CONFIG_HAS_WAKELOCK
@@ -39,7 +41,11 @@ int register_udev_to_pm_dev(const char *name, struct usb_device *udev);
*/
void unregister_udev_from_pm_dev(const char *name, struct usb_device *udev);
+int set_qmicm_mode(const char *name);
+
extern struct blocking_notifier_head mdm_reset_notifier_list;
extern void mdm_force_fatal(void);
+extern void print_mdm_gpio_state(void);
extern bool lpa_handling;
+extern int hello_packet_rx;
#endif /* __MDM_HSIC_PM_H__ */
diff --git a/include/linux/msm_charm.h b/include/linux/msm_charm.h
index 3695643a13c..4767c41de6e 100644
--- a/include/linux/msm_charm.h
+++ b/include/linux/msm_charm.h
@@ -16,6 +16,10 @@
#define GET_FORCE_RAMDUMP _IOW(CHARM_CODE, 11, int)
#define WAIT_FOR_ERROR _IOW(CHARM_CODE, 12, int)
+#ifdef CONFIG_SIM_DETECT
+#define GET_SIM_DETECT _IOW(CHARM_CODE, 13, int)
+#endif
+
enum charm_boot_type {
CHARM_NORMAL_BOOT = 0,
CHARM_RAM_DUMPS,
diff --git a/include/linux/power/max17042_fuelgauge_px.h b/include/linux/power/max17042_fuelgauge_px.h
index 11e8ce88ad9..c618e4d7394 100644
--- a/include/linux/power/max17042_fuelgauge_px.h
+++ b/include/linux/power/max17042_fuelgauge_px.h
@@ -61,6 +61,7 @@
#define FG_CHECK_STATUS 6
#define FG_VF_SOC 7
#define FG_VOLTAGE_NOW 8
+#define FG_RAW_LEVEL 9
#define LOW_BATT_COMP_RANGE_NUM 5
#define LOW_BATT_COMP_LEVEL_NUM 2
@@ -375,6 +376,7 @@ extern int fg_alert_init(void);
extern void fg_fullcharged_compensation(u32 is_recharging, u32 pre_update);
extern void fg_check_vf_fullcap_range(void);
extern int fg_check_cap_corruption(void);
+extern int fg_check_cap_corruption_p4(void);
extern void fg_set_full_charged(void);
extern void fg_reset_fullcap_in_fullcharge(void);
#endif
diff --git a/include/linux/power/smb347_charger.h b/include/linux/power/smb347_charger.h
index 0c350693362..b8a197426be 100755
--- a/include/linux/power/smb347_charger.h
+++ b/include/linux/power/smb347_charger.h
@@ -24,6 +24,9 @@ struct smb_charger_callbacks {
void (*set_charging_current) (int);
int (*get_charging_current) (void);
int (*get_charger_is_full) (void);
+ int (*get_aicl_current)(void);
+ int (*get_input_current)(void);
+ void (*set_aicl_state)(int);
};
struct smb_charger_data {
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 7a1653e1d27..566002ba94a 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -176,6 +176,7 @@ enum online_sub_type {
ONLINE_SUB_TYPE_DESK,
ONLINE_SUB_TYPE_SMART_NOTG,
ONLINE_SUB_TYPE_SMART_OTG,
+ ONLINE_SUB_TYPE_KBD,
};
enum online_power_type {