From 8dc5f7b60538d8deced299dd9c3b55a2d5fa486b Mon Sep 17 00:00:00 2001 From: tytung Date: Tue, 14 Feb 2012 23:59:06 +0800 Subject: [PATCH] arm: removed some unnecessary files. --- arch/arm/configs/htcleo_hastarinconfig | 1913 ------------------- arch/arm/configs/supersonic_defconfig | 1785 ----------------- arch/arm/configs/swordfish_defconfig | 1367 ------------- arch/arm/mach-msm/board-halibut-keypad.c | 177 -- arch/arm/mach-msm/board-halibut-panel.c | 73 - arch/arm/mach-msm/board-halibut.c | 482 ----- arch/arm/mach-msm/board-halibut.h | 20 - arch/arm/mach-msm/board-supersonic-audio.c | 320 ---- arch/arm/mach-msm/board-supersonic-keypad.c | 96 - arch/arm/mach-msm/board-supersonic-microp.c | 437 ----- arch/arm/mach-msm/board-supersonic-mmc.c | 464 ----- arch/arm/mach-msm/board-supersonic-panel.c | 921 --------- arch/arm/mach-msm/board-supersonic-rfkill.c | 357 ---- arch/arm/mach-msm/board-supersonic-wifi.c | 219 --- arch/arm/mach-msm/board-supersonic.c | 1579 --------------- arch/arm/mach-msm/board-supersonic.h | 196 -- arch/arm/mach-msm/board-swordfish-keypad.c | 177 -- arch/arm/mach-msm/board-swordfish-mmc.c | 263 --- arch/arm/mach-msm/board-swordfish-panel.c | 116 -- arch/arm/mach-msm/board-swordfish.c | 365 ---- arch/arm/mach-msm/board-swordfish.h | 48 - arch/arm/mach-msm/board-trout-gpio.c | 305 --- arch/arm/mach-msm/board-trout-keypad.c | 345 ---- arch/arm/mach-msm/board-trout-mmc.c | 438 ----- arch/arm/mach-msm/board-trout-panel.c | 642 ------- arch/arm/mach-msm/board-trout-rfkill.c | 101 - arch/arm/mach-msm/board-trout-wifi.c | 74 - arch/arm/mach-msm/board-trout.c | 869 --------- arch/arm/mach-msm/board-trout.h | 162 -- arch/arm/mach-msm/devices_htc.c | 504 ----- arch/arm/mach-msm/fish_battery.c | 145 -- 31 files changed, 14960 deletions(-) delete mode 100644 arch/arm/configs/htcleo_hastarinconfig delete mode 100644 arch/arm/configs/supersonic_defconfig delete mode 100644 arch/arm/configs/swordfish_defconfig delete mode 100644 arch/arm/mach-msm/board-halibut-keypad.c delete mode 100644 arch/arm/mach-msm/board-halibut-panel.c delete mode 100644 arch/arm/mach-msm/board-halibut.c delete mode 100644 arch/arm/mach-msm/board-halibut.h delete mode 100644 arch/arm/mach-msm/board-supersonic-audio.c delete mode 100644 arch/arm/mach-msm/board-supersonic-keypad.c delete mode 100644 arch/arm/mach-msm/board-supersonic-microp.c delete mode 100644 arch/arm/mach-msm/board-supersonic-mmc.c delete mode 100644 arch/arm/mach-msm/board-supersonic-panel.c delete mode 100644 arch/arm/mach-msm/board-supersonic-rfkill.c delete mode 100644 arch/arm/mach-msm/board-supersonic-wifi.c delete mode 100644 arch/arm/mach-msm/board-supersonic.c delete mode 100644 arch/arm/mach-msm/board-supersonic.h delete mode 100644 arch/arm/mach-msm/board-swordfish-keypad.c delete mode 100644 arch/arm/mach-msm/board-swordfish-mmc.c delete mode 100644 arch/arm/mach-msm/board-swordfish-panel.c delete mode 100644 arch/arm/mach-msm/board-swordfish.c delete mode 100644 arch/arm/mach-msm/board-swordfish.h delete mode 100644 arch/arm/mach-msm/board-trout-gpio.c delete mode 100644 arch/arm/mach-msm/board-trout-keypad.c delete mode 100644 arch/arm/mach-msm/board-trout-mmc.c delete mode 100644 arch/arm/mach-msm/board-trout-panel.c delete mode 100644 arch/arm/mach-msm/board-trout-rfkill.c delete mode 100644 arch/arm/mach-msm/board-trout-wifi.c delete mode 100644 arch/arm/mach-msm/board-trout.c delete mode 100644 arch/arm/mach-msm/board-trout.h delete mode 100644 arch/arm/mach-msm/devices_htc.c delete mode 100644 arch/arm/mach-msm/fish_battery.c diff --git a/arch/arm/configs/htcleo_hastarinconfig b/arch/arm/configs/htcleo_hastarinconfig deleted file mode 100644 index a4e0a7b4..00000000 --- a/arch/arm/configs/htcleo_hastarinconfig +++ /dev/null @@ -1,1913 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.15 -# Tue Nov 23 19:43:29 2010 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_HARDIRQS=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_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPUFREQ=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="r8.5" -CONFIG_LOCALVERSION_AUTO=y -# CONFIG_SWAP is not set -# CONFIG_SYSVIPC is not set -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set -# 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_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_GROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_RT_GROUP_SCHED=y -# CONFIG_USER_SCHED is not set -CONFIG_CGROUP_SCHED=y -CONFIG_CGROUPS=y -CONFIG_CGROUP_DEBUG=y -# CONFIG_CGROUP_NS is not set -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_SYSFS_DEPRECATED_V2 is not set -# CONFIG_RELAY is not set -# CONFIG_NAMESPACES is not set -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_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_PANIC_TIMEOUT=20 -CONFIG_EMBEDDED=y -CONFIG_UID16=y -# CONFIG_SYSCTL_SYSCALL is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -# CONFIG_ELF_CORE is not set -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=y - -# -# Kernel Performance Events And Counters -# -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_COMPAT_BRK=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y - -# -# GCOV-based kernel profiling -# -CONFIG_SLOW_WORK=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -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_AS is not set -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_FREEZER=y - -# -# System Type -# -CONFIG_MMU=y -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS711X 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_STMP3XXX is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_NOMADIK 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_L7200 is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LOKI 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_NS9XXX is not set -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set -CONFIG_ARCH_MSM=y -# 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_S5PC1XX is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_MSM7X00A is not set -# CONFIG_ARCH_MSM7225 is not set -# CONFIG_ARCH_MSM7227 is not set -# CONFIG_ARCH_MSM7X30 is not set -CONFIG_ARCH_QSD8X50=y -CONFIG_ARCH_MSM_SCORPION=y -CONFIG_MSM_MDP31=y -# CONFIG_PERFLOCK is not set -CONFIG_MSM_AMSS_VERSION=1550 -# CONFIG_MSM_AMSS_VERSION_6210 is not set -# CONFIG_MSM_AMSS_VERSION_6220 is not set -# CONFIG_MSM_AMSS_VERSION_6225 is not set -# CONFIG_MSM_AMSS_VERSION_6350 is not set -# CONFIG_MSM_AMSS_VERSION_6355 is not set -# CONFIG_MSM_AMSS_VERSION_1355 is not set -# CONFIG_MSM_AMSS_VERSION_4725 is not set -# CONFIG_MSM_AMSS_VERSION_4735 is not set -# CONFIG_MSM_AMSS_VERSION_4410 is not set -# CONFIG_MSM_AMSS_VERSION_3200 is not set -# CONFIG_MSM_AMSS_VERSION_1170 is not set -# CONFIG_MSM_AMSS_VERSION_1200 is not set -CONFIG_MSM_AMSS_VERSION_1550=y -CONFIG_MSM_DEBUG_UART_NONE=y -# CONFIG_MSM_DEBUG_UART1 is not set -# CONFIG_MSM_DEBUG_UART2 is not set -# CONFIG_MSM_DEBUG_UART3 is not set - -# -# MSM Board Type -# -# CONFIG_MACH_SWORDFISH is not set -# CONFIG_MACH_ORCA is not set -# CONFIG_MACH_MAHIMAHI is not set -# CONFIG_MACH_BRAVO is not set -CONFIG_MACH_HTCLEO=y -# CONFIG_HTCLEO_BLINK_AT_BOOT is not set -# CONFIG_MACH_PASSIONC is not set -# CONFIG_MACH_BRAVOC is not set -# CONFIG_MACH_INCREDIBLE is not set -# CONFIG_MACH_INCREDIBLEC is not set -# CONFIG_MACH_SUPERSONIC is not set -CONFIG_HTC_BATTCHG=y -# CONFIG_HTC_BATTCHG_SMEM is not set -# CONFIG_HTC_PWRSINK is not set -CONFIG_HTC_SLEEP_MODE_GPIO_DUMP=y -# CONFIG_HTC_POWER_COLLAPSE_MAGIC is not set -# CONFIG_SMEM_RPC_SERVER_STATE is not set -# CONFIG_BUILD_OMA_DM is not set -CONFIG_CACHE_FLUSH_RANGE_LIMIT=0x40000 -CONFIG_MSM7X00A_USE_GP_TIMER=y -# CONFIG_MSM7X00A_USE_DG_TIMER is not set -CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y -# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set -# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set -# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set -# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set -CONFIG_MSM7X00A_SLEEP_MODE=0 -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set -CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set -CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1 -CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=50000000 -CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000 -CONFIG_MSM7X00A_SLEEP_NO_LIMIT=y -# CONFIG_MSM7X00A_SLEEP_LIMITED_SLEEP is not set -# CONFIG_MSM7X00A_SLEEP_NEGATE_SLEEP is not set -CONFIG_MSM7X00A_SLEEP_LIMIT=0 -CONFIG_MSM7X00A_IDLE_SLEEP_NO_LIMIT=y -# CONFIG_MSM7X00A_IDLE_SLEEP_LIMITED_SLEEP is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_NEGATE_SLEEP is not set -CONFIG_MSM7X00A_IDLE_SLEEP_LIMIT=0 -CONFIG_MSM_IDLE_STATS=y -CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500 -CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2 -CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10 -CONFIG_MSM_FIQ_SUPPORT=y -# CONFIG_MSM_SERIAL_DEBUGGER is not set -CONFIG_MSM_SMD=y -CONFIG_MSM_N_WAY_SMD=y -CONFIG_MSM_ONCRPCROUTER=y -CONFIG_MSM_RPCSERVERS=y -# CONFIG_MSM_RMT_STORAGE_SERVER is not set -# CONFIG_MSM_DALRPC is not set -# CONFIG_MSM_CPU_FREQ_SCREEN is not set -CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=998400 -CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=245000 -# CONFIG_MSM_HW3D is not set -# CONFIG_HTC_ACOUSTIC is not set -# CONFIG_HTC_ACOUSTIC_QSD is not set -CONFIG_WIFI_CONTROL_FUNC=y -CONFIG_WIFI_MEM_PREALLOC=y -CONFIG_WIFI_NVS_PROC_CREATE=y -# CONFIG_MMC_SUPPORT_EXTERNEL_DRIVER is not set -# CONFIG_MMC_BUSCLK_PWRSAVE is not set -# CONFIG_VIRTUAL_KPANIC_PARTITION is not set -CONFIG_QSD_AUDIO=y -CONFIG_QSD_HTC_FM=y -CONFIG_ARCH_MSM_FLASHLIGHT=y -# CONFIG_MICROP_COMMON is not set -CONFIG_HTC_HEADSET_MGR=y -# CONFIG_HTC_HEADSET_H2W is not set -CONFIG_HTC_HEADSET_GPIO=y -# CONFIG_HTC_HEADSET_PMIC is not set -# CONFIG_BUILD_CIQ is not set -CONFIG_SMD_OFFSET_TCXO_STAT=0x0 -# CONFIG_AXI_SCREEN_POLICY is not set -# CONFIG_MSM_NPA is not set -CONFIG_PHYS_OFFSET=0x11800000 -CONFIG_HTCLEO_CPU_VOLT=y -# CONFIG_HTCLEO_UNDERVOLT_1000 is not set -# CONFIG_HTCLEO_UNDERVOLT_925 is not set -# CONFIG_HTCLEO_UNDERVOLT_800 is not set -CONFIG_HTCLEO_NO_UNDERVOLT=y -CONFIG_HTCLEO_OVERCLOCK=y -# CONFIG_HTCLEO_EXOVERCLOCK is not set -# CONFIG_HTC_FB_CONSOLE is not set -CONFIG_VERY_EARLY_CONSOLE=y -CONFIG_HTCLEO_ENABLE_MULTI_TOUCH=y -CONFIG_HTCLEO_KEYMAP_ANDROID=y -# CONFIG_HTCLEO_KEYMAP_DPAD is not set -CONFIG_HTCLEO_BACKLIGHT_LED=y -# CONFIG_HTCLEO_BACKLIGHT is not set - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_V7=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_VERIFY_PERMISSION_FAULT=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -CONFIG_ARM_THUMBEE=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_HAS_TLS_REG=y -CONFIG_ARM_L1_CACHE_SHIFT=5 -# CONFIG_ARM_ERRATA_430973 is not set -# CONFIG_ARM_ERRATA_458693 is not set -# CONFIG_ARM_ERRATA_460075 is not set - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -# CONFIG_PREEMPT_NONE is not set -# CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -CONFIG_HZ=100 -# 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_HIGHMEM=y -# CONFIG_HIGHPTE is not set -CONFIG_VMALLOC_RESERVE=0x28000000 -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ALIGNMENT_TRAP=y -# CONFIG_UACCESS_WITH_MEMCPY is not set - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set - -# -# CPU Power Management -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y -# 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_SMARTASS=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set -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_INTERACTIVE=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_VDD_LEVELS=y -CONFIG_CPU_FREQ_GOV_SMARTASS=y -CONFIG_CPU_FREQ_MIN_TICKS=10 -# CONFIG_CPU_IDLE is not set - -# -# 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_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_TRACE=y -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -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_APM_EMULATION is not set -# CONFIG_PM_RUNTIME is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -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 is not set -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -# CONFIG_IP_ROUTE_MULTIPATH is not set -CONFIG_IP_ROUTE_VERBOSE=y -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -CONFIG_NET_IPGRE=y -# 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=y -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=y -CONFIG_IPV6_SIT=y -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=y -CONFIG_IPV6_MULTIPLE_TABLES=y -CONFIG_IPV6_SUBTREES=y -CONFIG_IPV6_MROUTE=y -CONFIG_IPV6_PIMSM_V2=y -CONFIG_ANDROID_PARANOID_NETWORK=y -# CONFIG_NETWORK_SECMARK 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_CT_ACCT=y -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -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_NETBIOS_NS=y -CONFIG_NF_CONNTRACK_PPTP=y -CONFIG_NF_CONNTRACK_SANE=y -CONFIG_NF_CONNTRACK_SIP=y -CONFIG_NF_CONNTRACK_TFTP=y -CONFIG_NF_CT_NETLINK=y -CONFIG_NETFILTER_XTABLES=y -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y -CONFIG_NETFILTER_XT_TARGET_CONNMARK=y -CONFIG_NETFILTER_XT_TARGET_LED=y -CONFIG_NETFILTER_XT_TARGET_MARK=y -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS 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_DCCP 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_OWNER=y -CONFIG_NETFILTER_XT_MATCH_POLICY=y -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y -CONFIG_NETFILTER_XT_MATCH_QUOTA=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_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_NETFILTER_XT_MATCH_OSF 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_ADDRTYPE=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_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_SNMP_BASIC is not set -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=y -# CONFIG_IP_NF_MANGLE is not set -# CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_NF_RAW is not set -CONFIG_IP_NF_ARPTABLES=y -CONFIG_IP_NF_ARPFILTER=y -CONFIG_IP_NF_ARP_MANGLE=y - -# -# IPv6: Netfilter Configuration -# -# CONFIG_NF_CONNTRACK_IPV6 is not set -# CONFIG_IP6_NF_QUEUE is not set -# CONFIG_IP6_NF_IPTABLES is not set -# 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_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 is not set -# 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_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_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=y -# 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_CLS_IND is not set -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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_HCIBTSDIO is not set -CONFIG_BT_HCIUART=y -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_BCSP is not set -CONFIG_BT_HCIUART_LL=y -# CONFIG_BT_HCIVHCI is not set -# CONFIG_BT_MRVL is not set -# CONFIG_AF_RXRPC is not set -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -# CONFIG_CFG80211 is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -# CONFIG_LIB80211 is not set - -# -# CFG80211 needs to be enabled for MAC80211 -# -# CONFIG_WIMAX is not set -CONFIG_RFKILL=y -CONFIG_RFKILL_PM=y -CONFIG_RFKILL_LEDS=y -# CONFIG_RFKILL_INPUT is not set -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="" -# 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_SYS_HYPERVISOR is not set -CONFIG_CONNECTOR=y -CONFIG_PROC_EVENTS=y -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_MSM_NAND is not set -CONFIG_MTD_HTCLEO_NAND=y -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SST25L is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -CONFIG_MTD_NAND_IDS=y -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -# CONFIG_MTD_LPDDR is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI 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 -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_MG_DISK is not set -CONFIG_MISC_DEVICES=y -CONFIG_ANDROID_PMEM=y -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -CONFIG_KERNEL_DEBUGGER_CORE=y -# CONFIG_ISL29003 is not set -CONFIG_UID_STAT=y -# CONFIG_WL127X_RFKILL is not set -CONFIG_APANIC=y -CONFIG_APANIC_PLABEL="kpanic" -CONFIG_SENSORS_BMA150_SPI=y -# 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_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_DMA is not set -# CONFIG_SCSI_NETLINK 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_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_UEVENT is not set -CONFIG_NETDEVICES=y -CONFIG_IFB=y -CONFIG_DUMMY=y -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -CONFIG_TUN=m -# CONFIG_VETH is not set -# CONFIG_NET_ETHERNET is not set -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETDEV_10000 is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set -CONFIG_BCM4329=m -CONFIG_BCM4329_SOFTAP=y -CONFIG_BCM4329_FW_PATH="/system/etc/firmware/fw_bcm4329.bin" -CONFIG_BCM4329_NVRAM_PATH="/proc/calibration" - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# -# CONFIG_WAN is not set -CONFIG_PPP=y -# CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=y -# 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_PPPOL2TP is not set -CONFIG_PPPOLAC=y -CONFIG_PPPOPNS=y -# CONFIG_SLIP is not set -CONFIG_SLHC=y -# CONFIG_NETCONSOLE is not set -# CONFIG_MSM_RMNET is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_KINETO_GAN is not set -# CONFIG_ISDN is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set -CONFIG_INPUT_KEYRESET=y - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD 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_ATMEL is not set -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_AD7877 is not set -# CONFIG_TOUCHSCREEN_AD7879_I2C is not set -# CONFIG_TOUCHSCREEN_AD7879_SPI is not set -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_CYPRESS_TMG is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELAN_I2C_8232 is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_MCS5000 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_MSM is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set -# CONFIG_TOUCHSCREEN_COMPATIBLE_REPORT is not set -# CONFIG_TOUCHSCREEN_CONCATENATE_REPORT is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_T1021 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_TSC2007 is not set -CONFIG_INPUT_MISC=y -# 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_GPIO_ROTARY_ENCODER is not set -# CONFIG_INPUT_CAPELLA_CM3602 is not set -# CONFIG_LIGHTSENSOR_SMD is not set -# CONFIG_INPUT_DUMMY_KEYPAD is not set -# CONFIG_INPUT_OPTICALJOYSTICK is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_DEVMEM=y -CONFIG_DEVKMEM=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -# CONFIG_SERIAL_MAX3100 is not set -CONFIG_SERIAL_CORE=y -# CONFIG_SERIAL_MSM is not set -CONFIG_SERIAL_MSM_HS=y -# CONFIG_SERIAL_MSM_HS_PURE_ANDROID is not set -CONFIG_SERIAL_BCM_BT_LPM=y -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM 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_I2C=y -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_COMPAT is not set -# CONFIG_I2C_CHARDEV is not set -CONFIG_I2C_HELPER_AUTO=y - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_GPIO is not set -CONFIG_I2C_MSM=y -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_SIMTEC is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_TAOS_EVM is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_STUB is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_DS1682 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_AKM8976 is not set -CONFIG_SENSORS_AKM8973=y -# CONFIG_SENSORS_AKM8975 is not set -# CONFIG_TPS65200 is not set -# CONFIG_SENSORS_BMA150 is not set -# CONFIG_SENSORS_PCA963X is not set -# CONFIG_SENSORS_MT9T013 is not set -# CONFIG_VP_A1026 is not set -# CONFIG_AMP_TPA6130A is not set -# CONFIG_AMP_TPA2018D1 is not set -# CONFIG_AMP_TPA2051D3 is not set -# CONFIG_INPUT_ISL29028 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_I2C_DEBUG_CHIP is not set -CONFIG_SPI=y -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_GPIO is not set -CONFIG_SPI_QSD=y -# CONFIG_SPI_QSD_NEW is not set - -# -# SPI Protocol Masters -# -# CONFIG_SPI_SPIDEV is not set -# CONFIG_SPI_TLE62X0 is not set - -# -# PPS support -# -# CONFIG_PPS is not set -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_GPIO_SYSFS is not set - -# -# Memory mapped GPIO expanders: -# - -# -# I2C GPIO expanders: -# -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_GPIO_PCF857X 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 - -# -# AC97 GPIO expanders: -# -# CONFIG_W1 is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_DS2784 is not set -CONFIG_BATTERY_DS2746=y -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_HWMON is not set -# CONFIG_THERMAL is not set -# CONFIG_WATCHDOG is not set -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -# CONFIG_SSB is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_CORE 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_TPS65010 is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM831X is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_MC13783 is not set -# CONFIG_AB3100_CORE is not set -# CONFIG_EZX_PCAP is not set -CONFIG_REGULATOR=y -CONFIG_REGULATOR_DEBUG=y -# CONFIG_REGULATOR_FIXED_VOLTAGE is not set -# 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_LP3971 is not set -CONFIG_REGULATOR_TPS65023=y -# CONFIG_REGULATOR_TPS6507X is not set -CONFIG_MEDIA_SUPPORT=y - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L2_COMMON=y -CONFIG_VIDEO_ALLOW_V4L1=y -CONFIG_VIDEO_V4L1_COMPAT=y -# CONFIG_DVB_CORE is not set -CONFIG_VIDEO_MEDIA=y - -# -# Multimedia drivers -# -# CONFIG_MEDIA_ATTACH is not set -CONFIG_MEDIA_TUNER=y -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=y -CONFIG_MEDIA_TUNER_TDA8290=y -CONFIG_MEDIA_TUNER_TDA9887=y -CONFIG_MEDIA_TUNER_TEA5761=y -CONFIG_MEDIA_TUNER_TEA5767=y -CONFIG_MEDIA_TUNER_MT20XX=y -CONFIG_MEDIA_TUNER_XC2028=y -CONFIG_MEDIA_TUNER_XC5000=y -CONFIG_MEDIA_TUNER_MC44S803=y -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEO_V4L1=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_SOC_CAMERA is not set - -# -# Qualcomm MSM Camera And Video -# -CONFIG_MSM_CAMERA=y -CONFIG_MSM_CAMERA_LEGACY=y -# CONFIG_MSM_CAMERA_7X30 is not set -CONFIG_720P_CAMERA=y -# CONFIG_MSM_CAMERA_DEBUG is not set - -# -# Camera Sensor Selection -# -# CONFIG_MT9T013 is not set -# CONFIG_MT9D112 is not set -# CONFIG_MT9P012 is not set -CONFIG_S5K3E2FX=y -# CONFIG_S5K4E1GX is not set -# CONFIG_OV8810 is not set -# CONFIG_OV9665 is not set -# CONFIG_S5K3H1GX is not set -# CONFIG_MT9V113 is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_DAB is not set - -# -# Graphics support -# -# CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=y -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_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_UVESA is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_BROADSHEET is not set -CONFIG_FB_MSM=y -CONFIG_FB_MSM_LCDC=y -# CONFIG_FB_MSM_TVOUT is not set -CONFIG_GPU_MSM_KGSL=y -CONFIG_MSM_KGSL_MMU=y -# CONFIG_MSM_KGSL_PER_FD_PAGETABLE is not set -# CONFIG_MSM_HDMI is not set -CONFIG_FB_MSM_LOGO=y -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE is not set -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_SOUND is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set -# CONFIG_HID_PID is not set - -# -# Special HID drivers -# -# CONFIG_HID_APPLE is not set -# CONFIG_HID_WACOM is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -# CONFIG_USB_ARCH_HAS_OHCI is not set -# CONFIG_USB_ARCH_HAS_EHCI is not set -# CONFIG_USB is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_MUSB_HDRC is not set -# CONFIG_USB_GADGET_MUSB_HDRC is not set - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_VBUS_DRAW=500 -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_AT91 is not set -# CONFIG_USB_GADGET_ATMEL_USBA is not set -# CONFIG_USB_GADGET_FSL_USB2 is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_PXA25X is not set -# CONFIG_USB_GADGET_R8A66597 is not set -# CONFIG_USB_GADGET_PXA27X is not set -# CONFIG_USB_GADGET_S3C_HSOTG is not set -# CONFIG_USB_GADGET_IMX is not set -# CONFIG_USB_GADGET_S3C2410 is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_FSL_QE is not set -# CONFIG_USB_GADGET_CI13XXX is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LANGWELL is not set -CONFIG_USB_GADGET_MSM_72K=y -CONFIG_USB_MSM_72K=y -# CONFIG_USB_GADGET_DUMMY_HCD is not set -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_GADGETFS is not set -# CONFIG_USB_FILE_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_ANDROID=y -# CONFIG_USB_ANDROID_ACM is not set -CONFIG_USB_ANDROID_ADB=y -CONFIG_USB_ANDROID_DIAG=y -CONFIG_USB_ANDROID_MASS_STORAGE=y -CONFIG_USB_ANDROID_RNDIS=y -CONFIG_USB_ANDROID_SERIAL=y -# CONFIG_USB_ANDROID_PROJECTOR is not set -# CONFIG_USB_ANDROID_MTP is not set -# CONFIG_USB_CDC_COMPOSITE is not set -CONFIG_USB_ACCESSORY_DETECT=y -# CONFIG_USB_ACCESSORY_DETECT_BY_ADC is not set - -# -# OTG and related infrastructure -# -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_NOP_USB_XCEIV is not set - -# -# USB Function Support -# -# CONFIG_USB_FUNCTION is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_UNSAFE_RESUME=y -CONFIG_MMC_EMBEDDED_SDIO=y -# CONFIG_MMC_PARANOID_SD_INIT is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=y -# CONFIG_MMC_BLOCK_BOUNCE is not set -CONFIG_MMC_BLOCK_PARANOID_RESUME=y -CONFIG_MMC_BLOCK_DEFERRED_RESUME=y -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set - -# -# MMC/SD/SDIO Host Controller Drivers -# -# CONFIG_MMC_SDHCI is not set -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set -CONFIG_MMC_MSM7X00A=y -# CONFIG_MEMSTICK is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_GPIO_PLATFORM=y -# CONFIG_LEDS_LP3944 is not set -CONFIG_LEDS_CPLD=y -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_BD2802 is not set - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_GPIO is not set -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -CONFIG_LEDS_TRIGGER_SLEEP=y - -# -# iptables trigger is under Netfilter config (LED target) -# -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 is not set -# CONFIG_RTC_INTF_PROC is not set -# CONFIG_RTC_INTF_DEV is not set -CONFIG_RTC_INTF_ALARM=y -CONFIG_RTC_INTF_ALARM_DEV=y -# 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_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 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_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 - -# -# SPI RTC drivers -# -# 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_BQ4802 is not set -# CONFIG_RTC_DRV_V3020 is not set - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_MSM7X00A=y -# CONFIG_DMADEVICES is not set -# CONFIG_AUXDISPLAY is not set -# CONFIG_UIO is not set - -# -# TI VLYNQ -# -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -# CONFIG_ECHO 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_EARLY_INIT=y -CONFIG_ANDROID_RAM_CONSOLE_EARLY_ADDR=0xF9100000 -CONFIG_ANDROID_RAM_CONSOLE_EARLY_SIZE=0x00040000 -CONFIG_ANDROID_TIMED_OUTPUT=y -CONFIG_ANDROID_TIMED_GPIO=y -CONFIG_ANDROID_LOW_MEMORY_KILLER=y - -# -# Qualcomm MSM Camera And Video -# -# CONFIG_MSM_CAMERA_FLASH is not set - -# -# Camera Sensor Selection -# -# CONFIG_DST is not set -# CONFIG_POHMELFS is not set -# CONFIG_PLAN9AUTH is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set -# CONFIG_BTPORT is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT2_FS_XIP=y -# CONFIG_EXT3_FS is not set -# CONFIG_EXT4_FS is not set -CONFIG_FS_XIP=y -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y -# CONFIG_XFS_FS is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -# CONFIG_DNOTIFY is not set -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_QUOTA is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# 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 is not set -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_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# 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_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_YAFFS_FS is not set -# CONFIG_JFFS2_FS is not set -# CONFIG_CRAMFS is not set -CONFIG_SQUASHFS=y -CONFIG_SQUASHFS_EMBEDDED=y -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# 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_SYSV_FS is not set -# CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_SMB_FS is not set -CONFIG_CIFS=m -# CONFIG_CIFS_STATS is not set -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_XATTR is not set -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -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 is not set -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 is not set -# CONFIG_DLM is not set - -# -# Kernel hacking -# -CONFIG_PRINTK_TIME=y -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -CONFIG_MAGIC_SYSRQ=y -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set -CONFIG_STACKTRACE=y -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -CONFIG_FRAME_POINTER=y -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -# CONFIG_LATENCYTOP is not set -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_ARM_UNWIND is not set -# CONFIG_DEBUG_USER is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -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_PCOMP=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_NULL 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 is not set -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 is not set -# 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_HW=y -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=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_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_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_NLATTR=y diff --git a/arch/arm/configs/supersonic_defconfig b/arch/arm/configs/supersonic_defconfig deleted file mode 100644 index af70753b..00000000 --- a/arch/arm/configs/supersonic_defconfig +++ /dev/null @@ -1,1785 +0,0 @@ - -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32 -# Thu May 19 00:33:44 2010 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_MMU=y -# CONFIG_NO_IOPORT is not set -CONFIG_GENERIC_HARDIRQS=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_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_SWAP=y -# CONFIG_SYSVIPC is not set -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set - -# -# RCU Subsystem -# -CONFIG_CLASSIC_RCU=y -# CONFIG_TREE_RCU is not set -# CONFIG_PREEMPT_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_PREEMPT_RCU_TRACE is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_GROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_RT_GROUP_SCHED=y -# CONFIG_USER_SCHED is not set -CONFIG_CGROUP_SCHED=y -CONFIG_CGROUPS=y -CONFIG_CGROUP_DEBUG=y -# CONFIG_CGROUP_NS is not set -CONFIG_CGROUP_FREEZER=y -# CONFIG_CGROUP_DEVICE is not set -CONFIG_CGROUP_CPUACCT=y -CONFIG_RESOURCE_COUNTERS=y -# CONFIG_CGROUP_MEM_RES_CTLR is not set -# CONFIG_SYSFS_DEPRECATED_V2 is not set -# CONFIG_RELAY is not set -# CONFIG_NAMESPACES is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_PANIC_TIMEOUT=5 -CONFIG_EMBEDDED=y -CONFIG_UID16=y -# CONFIG_SYSCTL_SYSCALL is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -# CONFIG_ELF_CORE is not set -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -CONFIG_ASHMEM=y -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_COMPAT_BRK=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_BLOCK=y -# CONFIG_LBD is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -# CONFIG_IOSCHED_CFQ is not set -# CONFIG_DEFAULT_AS is not set -CONFIG_DEFAULT_DEADLINE=y -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="deadline" -CONFIG_FREEZER=y - -# -# System Type -# -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IMX 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_L7200 is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_LOKI is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA 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_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -CONFIG_ARCH_MSM=y -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_MSM7X00A is not set -CONFIG_ARCH_QSD8X50=y -CONFIG_ARCH_MSM_SCORPION=y -CONFIG_MSM_MDP31=y -CONFIG_MSM_AMSS_VERSION=3200 -CONFIG_MSM_AMSS_VERSION_3200=y -# CONFIG_MSM_DEBUG_UART is not set -CONFIG_MSM_DEBUG_UART_NONE=y -# CONFIG_MSM_DEBUG_UART1 is not set -# CONFIG_MSM_DEBUG_UART2 is not set -# CONFIG_MSM_DEBUG_UART3 is not set - -# -# MSM Board Type -# -CONFIG_MACH_SUPERSONIC=y - -# -# HTC headset driver -# -CONFIG_HTC_HEADSET_MGR=y -# CONFIG_HTC_HEADSET_H2W is not set -CONFIG_HTC_HEADSET_GPIO=y -CONFIG_HTC_HEADSET_MICROP=y -# CONFIG_HTC_HEADSET_PMIC is not set - -CONFIG_AAT1271_FLASHLIGHT=y -CONFIG_MICROP_COMMON=y -CONFIG_LIGHTSENSOR_MICROP=y -# CONFIG_TROUT_BATTCHG is not set -CONFIG_HTC_BATTCHG=y -CONFIG_HTC_BATTCHG_SMEM=y -# CONFIG_HTC_PWRSINK is not set -CONFIG_CACHE_FLUSH_RANGE_LIMIT=0x40000 -CONFIG_MSM7X00A_USE_GP_TIMER=y -# CONFIG_MSM7X00A_USE_DG_TIMER is not set -CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y -# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set -# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set -# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set -# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set -CONFIG_MSM7X00A_SLEEP_MODE=0 -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set -CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set -CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1 -CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000 -CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000 -CONFIG_MSM7X00A_SLEEP_NO_LIMIT=y -# CONFIG_MSM7X00A_SLEEP_LIMITED_SLEEP is not set -# CONFIG_MSM7X00A_SLEEP_NEGATE_SLEEP is not set -CONFIG_MSM7X00A_SLEEP_LIMIT=0 -# CONFIG_MSM7X00A_IDLE_SLEEP_NO_LIMIT is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_LIMITED_SLEEP is not set -CONFIG_MSM7X00A_IDLE_SLEEP_NEGATE_SLEEP=y -CONFIG_MSM7X00A_IDLE_SLEEP_LIMIT=2 -CONFIG_MSM_IDLE_STATS=y -CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500 -CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2 -CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10 -CONFIG_MSM_FIQ_SUPPORT=y -CONFIG_MSM_SERIAL_DEBUGGER=y -CONFIG_MSM_SERIAL_DEBUGGER_NO_SLEEP=y -# CONFIG_MSM_SERIAL_DEBUGGER_WAKEUP_IRQ_ALWAYS_ON is not set -# CONFIG_MSM_SERIAL_DEBUGGER_CONSOLE is not set -CONFIG_MSM_SMD=y -CONFIG_MSM_N_WAY_SMD=y -CONFIG_MSM_ONCRPCROUTER=y -CONFIG_MSM_RPCSERVERS=y -# CONFIG_MSM_CPU_FREQ_SCREEN is not set -CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=998400 -CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=245000 -# CONFIG_MSM_HW3D is not set -# CONFIG_MSM_ADSP is not set -# CONFIG_HTC_ACOUSTIC is not set -CONFIG_HTC_ACOUSTIC_QSD=y -CONFIG_MSM_DALRPC=y -# CONFIG_MSM_DALRPC_TEST is not set -CONFIG_QSD_AUDIO=y -CONFIG_QSD_HTC_FM=y -CONFIG_ARCH_MSM_FLASHLIGHT=y -CONFIG_WIFI_NVS_PROC_CREATE=y -CONFIG_WIFI_CONTROL_FUNC=y -CONFIG_WIFI_MEM_PREALLOC=n -CONFIG_BUILD_CIQ=y -CONFIG_BUILD_OMA_DM=y -CONFIG_SMD_OFFSET_TCXO_STAT=0xFC2A0 - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_V7=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_IFAR=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_THUMB=y -CONFIG_ARM_THUMBEE=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_HAS_TLS_REG=y -# CONFIG_OUTER_CACHE is not set - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PREEMPT=y -CONFIG_HZ=100 -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set -CONFIG_ARCH_FLATMEM_HAS_HOLES=y -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_VIRT_TO_BUS=y -CONFIG_UNEVICTABLE_LRU=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set - -# -# CPU Power Management -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y -# 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=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_MIN_TICKS=2 -CONFIG_CPU_FREQ_SAMPLING_LATENCY_MULTIPLIER=500 -# CONFIG_CPU_IDLE is not set -CONFIG_PERFLOCK=y -CONFIG_PERFLOCK_BOOT_LOCK=y -# CONFIG_PERFLOCK_SCREEN_POLICY is not set -# CONFIG_PERFLOCK_SCREEN_ON_MIN is not set -# CONFIG_PERFLOCK_SCREEN_ON_MAX is not set -# CONFIG_PERFLOCK_SCREEN_OFF_MIN is not set -# CONFIG_PERFLOCK_SCREEN_OFF_MAX is not set - -# -# 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_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_TRACE=y -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -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_APM_EMULATION is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_COMPAT_NET_DEV_OPS=y -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -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 is not set -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -# CONFIG_IP_ROUTE_MULTIPATH is not set -CONFIG_IP_ROUTE_VERBOSE=y -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE 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 is not set -# 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_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_NETWORK_SECMARK 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_CT_ACCT=y -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -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_NETBIOS_NS=y -CONFIG_NF_CONNTRACK_PPTP=y -CONFIG_NF_CONNTRACK_SANE=y -CONFIG_NF_CONNTRACK_SIP=y -CONFIG_NF_CONNTRACK_TFTP=y -CONFIG_NF_CT_NETLINK=y -CONFIG_NETFILTER_XTABLES=y -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y -CONFIG_NETFILTER_XT_TARGET_CONNMARK=y -CONFIG_NETFILTER_XT_TARGET_LED=y -CONFIG_NETFILTER_XT_TARGET_MARK=y -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y -CONFIG_NETFILTER_XT_TARGET_NFLOG=y -CONFIG_NETFILTER_XT_TARGET_NOTRACK=y -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -CONFIG_NETFILTER_XT_TARGET_TRACE=y -CONFIG_NETFILTER_XT_TARGET_TCPMSS=y -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_DCCP=y -CONFIG_NETFILTER_XT_MATCH_DSCP=y -CONFIG_NETFILTER_XT_MATCH_ESP=y -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=y -CONFIG_NETFILTER_XT_MATCH_OWNER=y -CONFIG_NETFILTER_XT_MATCH_POLICY=y -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y -CONFIG_NETFILTER_XT_MATCH_QUOTA=y -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -CONFIG_NETFILTER_XT_MATCH_REALM=y -CONFIG_NETFILTER_XT_MATCH_SCTP=y -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -CONFIG_NETFILTER_XT_MATCH_STATE=y -CONFIG_NETFILTER_XT_MATCH_STATISTIC=y -CONFIG_NETFILTER_XT_MATCH_STRING=y -CONFIG_NETFILTER_XT_MATCH_TCPMSS=y -CONFIG_NETFILTER_XT_MATCH_TIME=y -CONFIG_NETFILTER_XT_MATCH_U32=y -# CONFIG_NETFILTER_XT_MATCH_OSF 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_ADDRTYPE=y -CONFIG_IP_NF_MATCH_RECENT=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_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_SNMP_BASIC is not set -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=y -# CONFIG_IP_NF_MANGLE 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_CONNTRACK_IPV6 is not set -# CONFIG_IP6_NF_QUEUE is not set -# CONFIG_IP6_NF_IPTABLES is not set -# 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_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_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_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_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_CLS_IND is not set -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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_HCIBTSDIO is not set -CONFIG_BT_HCIUART=y -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_BCSP is not set -CONFIG_BT_HCIUART_LL=y -# CONFIG_BT_HCIVHCI is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_PHONET is not set -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -# CONFIG_CFG80211 is not set -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -# CONFIG_LIB80211 is not set -# CONFIG_MAC80211 is not set -CONFIG_WIMAX=y -CONFIG_RFKILL=y -# CONFIG_RFKILL_PM is not set -# CONFIG_RFKILL_INPUT is not set -CONFIG_RFKILL_LEDS=y -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -CONFIG_MTD_MSM_NAND=y -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -# CONFIG_MTD_LPDDR is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI 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_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_MISC_DEVICES=y -CONFIG_ANDROID_PMEM=y -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -CONFIG_KERNEL_DEBUGGER_CORE=y -CONFIG_UID_STAT=y -CONFIG_SENSORS_BMA150_SPI=y -# CONFIG_WL127X_RFKILL is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_93CX6 is not set -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_DMA is not set -# CONFIG_SCSI_NETLINK 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=y -CONFIG_DM_CRYPT=y -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -CONFIG_DM_UEVENT=y -CONFIG_NETDEVICES=y -CONFIG_DUMMY=y -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_VETH is not set -# CONFIG_PHYLIB is not set -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_AX88796 is not set -CONFIG_SMC91X=y -# CONFIG_DM9000 is not set -# CONFIG_SMC911X is not set -# CONFIG_SMSC911X is not set -# CONFIG_DNET is not set -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -# CONFIG_B44 is not set -CONFIG_NETDEV_1000=y -CONFIG_NETDEV_10000=y - -# -# Wireless LAN -# -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set -# CONFIG_IWLWIFI_LEDS is not set -CONFIG_BCM4329=m -CONFIG_BCM4329_SOFTAP=y -CONFIG_BCM4329_FW_PATH="/system/etc/firmware/fw_bcm4329.bin" -CONFIG_BCM4329_NVRAM_PATH="/proc/calibration" - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -CONFIG_WIMAX_SQN=m -# -# CONFIG_WAN is not set -CONFIG_PPP=y -# CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=y -# 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_PPPOL2TP is not set -CONFIG_PPPOLAC=y -CONFIG_PPPOPNS=y -# CONFIG_SLIP is not set -CONFIG_SLHC=y -# CONFIG_NETCONSOLE is not set -CONFIG_MSM_RMNET=y -# CONFIG_MSM_RMNET_DEBUG is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set -CONFIG_INPUT_KEYRESET=y - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD 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_ATMEL=y -# CONFIG_TOUCHSCREEN_CYPRESS_TMG is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELAN_I2C_8232 is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 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_MSM is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_T1007 is not set -# CONFIG_TOUCHSCREEN_COMPATIBLE_REPORT 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_TSC2007 is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_ATI_REMOTE is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# 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_KEYCHORD=y -#CONFIG_INPUT_OPTICALJOYSTICK is not set -#CONFIG_OPTICALJOYSTICK_CRUCIAL is not set -# CONFIG_PROXIMITYSENSOR is not set -CONFIG_INPUT_DUMMY_KEYPAD=y -CONFIG_FLASHLIGHT=y - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -# CONFIG_VT is not set -# CONFIG_DEVMEM is not set -# CONFIG_DEVKMEM is not set -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -# CONFIG_SERIAL_CORE_CONSOLE is not set -CONFIG_SERIAL_MSM=y -# CONFIG_SERIAL_MSM_CONSOLE is not set -# CONFIG_SERIAL_MSM_CLOCK_CONTROL is not set -CONFIG_SERIAL_MSM_HS=y -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM 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_Q6_VENC=y -CONFIG_MSM_Q6VDEC=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_CHARDEV is not set -CONFIG_I2C_HELPER_AUTO=y - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_GPIO is not set -CONFIG_I2C_MSM=y -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_SIMTEC is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_TAOS_EVM is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_STUB is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_DS1682 is not set -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_PCF8575 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_AKM8976 is not set -CONFIG_SENSORS_AKM8973=y -# CONFIG_SENSORS_PCA963X is not set -# CONFIG_SENSORS_MT9T013 is not set -CONFIG_AMP_TPA2018D1=y -CONFIG_AMP_TPA6130A=y -CONFIG_VP_A1026=y -CONFIG_SMB329=y -CONFIG_TPS65200=y -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set -CONFIG_SPI=y -CONFIG_SPI_MASTER=y -CONFIG_SPI_QSD=y - - -# CONFIG_W1 is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2784 is not set -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_HWMON is not set -# CONFIG_THERMAL is not set -# CONFIG_THERMAL_HWMON is not set -# CONFIG_WATCHDOG is not set -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -# CONFIG_SSB is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_CORE is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_HTC_PASIC3 is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_PCF50633 is not set - -# -# Multimedia devices -# - -CONFIG_MEDIA_SUPPORT=y - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -CONFIG_VIDEO_ALLOW_V4L1=y -CONFIG_VIDEO_V4L1_COMPAT=y -# CONFIG_DVB_CORE is not set -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -# CONFIG_MEDIA_ATTACH is not set -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_V4L1=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_SOC_CAMERA is not set - -# -# Qualcomm MSM Camera And Video -# -CONFIG_MSM_CAMERA=y -CONFIG_MSM_CAMERA_LEGACY=y -# CONFIG_MSM_CAMERA_7X30 is not set -CONFIG_720P_CAMERA=y -# CONFIG_MSM_CAMERA_DEBUG is not set - -# -# Camera Sensor Selection -# -# CONFIG_MT9T013 is not set -# CONFIG_MT9D112 is not set -# CONFIG_MT9P012 is not set -# CONFIG_MSM_CAMERA_AF_FOXCONN is not set -# CONFIG_MSM_CAMERA_AF_BAM is not set -# CONFIG_S5K3E2FX is not set -# CONFIG_VB6801 is not set -CONFIG_OV9665=y -CONFIG_OV8810=y - -# -# Camera Sensor Selection -# -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_DAB is not set - -# -# Graphics support -# -# CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=y -CONFIG_FB=y -CONFIG_FB_MSM_TVOUT=n -# 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_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_S1D13XXX is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set -CONFIG_FB_MSM=y -CONFIG_FB_565=y -CONFIG_FB_MSM_LCDC=y -CONFIG_GPU_MSM_KGSL=y -CONFIG_MSM_KGSL_MMU=y -CONFIG_MSM_HDMI=y -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set -# CONFIG_LOGO is not set -# CONFIG_SOUND is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HID_DEBUG is not set -# CONFIG_HIDRAW is not set -# CONFIG_HID_PID is not set - -# -# Special HID drivers -# -CONFIG_HID_COMPAT=y -# CONFIG_HID_APPLE is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -# CONFIG_USB_ARCH_HAS_OHCI is not set -# CONFIG_USB_ARCH_HAS_EHCI is not set -# CONFIG_USB is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set - -# -# Enable Host or Gadget support to see Inventra options -# -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=500 -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_AT91 is not set -# CONFIG_USB_GADGET_ATMEL_USBA is not set -# CONFIG_USB_GADGET_FSL_USB2 is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_PXA25X is not set -# CONFIG_USB_GADGET_R8A66597 is not set -# CONFIG_USB_GADGET_PXA27X is not set -# CONFIG_USB_GADGET_S3C_HSOTG is not set -# CONFIG_USB_GADGET_IMX is not set -# CONFIG_USB_GADGET_S3C2410 is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_FSL_QE is not set -# CONFIG_USB_GADGET_CI13XXX is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LANGWELL is not set -CONFIG_USB_GADGET_MSM_72K=y -CONFIG_USB_MSM_72K=y -# CONFIG_USB_GADGET_DUMMY_HCD is not set -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_GADGETFS is not set -# CONFIG_USB_FILE_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_ANDROID=y -# CONFIG_USB_ANDROID_ACM is not set -CONFIG_USB_ANDROID_ADB=y -CONFIG_USB_ANDROID_MASS_STORAGE=y -CONFIG_USB_ANDROID_RNDIS=y -CONFIG_USB_ANDROID_DIAG=y -CONFIG_USB_ANDROID_SERIAL=y -CONFIG_USB_ANDROID_PROJECTOR=y -CONFIG_USB_ACCESSORY_DETECT=y -# CONFIG_USB_CDC_COMPOSITE is not set - -# -# OTG and related infrastructure -# - -# -# USB Function Support -# -# CONFIG_USB_FUNCTION is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -# Andrew 0224 -#CONFIG_MMC_DEBUG=y -CONFIG_MMC_UNSAFE_RESUME=y -CONFIG_MMC_EMBEDDED_SDIO=y -CONFIG_MMC_PARANOID_SD_INIT=y - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=y -# CONFIG_MMC_BLOCK_BOUNCE is not set -CONFIG_MMC_BLOCK_PARANOID_RESUME=y -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set -CONFIG_MMC_BUSCLK_PWRSAVE=y -CONFIG_MMC_BLOCK_DEFERRED_RESUME=y - -# -# MMC/SD/SDIO Host Controller Drivers -# -# CONFIG_MMC_SDHCI is not set -CONFIG_MMC_MSM7X00A=y -# CONFIG_MMC_MSM7X00A_RESUME_IN_WQ is not set -# CONFIG_MEMSTICK is not set -# CONFIG_ACCESSIBILITY is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -# CONFIG_MMC_BLOCK_PROG_ENA is not set - -# -# LED drivers -# -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_CPLD=y -# CONFIG_LEDS_PCA955X is not set -CONFIG_FLASHLIGHT=y - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -CONFIG_LEDS_TRIGGER_SLEEP=y -CONFIG_SWITCH=y -CONFIG_SWITCH_GPIO=y -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 is not set -# CONFIG_RTC_INTF_PROC is not set -# CONFIG_RTC_INTF_DEV is not set -CONFIG_RTC_INTF_ALARM=y -# 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_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 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_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8581 is not set - -# -# SPI RTC drivers -# - -# -# 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_BQ4802 is not set -# CONFIG_RTC_DRV_V3020 is not set - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_MSM7X00A=y -# CONFIG_DMADEVICES is not set -CONFIG_REGULATOR=y -CONFIG_REGULATOR_DEBUG=y -# CONFIG_REGULATOR_FIXED_VOLTAGE is not set -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_BQ24022 is not set -CONFIG_REGULATOR_TPS65023=y -# CONFIG_UIO is not set -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -# CONFIG_MEILHAUS is not set -# CONFIG_ECHO is not set -# CONFIG_COMEDI 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_BTPORT is not set -# CONFIG_BTPORT_DRV is not set - - -# -# File systems -# -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -# CONFIG_EXT4_FS is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_FILE_LOCKING=y -# CONFIG_XFS_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_DNOTIFY is not set -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_QUOTA is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS 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 is not set -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_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# 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_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_YAFFS_FS=y -CONFIG_YAFFS_YAFFS1=y -# CONFIG_YAFFS_9BYTE_TAGS is not set -# CONFIG_YAFFS_DOES_ECC is not set -CONFIG_YAFFS_YAFFS2=y -CONFIG_YAFFS_AUTO_YAFFS2=y -# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set -# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set -# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set -CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y -# CONFIG_JFFS2_FS 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_SYSV_FS is not set -# CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -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 is not set -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 is not set -# CONFIG_DLM is not set - -# -# Kernel hacking -# -CONFIG_PRINTK_TIME=y -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -CONFIG_MAGIC_SYSRQ=y -# CONFIG_UNUSED_SYMBOLS is not set -CONFIG_DEBUG_FS=y -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -CONFIG_SCHEDSTATS=y -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -#CONFIG_DEBUG_SLAB is not set -#CONFIG_DEBUG_SLAB_LEAK is not set -CONFIG_DEBUG_PREEMPT=y -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_SPINLOCK_SLEEP=y -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_VM=y -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_LIST is not set -CONFIG_DEBUG_SG=y -# CONFIG_DEBUG_NOTIFIERS 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_DETECTOR is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -CONFIG_HAVE_FUNCTION_TRACER=y - -# -# Tracers -# -# CONFIG_FUNCTION_TRACER is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_PREEMPT_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_CONTEXT_SWITCH_TRACER is not set -# CONFIG_BOOT_TRACER is not set -# CONFIG_TRACE_BRANCH_PROFILING is not set -# CONFIG_STACK_TRACER is not set -# CONFIG_DYNAMIC_PRINTK_DEBUG is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_LL is not set -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -# CONFIG_CRYPTO_FIPS is not set -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_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_NULL is not set -# 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 - -# -# Digest -# -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_MD4 is not set -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 is not set -# 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 is not set -# CONFIG_CRYPTO_LZO is not set - -# -# Random Number Generation -# -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_HW=y - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=y -# CONFIG_CRC16 is not set -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_REED_SOLOMON=y -CONFIG_REED_SOLOMON_ENC8=y -CONFIG_REED_SOLOMON_DEC8=y -CONFIG_PLIST=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y diff --git a/arch/arm/configs/swordfish_defconfig b/arch/arm/configs/swordfish_defconfig deleted file mode 100644 index 6dddff75..00000000 --- a/arch/arm/configs/swordfish_defconfig +++ /dev/null @@ -1,1367 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.29 -# Tue Jun 30 10:54:46 2009 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_MMU=y -# CONFIG_NO_IOPORT is not set -CONFIG_GENERIC_HARDIRQS=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_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_SWAP=y -# CONFIG_SYSVIPC is not set -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set - -# -# RCU Subsystem -# -CONFIG_CLASSIC_RCU=y -# CONFIG_TREE_RCU is not set -# CONFIG_PREEMPT_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_PREEMPT_RCU_TRACE is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_LOG_BUF_SHIFT=17 -# CONFIG_GROUP_SCHED is not set -# CONFIG_CGROUPS is not set -# CONFIG_SYSFS_DEPRECATED_V2 is not set -# CONFIG_RELAY is not set -# CONFIG_NAMESPACES is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_PANIC_TIMEOUT=5 -CONFIG_EMBEDDED=y -CONFIG_UID16=y -# CONFIG_SYSCTL_SYSCALL is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -# CONFIG_ELF_CORE is not set -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -CONFIG_ASHMEM=y -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_COMPAT_BRK=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_BLOCK=y -# CONFIG_LBD is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" -CONFIG_FREEZER=y - -# -# System Type -# -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IMX 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_L7200 is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_LOKI is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA 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_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -CONFIG_ARCH_MSM=y -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_MSM7X00A is not set -CONFIG_ARCH_QSD8X50=y -CONFIG_ARCH_MSM_SCORPION=y -CONFIG_MSM_MDP31=y -CONFIG_MSM_AMSS_VERSION=6225 -# CONFIG_MSM_AMSS_VERSION_6210 is not set -# CONFIG_MSM_AMSS_VERSION_6220 is not set -CONFIG_MSM_AMSS_VERSION_6225=y -# CONFIG_MSM_AMSS_VERSION_6350 is not set -CONFIG_MSM_DEBUG_UART=3 -# CONFIG_MSM_DEBUG_UART_NONE is not set -# CONFIG_MSM_DEBUG_UART1 is not set -# CONFIG_MSM_DEBUG_UART2 is not set -CONFIG_MSM_DEBUG_UART3=y - -# -# MSM Board Type -# -CONFIG_MACH_SWORDFISH=y -# CONFIG_HTC_HEADSET is not set -# CONFIG_TROUT_BATTCHG is not set -# CONFIG_HTC_PWRSINK is not set -CONFIG_CACHE_FLUSH_RANGE_LIMIT=0x40000 -CONFIG_MSM7X00A_USE_GP_TIMER=y -# CONFIG_MSM7X00A_USE_DG_TIMER is not set -# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set -# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set -# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set -# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set -CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT=y -CONFIG_MSM7X00A_SLEEP_MODE=4 -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set -# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set -CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT=y -CONFIG_MSM7X00A_IDLE_SLEEP_MODE=4 -CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000 -CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000 -# CONFIG_MSM_IDLE_STATS is not set -# CONFIG_MSM_FIQ_SUPPORT is not set -# CONFIG_MSM_SERIAL_DEBUGGER is not set -CONFIG_MSM_SMD=y -CONFIG_MSM_ONCRPCROUTER=y -CONFIG_MSM_RPCSERVERS=y -CONFIG_MSM_CPU_FREQ=y -CONFIG_MSM_CPU_FREQ_ONDEMAND=y -# CONFIG_MSM_CPU_FREQ_SCREEN is not set -CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=998400 -CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=384000 -# CONFIG_MSM_HW3D is not set -# CONFIG_MSM_ADSP is not set -# CONFIG_WIFI_CONTROL_FUNC is not set - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_V7=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_IFAR=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_THUMB=y -# CONFIG_ARM_THUMBEE is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_HAS_TLS_REG=y -# CONFIG_OUTER_CACHE is not set - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PREEMPT=y -CONFIG_HZ=100 -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set -CONFIG_ARCH_FLATMEM_HAS_HOLES=y -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_VIRT_TO_BUS=y -CONFIG_UNEVICTABLE_LRU=y -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set - -# -# CPU Power Management -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y -# 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=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_MIN_TICKS=10 -CONFIG_CPU_FREQ_SAMPLING_LATENCY_MULTIPLIER=1000 -# CONFIG_CPU_IDLE is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -# CONFIG_VFP is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -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_APM_EMULATION is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_COMPAT_NET_DEV_OPS=y -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INET_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_INET_DIAG is not set -# 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 is not set -CONFIG_ANDROID_PARANOID_NETWORK=y -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_TIPC is not set -# CONFIG_ATM 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_NET_SCHED is not set -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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_HCIBTSDIO is not set -CONFIG_BT_HCIUART=y -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_BCSP is not set -CONFIG_BT_HCIUART_LL=y -# CONFIG_BT_HCIVHCI is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_PHONET is not set -CONFIG_WIRELESS=y -# CONFIG_CFG80211 is not set -CONFIG_WIRELESS_OLD_REGULATORY=y -# CONFIG_WIRELESS_EXT is not set -# CONFIG_LIB80211 is not set -# CONFIG_MAC80211 is not set -# CONFIG_WIMAX is not set -CONFIG_RFKILL=y -# CONFIG_RFKILL_PM is not set -# CONFIG_RFKILL_INPUT is not set -CONFIG_RFKILL_LEDS=y -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -CONFIG_MTD_MSM_NAND=y -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -# CONFIG_MTD_LPDDR is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI is not set -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_COW_COMMON is not set -# CONFIG_BLK_DEV_LOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_MISC_DEVICES=y -CONFIG_ANDROID_PMEM=y -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -CONFIG_KERNEL_DEBUGGER_CORE=y -CONFIG_UID_STAT=y -# CONFIG_WL127X_RFKILL is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_93CX6 is not set -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_DMA is not set -# CONFIG_SCSI_NETLINK 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=y -CONFIG_DM_CRYPT=y -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -CONFIG_DM_UEVENT=y -CONFIG_NETDEVICES=y -CONFIG_DUMMY=y -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_VETH is not set -# CONFIG_PHYLIB is not set -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_AX88796 is not set -CONFIG_SMC91X=y -# CONFIG_DM9000 is not set -# CONFIG_SMC911X is not set -# CONFIG_SMSC911X is not set -# CONFIG_DNET is not set -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -# CONFIG_B44 is not set -CONFIG_NETDEV_1000=y -CONFIG_NETDEV_10000=y - -# -# Wireless LAN -# -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set -# CONFIG_IWLWIFI_LEDS is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# -# CONFIG_WAN is not set -CONFIG_PPP=y -# CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=y -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=y -CONFIG_PPP_BSDCOMP=y -# CONFIG_PPP_MPPE is not set -# CONFIG_PPPOE is not set -# CONFIG_PPPOL2TP is not set -# CONFIG_PPPOLAC is not set -# CONFIG_PPPOPNS is not set -# CONFIG_SLIP is not set -CONFIG_SLHC=y -# CONFIG_NETCONSOLE is not set -CONFIG_MSM_RMNET=y -# CONFIG_MSM_RMNET_DEBUG is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set -CONFIG_INPUT_KEYRESET=y - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD 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_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELAN_I2C_8232 is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 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_MSM=y -CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI=y -# 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_TSC2007 is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_ATI_REMOTE is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# 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_KEYCHORD=y - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -# CONFIG_VT is not set -# CONFIG_DEVMEM is not set -# CONFIG_DEVKMEM is not set -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_SERIAL_MSM=y -CONFIG_SERIAL_MSM_CONSOLE=y -# CONFIG_SERIAL_MSM_CLOCK_CONTROL is not set -# CONFIG_SERIAL_MSM_HS is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM 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_I2C=y -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_CHARDEV is not set -CONFIG_I2C_HELPER_AUTO=y - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_GPIO is not set -CONFIG_I2C_MSM=y -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_SIMTEC is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_TAOS_EVM is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_STUB is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_DS1682 is not set -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_PCF8575 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_AKM8976 is not set -# CONFIG_SENSORS_PCA963X is not set -# CONFIG_SENSORS_MT9T013 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_I2C_DEBUG_CHIP is not set -# CONFIG_SPI is not set -# CONFIG_W1 is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_HWMON is not set -# CONFIG_THERMAL is not set -# CONFIG_THERMAL_HWMON is not set -# CONFIG_WATCHDOG is not set -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -# CONFIG_SSB is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_CORE is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_HTC_PASIC3 is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_PCF50633 is not set - -# -# Multimedia devices -# - -# -# Multimedia core support -# -# CONFIG_VIDEO_DEV is not set -# CONFIG_DVB_CORE is not set -# CONFIG_VIDEO_MEDIA is not set - -# -# Multimedia drivers -# -CONFIG_DAB=y - -# -# Graphics support -# -# CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=y -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_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_S1D13XXX is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set -CONFIG_FB_MSM=y -CONFIG_FB_MSM_LCDC=y -CONFIG_GPU_MSM_KGSL=y -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set -# CONFIG_LOGO is not set -# CONFIG_SOUND is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HID_DEBUG is not set -# CONFIG_HIDRAW is not set -# CONFIG_HID_PID is not set - -# -# Special HID drivers -# -CONFIG_HID_COMPAT=y -# CONFIG_HID_APPLE is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -# CONFIG_USB_ARCH_HAS_OHCI is not set -# CONFIG_USB_ARCH_HAS_EHCI is not set -# CONFIG_USB is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set - -# -# Enable Host or Gadget support to see Inventra options -# - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; -# -# CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# - -# -# USB Function Support -# -CONFIG_USB_FUNCTION=y -CONFIG_USB_FUNCTION_MSM_HSUSB=y -# CONFIG_USB_FUNCTION_NULL is not set -# CONFIG_USB_FUNCTION_ZERO is not set -# CONFIG_USB_FUNCTION_LOOPBACK is not set -CONFIG_USB_FUNCTION_ADB=y -# CONFIG_USB_FUNCTION_UMS is not set -CONFIG_USB_FUNCTION_MASS_STORAGE=y -# CONFIG_USB_FUNCTION_DIAG is not set -# CONFIG_USB_FUNCTION_ETHER is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_UNSAFE_RESUME=y -CONFIG_MMC_EMBEDDED_SDIO=y -CONFIG_MMC_PARANOID_SD_INIT=y - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=y -# CONFIG_MMC_BLOCK_BOUNCE is not set -CONFIG_MMC_BLOCK_PARANOID_RESUME=y -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set - -# -# MMC/SD/SDIO Host Controller Drivers -# -# CONFIG_MMC_SDHCI is not set -CONFIG_MMC_MSM7X00A=y -# CONFIG_MMC_MSM7X00A_RESUME_IN_WQ is not set -# CONFIG_MEMSTICK is not set -# CONFIG_ACCESSIBILITY is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_CPLD=y -# CONFIG_LEDS_PCA955X is not set - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -CONFIG_LEDS_TRIGGER_SLEEP=y -CONFIG_SWITCH=y -CONFIG_SWITCH_GPIO=y -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 is not set -# CONFIG_RTC_INTF_PROC is not set -# CONFIG_RTC_INTF_DEV is not set -CONFIG_RTC_INTF_ALARM=y -# 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_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 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_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8581 is not set - -# -# SPI RTC drivers -# - -# -# 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_BQ4802 is not set -# CONFIG_RTC_DRV_V3020 is not set - -# -# on-CPU RTC drivers -# -# CONFIG_RTC_DRV_MSM7X00A is not set -# CONFIG_DMADEVICES is not set -# CONFIG_REGULATOR is not set -# CONFIG_UIO is not set -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -# CONFIG_MEILHAUS is not set -# CONFIG_ECHO is not set -# CONFIG_COMEDI is not set - -# -# Android -# -CONFIG_ANDROID=y -CONFIG_ANDROID_BINDER_IPC=y -CONFIG_ANDROID_LOGGER=y -# CONFIG_ANDROID_RAM_CONSOLE is not set -CONFIG_ANDROID_TIMED_OUTPUT=y -CONFIG_ANDROID_TIMED_GPIO=y -CONFIG_ANDROID_LOW_MEMORY_KILLER=y - -# -# File systems -# -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -# CONFIG_EXT4_FS is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_FILE_LOCKING=y -# CONFIG_XFS_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_DNOTIFY is not set -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_QUOTA is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS 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 is not set -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_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# 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_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_YAFFS_FS=y -CONFIG_YAFFS_YAFFS1=y -# CONFIG_YAFFS_9BYTE_TAGS is not set -# CONFIG_YAFFS_DOES_ECC is not set -CONFIG_YAFFS_YAFFS2=y -CONFIG_YAFFS_AUTO_YAFFS2=y -# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set -# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set -# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set -CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y -# CONFIG_JFFS2_FS 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_SYSV_FS is not set -# CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -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 is not set -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 is not set -# CONFIG_DLM is not set - -# -# Kernel hacking -# -CONFIG_PRINTK_TIME=y -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -CONFIG_MAGIC_SYSRQ=y -# CONFIG_UNUSED_SYMBOLS is not set -CONFIG_DEBUG_FS=y -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -CONFIG_SCHEDSTATS=y -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_SLAB is not set -CONFIG_DEBUG_PREEMPT=y -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_SPINLOCK_SLEEP=y -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_VM=y -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_LIST is not set -CONFIG_DEBUG_SG=y -# CONFIG_DEBUG_NOTIFIERS 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_DETECTOR is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -CONFIG_HAVE_FUNCTION_TRACER=y - -# -# Tracers -# -# CONFIG_FUNCTION_TRACER is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_PREEMPT_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_CONTEXT_SWITCH_TRACER is not set -# CONFIG_BOOT_TRACER is not set -# CONFIG_TRACE_BRANCH_PROFILING is not set -# CONFIG_STACK_TRACER is not set -# CONFIG_DYNAMIC_PRINTK_DEBUG is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -# CONFIG_CRYPTO_FIPS is not set -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_CRYPTD is not set -# CONFIG_CRYPTO_AUTHENC is not set -# 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 is not set -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_PCBC is not set -# CONFIG_CRYPTO_XTS is not set - -# -# Hash modes -# -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_XCBC is not set - -# -# Digest -# -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_MD4 is not set -# CONFIG_CRYPTO_MD5 is not set -# 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 is not set -# CONFIG_CRYPTO_SHA256 is not set -# 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 is not set -# 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 is not set -# 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 is not set -# CONFIG_CRYPTO_LZO is not set - -# -# Random Number Generation -# -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_HW=y - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=y -# CONFIG_CRC16 is not set -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_PLIST=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y diff --git a/arch/arm/mach-msm/board-halibut-keypad.c b/arch/arm/mach-msm/board-halibut-keypad.c deleted file mode 100644 index 49c10756..00000000 --- a/arch/arm/mach-msm/board-halibut-keypad.c +++ /dev/null @@ -1,177 +0,0 @@ -/* linux/arch/arm/mach-msm/board-halibut-keypad.c - * - * Copyright (C) 2007 Google, Inc. - * Author: Brian Swetland - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include - -#undef MODULE_PARAM_PREFIX -#define MODULE_PARAM_PREFIX "board_halibut." -static int halibut_ffa; -module_param_named(ffa, halibut_ffa, int, S_IRUGO | S_IWUSR | S_IWGRP); - -#define SCAN_FUNCTION_KEYS 0 /* don't turn this on without updating the ffa support */ - -static unsigned int halibut_row_gpios[] = { - 31, 32, 33, 34, 35, 41 -#if SCAN_FUNCTION_KEYS - , 42 -#endif -}; - -static unsigned int halibut_col_gpios[] = { 36, 37, 38, 39, 40 }; - -/* FFA: - 36: KEYSENSE_N(0) - 37: KEYSENSE_N(1) - 38: KEYSENSE_N(2) - 39: KEYSENSE_N(3) - 40: KEYSENSE_N(4) - - 31: KYPD_17 - 32: KYPD_15 - 33: KYPD_13 - 34: KYPD_11 - 35: KYPD_9 - 41: KYPD_MEMO -*/ - -#define KEYMAP_INDEX(row, col) ((row)*ARRAY_SIZE(halibut_col_gpios) + (col)) - -static const unsigned short halibut_keymap[ARRAY_SIZE(halibut_col_gpios) * ARRAY_SIZE(halibut_row_gpios)] = { - [KEYMAP_INDEX(0, 0)] = KEY_5, - [KEYMAP_INDEX(0, 1)] = KEY_9, - [KEYMAP_INDEX(0, 2)] = 229, /* SOFT1 */ - [KEYMAP_INDEX(0, 3)] = KEY_6, - [KEYMAP_INDEX(0, 4)] = KEY_LEFT, - - [KEYMAP_INDEX(1, 0)] = KEY_0, - [KEYMAP_INDEX(1, 1)] = KEY_RIGHT, - [KEYMAP_INDEX(1, 2)] = KEY_1, - [KEYMAP_INDEX(1, 3)] = 228, /* KEY_SHARP */ - [KEYMAP_INDEX(1, 4)] = KEY_SEND, - - [KEYMAP_INDEX(2, 0)] = KEY_VOLUMEUP, - [KEYMAP_INDEX(2, 1)] = KEY_HOME, /* FA */ - [KEYMAP_INDEX(2, 2)] = KEY_F8, /* QCHT */ - [KEYMAP_INDEX(2, 3)] = KEY_F6, /* R+ */ - [KEYMAP_INDEX(2, 4)] = KEY_F7, /* R- */ - - [KEYMAP_INDEX(3, 0)] = KEY_UP, - [KEYMAP_INDEX(3, 1)] = KEY_CLEAR, - [KEYMAP_INDEX(3, 2)] = KEY_4, - [KEYMAP_INDEX(3, 3)] = KEY_MUTE, /* SPKR */ - [KEYMAP_INDEX(3, 4)] = KEY_2, - - [KEYMAP_INDEX(4, 0)] = 230, /* SOFT2 */ - [KEYMAP_INDEX(4, 1)] = 232, /* KEY_CENTER */ - [KEYMAP_INDEX(4, 2)] = KEY_DOWN, - [KEYMAP_INDEX(4, 3)] = KEY_BACK, /* FB */ - [KEYMAP_INDEX(4, 4)] = KEY_8, - - [KEYMAP_INDEX(5, 0)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(5, 1)] = 227, /* KEY_STAR */ - [KEYMAP_INDEX(5, 2)] = KEY_MAIL, /* MESG */ - [KEYMAP_INDEX(5, 3)] = KEY_3, - [KEYMAP_INDEX(5, 4)] = KEY_7, - -#if SCAN_FUNCTION_KEYS - [KEYMAP_INDEX(6, 0)] = KEY_F5, - [KEYMAP_INDEX(6, 1)] = KEY_F4, - [KEYMAP_INDEX(6, 2)] = KEY_F3, - [KEYMAP_INDEX(6, 3)] = KEY_F2, - [KEYMAP_INDEX(6, 4)] = KEY_F1 -#endif -}; - -static const unsigned short halibut_keymap_ffa[ARRAY_SIZE(halibut_col_gpios) * ARRAY_SIZE(halibut_row_gpios)] = { - /*[KEYMAP_INDEX(0, 0)] = ,*/ - /*[KEYMAP_INDEX(0, 1)] = ,*/ - [KEYMAP_INDEX(0, 2)] = KEY_1, - [KEYMAP_INDEX(0, 3)] = KEY_SEND, - [KEYMAP_INDEX(0, 4)] = KEY_LEFT, - - [KEYMAP_INDEX(1, 0)] = KEY_3, - [KEYMAP_INDEX(1, 1)] = KEY_RIGHT, - [KEYMAP_INDEX(1, 2)] = KEY_VOLUMEUP, - /*[KEYMAP_INDEX(1, 3)] = ,*/ - [KEYMAP_INDEX(1, 4)] = KEY_6, - - [KEYMAP_INDEX(2, 0)] = KEY_HOME, /* A */ - [KEYMAP_INDEX(2, 1)] = KEY_BACK, /* B */ - [KEYMAP_INDEX(2, 2)] = KEY_0, - [KEYMAP_INDEX(2, 3)] = 228, /* KEY_SHARP */ - [KEYMAP_INDEX(2, 4)] = KEY_9, - - [KEYMAP_INDEX(3, 0)] = KEY_UP, - [KEYMAP_INDEX(3, 1)] = 232, /* KEY_CENTER */ /* i */ - [KEYMAP_INDEX(3, 2)] = KEY_4, - /*[KEYMAP_INDEX(3, 3)] = ,*/ - [KEYMAP_INDEX(3, 4)] = KEY_2, - - [KEYMAP_INDEX(4, 0)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(4, 1)] = KEY_SOUND, - [KEYMAP_INDEX(4, 2)] = KEY_DOWN, - [KEYMAP_INDEX(4, 3)] = KEY_8, - [KEYMAP_INDEX(4, 4)] = KEY_5, - - /*[KEYMAP_INDEX(5, 0)] = ,*/ - [KEYMAP_INDEX(5, 1)] = 227, /* KEY_STAR */ - [KEYMAP_INDEX(5, 2)] = 230, /*SOFT2*/ /* 2 */ - [KEYMAP_INDEX(5, 3)] = KEY_MENU, /* 1 */ - [KEYMAP_INDEX(5, 4)] = KEY_7, -}; - -static struct gpio_event_matrix_info halibut_matrix_info = { - .info.func = gpio_event_matrix_func, - .keymap = halibut_keymap, - .output_gpios = halibut_row_gpios, - .input_gpios = halibut_col_gpios, - .noutputs = ARRAY_SIZE(halibut_row_gpios), - .ninputs = ARRAY_SIZE(halibut_col_gpios), - .settle_time.tv.nsec = 0, - .poll_time.tv.nsec = 20 * NSEC_PER_MSEC, - .flags = GPIOKPF_LEVEL_TRIGGERED_IRQ | GPIOKPF_DRIVE_INACTIVE | GPIOKPF_PRINT_UNMAPPED_KEYS /*| GPIOKPF_PRINT_MAPPED_KEYS*/ -}; - -struct gpio_event_info *halibut_keypad_info[] = { - &halibut_matrix_info.info -}; - -static struct gpio_event_platform_data halibut_keypad_data = { - .name = "halibut_keypad", - .info = halibut_keypad_info, - .info_count = ARRAY_SIZE(halibut_keypad_info) -}; - -static struct platform_device halibut_keypad_device = { - .name = GPIO_EVENT_DEV_NAME, - .id = -1, - .dev = { - .platform_data = &halibut_keypad_data, - }, -}; - -static int __init halibut_init_keypad(void) -{ - if (!machine_is_halibut()) - return 0; - if (halibut_ffa) - halibut_matrix_info.keymap = halibut_keymap_ffa; - return platform_device_register(&halibut_keypad_device); -} - -device_initcall(halibut_init_keypad); diff --git a/arch/arm/mach-msm/board-halibut-panel.c b/arch/arm/mach-msm/board-halibut-panel.c deleted file mode 100644 index a498c653..00000000 --- a/arch/arm/mach-msm/board-halibut-panel.c +++ /dev/null @@ -1,73 +0,0 @@ -/* linux/arch/arm/mach-msm/board-halibut-mddi.c -** Author: Brian Swetland -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include "proc_comm.h" -#include "devices.h" -#include "board-halibut.h" - -static void halibut_mddi_power_client(struct msm_mddi_client_data *mddi, - int on) -{ -} - -static struct resource resources_msm_fb = { - .start = MSM_FB_BASE, - .end = MSM_FB_BASE + MSM_FB_SIZE - 1, - .flags = IORESOURCE_MEM, -}; - -static struct msm_fb_data fb_data = { - .xres = 800, - .yres = 480, - .output_format = 0, -}; - -static struct msm_mddi_platform_data mddi_pdata = { - .clk_rate = 122880000, - .power_client = halibut_mddi_power_client, - .fb_resource = &resources_msm_fb, - .num_clients = 1, - .client_platform_data = { - { - .product_id = (0x4474 << 16 | 0xc065), - .name = "mddi_c_dummy", - .id = 0, - .client_data = &fb_data, - .clk_rate = 0, - }, - }, -}; - -int __init halibut_init_panel(void) -{ - int rc; - - if (!machine_is_halibut()) - return 0; - - rc = platform_device_register(&msm_device_mdp); - if (rc) - return rc; - - msm_device_mddi0.dev.platform_data = &mddi_pdata; - return platform_device_register(&msm_device_mddi0); -} - -device_initcall(halibut_init_panel); diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c deleted file mode 100644 index 2915f66d..00000000 --- a/arch/arm/mach-msm/board-halibut.c +++ /dev/null @@ -1,482 +0,0 @@ -/* linux/arch/arm/mach-msm/board-halibut.c - * - * Copyright (C) 2007 Google, Inc. - * Author: Brian Swetland - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "devices.h" -#include "board-halibut.h" -#include "proc_comm.h" - -static struct resource smc91x_resources[] = { - [0] = { - .start = 0x9C004300, - .end = 0x9C004400, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = MSM_GPIO_TO_INT(49), - .end = MSM_GPIO_TO_INT(49), - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device smc91x_device = { - .name = "smc91x", - .id = 0, - .num_resources = ARRAY_SIZE(smc91x_resources), - .resource = smc91x_resources, -}; - -static struct i2c_board_info i2c_devices[] = { -#ifdef CONFIG_MT9D112 - { - I2C_BOARD_INFO("mt9d112", 0x78 >> 1), - }, -#endif -#ifdef CONFIG_S5K3E2FX - { - I2C_BOARD_INFO("s5k3e2fx", 0x20 >> 1), - }, -#endif -#ifdef CONFIG_MT9P012 - { - I2C_BOARD_INFO("mt9p012", 0x6C >> 1), - }, -#endif -#if defined(CONFIG_MT9T013) || defined(CONFIG_SENSORS_MT9T013) - { - I2C_BOARD_INFO("mt9t013", 0x6C), // 0x78>>1 - }, -#endif -}; - -#ifdef CONFIG_MSM_CAMERA -static uint32_t camera_off_gpio_table[] = { - /* parallel CAMERA interfaces */ - PCOM_GPIO_CFG(0, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT0 */ - PCOM_GPIO_CFG(1, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT1 */ - PCOM_GPIO_CFG(2, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT2 */ - PCOM_GPIO_CFG(3, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT3 */ - PCOM_GPIO_CFG(4, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT4 */ - PCOM_GPIO_CFG(5, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */ - PCOM_GPIO_CFG(6, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */ - PCOM_GPIO_CFG(7, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */ - PCOM_GPIO_CFG(8, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT8 */ - PCOM_GPIO_CFG(9, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT9 */ - PCOM_GPIO_CFG(10, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT10 */ - PCOM_GPIO_CFG(11, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT11 */ - PCOM_GPIO_CFG(12, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* PCLK */ - PCOM_GPIO_CFG(13, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */ - PCOM_GPIO_CFG(14, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */ - PCOM_GPIO_CFG(15, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), /* MCLK */ -}; - -static uint32_t camera_on_gpio_table[] = { - /* parallel CAMERA interfaces */ - PCOM_GPIO_CFG(0, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT0 */ - PCOM_GPIO_CFG(1, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT1 */ - PCOM_GPIO_CFG(2, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT2 */ - PCOM_GPIO_CFG(3, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT3 */ - PCOM_GPIO_CFG(4, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT4 */ - PCOM_GPIO_CFG(5, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */ - PCOM_GPIO_CFG(6, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */ - PCOM_GPIO_CFG(7, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */ - PCOM_GPIO_CFG(8, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT8 */ - PCOM_GPIO_CFG(9, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT9 */ - PCOM_GPIO_CFG(10, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT10 */ - PCOM_GPIO_CFG(11, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT11 */ - PCOM_GPIO_CFG(12, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_16MA), /* PCLK */ - PCOM_GPIO_CFG(13, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */ - PCOM_GPIO_CFG(14, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */ - PCOM_GPIO_CFG(15, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), /* MCLK */ -}; - -static void config_gpio_table(uint32_t *table, int len) -{ - int n; - unsigned id; - for (n = 0; n < len; n++) { - id = table[n]; - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); - } -} - -static void config_camera_on_gpios(void) -{ - config_gpio_table(camera_on_gpio_table, - ARRAY_SIZE(camera_on_gpio_table)); -} - -static void config_camera_off_gpios(void) -{ - config_gpio_table(camera_off_gpio_table, - ARRAY_SIZE(camera_off_gpio_table)); -} - -static struct msm_camera_device_platform_data msm_camera_device_data = { - .camera_gpio_on = config_camera_on_gpios, - .camera_gpio_off = config_camera_off_gpios, - .ioext.mdcphy = MSM_MDC_PHYS, - .ioext.mdcsz = MSM_MDC_SIZE, - .ioext.appphy = MSM_CLK_CTL_PHYS, - .ioext.appsz = MSM_CLK_CTL_SIZE, -}; - -#ifdef CONFIG_MT9D112 -static struct msm_camera_sensor_info msm_camera_sensor_mt9d112_data = { - .sensor_name = "mt9d112", - .sensor_reset = 89, - .sensor_pwd = 85, - .vcm_pwd = 0, - .pdata = &msm_camera_device_data, -}; - -static struct platform_device msm_camera_sensor_mt9d112 = { - .name = "msm_camera_mt9d112", - .dev = { - .platform_data = &msm_camera_sensor_mt9d112_data, - }, -}; -#endif - -#ifdef CONFIG_S5K3E2FX -static struct msm_camera_sensor_info msm_camera_sensor_s5k3e2fx_data = { - .sensor_name = "s5k3e2fx", - .sensor_reset = 89, - .sensor_pwd = 85, - .vcm_pwd = 0, - .pdata = &msm_camera_device_data, -}; - -static struct platform_device msm_camera_sensor_s5k3e2fx = { - .name = "msm_camera_s5k3e2fx", - .dev = { - .platform_data = &msm_camera_sensor_s5k3e2fx_data, - }, -}; -#endif - -#ifdef CONFIG_MT9P012 -static struct msm_camera_sensor_info msm_camera_sensor_mt9p012_data = { - .sensor_name = "mt9p012", - .sensor_reset = 89, - .sensor_pwd = 85, - .vcm_pwd = 88, - .pdata = &msm_camera_device_data, -}; - -static struct platform_device msm_camera_sensor_mt9p012 = { - .name = "msm_camera_mt9p012", - .dev = { - .platform_data = &msm_camera_sensor_mt9p012_data, - }, -}; -#endif - -#ifdef CONFIG_MT9T013 -static struct msm_camera_sensor_info msm_camera_sensor_mt9t013_data = { - .sensor_name = "mt9t013", - .sensor_reset = 89, - .sensor_pwd = 85, - .vcm_pwd = 0, - .pdata = &msm_camera_device_data, -}; - -static struct platform_device msm_camera_sensor_mt9t013 = { - .name = "msm_camera_mt9t013", - .dev = { - .platform_data = &msm_camera_sensor_mt9t013_data, - }, -}; -#endif -#endif /*CONFIG_MSM_CAMERA*/ - -#define SND(desc, num) { .name = #desc, .id = num } -static struct snd_endpoint snd_endpoints_list[] = { - SND(HANDSET, 0), - SND(HEADSET, 2), - SND(SPEAKER, 6), - SND(BT, 12), - SND(CURRENT, 25), -}; -#undef SND - -static struct msm_snd_endpoints halibut_snd_endpoints = { - .endpoints = snd_endpoints_list, - .num = sizeof(snd_endpoints_list) / sizeof(struct snd_endpoint) -}; - -static struct platform_device halibut_snd = { - .name = "msm_snd", - .id = -1, - .dev = { - .platform_data = &halibut_snd_endpoints - }, -}; - -static struct android_pmem_platform_data android_pmem_pdata = { - .name = "pmem", - .start = MSM_PMEM_MDP_BASE, - .size = MSM_PMEM_MDP_SIZE, - .no_allocator = 0, - .cached = 1, -}; - -static struct android_pmem_platform_data android_pmem_camera_pdata = { - .name = "pmem_camera", - .start = MSM_PMEM_CAMERA_BASE, - .size = MSM_PMEM_CAMERA_SIZE, - .no_allocator = 1, - .cached = 1, -}; - -static struct android_pmem_platform_data android_pmem_adsp_pdata = { - .name = "pmem_adsp", - .start = MSM_PMEM_ADSP_BASE, - .size = MSM_PMEM_ADSP_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_gpu0_pdata = { - .name = "pmem_gpu0", - .start = MSM_PMEM_GPU0_BASE, - .size = MSM_PMEM_GPU0_SIZE, - .no_allocator = 1, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_gpu1_pdata = { - .name = "pmem_gpu1", - .start = MSM_PMEM_GPU1_BASE, - .size = MSM_PMEM_GPU1_SIZE, - .no_allocator = 1, - .cached = 0, -}; - -static struct platform_device android_pmem_device = { - .name = "android_pmem", - .id = 0, - .dev = { .platform_data = &android_pmem_pdata }, -}; - -static struct platform_device android_pmem_adsp_device = { - .name = "android_pmem", - .id = 1, - .dev = { .platform_data = &android_pmem_adsp_pdata }, -}; - -static struct platform_device android_pmem_gpu0_device = { - .name = "android_pmem", - .id = 2, - .dev = { .platform_data = &android_pmem_gpu0_pdata }, -}; - -static struct platform_device android_pmem_gpu1_device = { - .name = "android_pmem", - .id = 3, - .dev = { .platform_data = &android_pmem_gpu1_pdata }, -}; - -static struct platform_device android_pmem_camera_device = { - .name = "android_pmem", - .id = 4, - .dev = { .platform_data = &android_pmem_camera_pdata }, -}; - -static int halibut_phy_init_seq[] = { 0x1D, 0x0D, 0x1D, 0x10, -1 }; - -static struct msm_hsusb_platform_data msm_hsusb_pdata = { - .phy_init_seq = halibut_phy_init_seq, -}; - -static struct usb_mass_storage_platform_data mass_storage_pdata = { - .nluns = 1, - .vendor = "Qualcomm", - .product = "Halibut", - .release = 0x0100, -}; - -static struct platform_device usb_mass_storage_device = { - .name = "usb_mass_storage", - .id = -1, - .dev = { - .platform_data = &mass_storage_pdata, - }, -}; - -static char *usb_functions[] = { "usb_mass_storage" }; -static char *usb_functions_adb[] = { "usb_mass_storage", "adb" }; - -static struct android_usb_product usb_products[] = { - { - .product_id = 0x0c01, - .num_functions = ARRAY_SIZE(usb_functions), - .functions = usb_functions, - }, - { - .product_id = 0x0c02, - .num_functions = ARRAY_SIZE(usb_functions_adb), - .functions = usb_functions_adb, - }, -}; - -static struct android_usb_platform_data android_usb_pdata = { - .vendor_id = 0x18d1, - .product_id = 0x0c01, - .version = 0x0100, - .serial_number = "42", - .product_name = "Halibutdroid", - .manufacturer_name = "Qualcomm", - .num_products = ARRAY_SIZE(usb_products), - .products = usb_products, - .num_functions = ARRAY_SIZE(usb_functions_adb), - .functions = usb_functions_adb, -}; - -static struct platform_device android_usb_device = { - .name = "android_usb", - .id = -1, - .dev = { - .platform_data = &android_usb_pdata, - }, -}; - -static struct platform_device fish_battery_device = { - .name = "fish_battery", -}; - -static struct platform_device *devices[] __initdata = { -#if !defined(CONFIG_MSM_SERIAL_DEBUGGER) - &msm_device_uart3, -#endif - &msm_device_smd, - &msm_device_nand, - &msm_device_hsusb, - &usb_mass_storage_device, - &android_usb_device, - &msm_device_i2c, - &smc91x_device, - &halibut_snd, -#ifdef CONFIG_MT9T013 - &msm_camera_sensor_mt9t013, -#endif -#ifdef CONFIG_MT9D112 - &msm_camera_sensor_mt9d112, -#endif -#ifdef CONFIG_S5K3E2FX - &msm_camera_sensor_s5k3e2fx, -#endif -#ifdef CONFIG_MT9P012 - &msm_camera_sensor_mt9p012, -#endif - &android_pmem_device, - &android_pmem_adsp_device, - &android_pmem_gpu0_device, - &android_pmem_gpu1_device, - &android_pmem_camera_device, - &fish_battery_device, -}; - -extern struct sys_timer msm_timer; - -static void __init halibut_init_irq(void) -{ - msm_init_irq(); -} - -static struct msm_acpu_clock_platform_data halibut_clock_data = { - .acpu_switch_time_us = 50, - .max_speed_delta_khz = 256000, - .vdd_switch_time_us = 62, - .power_collapse_khz = 19200000, - .wait_for_irq_khz = 128000000, -}; - -extern void msm_serial_debug_init(unsigned int base, int irq, - struct device *clk_device, int signal_irq); - -static void __init halibut_init(void) -{ -#if defined(CONFIG_MSM_SERIAL_DEBUGGER) - msm_serial_debug_init(MSM_UART3_PHYS, INT_UART3, - &msm_device_uart3.dev, 1); -#endif - msm_device_hsusb.dev.platform_data = &msm_hsusb_pdata; - msm_acpu_clock_init(&halibut_clock_data); -#ifdef CONFIG_MSM_CAMERA - config_camera_off_gpios(); /* might not be necessary */ -#endif - i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices)); - platform_add_devices(devices, ARRAY_SIZE(devices)); - i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices)); - msm_hsusb_set_vbus_state(1); -} - -static void __init halibut_fixup(struct machine_desc *desc, struct tag *tags, - char **cmdline, struct meminfo *mi) -{ - mi->nr_banks = 1; - mi->bank[0].start = PHYS_OFFSET; - mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET); - mi->bank[0].size = (101*1024*1024); -} - -static void __init halibut_map_io(void) -{ - msm_map_common_io(); - msm_clock_init(); -} - -MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") -#ifdef CONFIG_MSM_DEBUG_UART - .phys_io = MSM_DEBUG_UART_PHYS, - .io_pg_offst = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc, -#endif - .boot_params = 0x10000100, - .fixup = halibut_fixup, - .map_io = halibut_map_io, - .init_irq = halibut_init_irq, - .init_machine = halibut_init, - .timer = &msm_timer, -MACHINE_END diff --git a/arch/arm/mach-msm/board-halibut.h b/arch/arm/mach-msm/board-halibut.h deleted file mode 100644 index edcdacb3..00000000 --- a/arch/arm/mach-msm/board-halibut.h +++ /dev/null @@ -1,20 +0,0 @@ -/* linux/arch/arm/mach-msm/board-trout.h - * ** Author: Brian Swetland - * */ -#ifndef __ARCH_ARM_MACH_MSM_BOARD_HALIBUT_H -#define __ARCH_ARM_MACH_MSM_BOARD_HALIBUT_H - -#define MSM_PMEM_GPU0_BASE (0x10000000 + 64*SZ_1M) -#define MSM_PMEM_GPU0_SIZE 0x800000 -#define MSM_PMEM_MDP_BASE (MSM_PMEM_GPU0_BASE + MSM_PMEM_GPU0_SIZE) -#define MSM_PMEM_MDP_SIZE 0x800000 -#define MSM_PMEM_ADSP_BASE (MSM_PMEM_MDP_BASE + MSM_PMEM_MDP_SIZE) -#define MSM_PMEM_ADSP_SIZE 0x800000 -#define MSM_PMEM_GPU1_BASE (MSM_PMEM_ADSP_BASE + MSM_PMEM_ADSP_SIZE) -#define MSM_PMEM_GPU1_SIZE 0x800000 -#define MSM_FB_BASE (MSM_PMEM_GPU1_BASE + MSM_PMEM_GPU1_SIZE) -#define MSM_FB_SIZE 0x200000 -#define MSM_PMEM_CAMERA_BASE (MSM_FB_BASE + MSM_FB_SIZE) -#define MSM_PMEM_CAMERA_SIZE 0xA00000 - -#endif diff --git a/arch/arm/mach-msm/board-supersonic-audio.c b/arch/arm/mach-msm/board-supersonic-audio.c deleted file mode 100644 index 40b47780..00000000 --- a/arch/arm/mach-msm/board-supersonic-audio.c +++ /dev/null @@ -1,320 +0,0 @@ -/* arch/arm/mach-msm/board-supersonic-audio.c - * - * Copyright (C) 2009 HTC Corporation - * Copyright (C) 2009 Google Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "board-supersonic.h" -#include "proc_comm.h" -#include "pmic.h" - -#if 1 -#define D(fmt, args...) printk(KERN_INFO "Audio: "fmt, ##args) -#else -#define D(fmt, args...) do {} while (0) -#endif - -static struct mutex mic_lock; -static struct mutex bt_sco_lock; -static struct mutex hdmi_i2s_lock; -static int headset_status = 0; - -static struct q6_hw_info q6_audio_hw[Q6_HW_COUNT] = { - [Q6_HW_HANDSET] = { - .min_gain = -2000, - .max_gain = 0, - }, - [Q6_HW_HEADSET] = { - .min_gain = -2000, - .max_gain = 0, - }, - [Q6_HW_SPEAKER] = { - .min_gain = -1500, - .max_gain = 0, - }, - [Q6_HW_TTY] = { - .min_gain = -2000, - .max_gain = 0, - }, - [Q6_HW_BT_SCO] = { - .min_gain = -2000, - .max_gain = 0, - }, - [Q6_HW_BT_A2DP] = { - .min_gain = -2000, - .max_gain = 0, - }, -}; - -void supersonic_headset_enable(int en) -{ - D("%s %d\n", __func__, en); - /* enable audio amp */ - if (en != headset_status) { - headset_status = en; - if(en) { - gpio_set_value(SUPERSONIC_AUD_JACKHP_EN, 1); - mdelay(10); - if (system_rev == 0) - set_headset_amp(1); - } else { - if (system_rev == 0) - set_headset_amp(0); - gpio_set_value(SUPERSONIC_AUD_JACKHP_EN, 0); - } - } -} - -void supersonic_speaker_enable(int en) -{ - struct spkr_config_mode scm; - memset(&scm, 0, sizeof(scm)); - - D("%s %d\n", __func__, en); - if (en) { - scm.is_right_chan_en = 0; - scm.is_left_chan_en = 1; - scm.is_stereo_en = 0; - scm.is_hpf_en = 1; - pmic_spkr_en_mute(LEFT_SPKR, 0); - pmic_set_spkr_configuration(&scm); - pmic_spkr_en(LEFT_SPKR, 1); - - /* unmute */ - pmic_spkr_en_mute(LEFT_SPKR, 1); - } else { - pmic_spkr_en_mute(LEFT_SPKR, 0); - - pmic_spkr_en(LEFT_SPKR, 0); - - pmic_set_spkr_configuration(&scm); - } - set_speaker_amp(en); - -} - -void supersonic_receiver_enable(int en) -{ - /* After XB*/ - if (system_rev >= 1) { - struct spkr_config_mode scm; - memset(&scm, 0, sizeof(scm)); - - D("%s %d\n", __func__, en); - if (en) { - scm.is_right_chan_en = 1; - scm.is_left_chan_en = 0; - scm.is_stereo_en = 0; - scm.is_hpf_en = 1; - pmic_spkr_en_mute(RIGHT_SPKR, 0); - pmic_set_spkr_configuration(&scm); - pmic_spkr_en(RIGHT_SPKR, 1); - - /* unmute */ - pmic_spkr_en_mute(RIGHT_SPKR, 1); - } else { - pmic_spkr_en_mute(RIGHT_SPKR, 0); - - pmic_spkr_en(RIGHT_SPKR, 0); - - pmic_set_spkr_configuration(&scm); - } - } -} - -static uint32_t hdmi_i2s_enable[] = { - PCOM_GPIO_CFG(SUPERSONIC_I2S_CLK, 2, GPIO_OUTPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_I2S_WS, 1, GPIO_OUTPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_I2S_DOUT, 1, GPIO_OUTPUT, - GPIO_PULL_DOWN, GPIO_2MA), -}; - -static uint32_t hdmi_i2s_disable[] = { - PCOM_GPIO_CFG(SUPERSONIC_I2S_CLK, 0, GPIO_OUTPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_I2S_WS, 0, GPIO_OUTPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_I2S_DOUT, 0, GPIO_OUTPUT, - GPIO_PULL_DOWN, GPIO_2MA), -}; - -void supersonic_hdmi_i2s_enable(int en) -{ - static int hdmi_i2s_refcount; - D("%s %d\n", __func__, en); - mutex_lock(&hdmi_i2s_lock); - if (en) { - if (++hdmi_i2s_refcount == 1) - config_gpio_table(hdmi_i2s_enable, - ARRAY_SIZE(hdmi_i2s_enable)); - } else { - if (--hdmi_i2s_refcount == 0) { - config_gpio_table(hdmi_i2s_disable, ARRAY_SIZE(hdmi_i2s_disable)); - } - } - mutex_unlock(&hdmi_i2s_lock); -} - - -static uint32_t bt_sco_enable[] = { - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_OUT, 1, GPIO_INPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_IN, 1, GPIO_INPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_SYNC, 2, GPIO_INPUT, - GPIO_PULL_DOWN, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_CLK, 2, GPIO_INPUT, - GPIO_PULL_DOWN, GPIO_2MA), -}; - -static uint32_t bt_sco_disable[] = { - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_OUT, 0, GPIO_OUTPUT, - GPIO_NO_PULL, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_IN, 0, GPIO_INPUT, - GPIO_PULL_UP, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_SYNC, 0, GPIO_OUTPUT, - GPIO_NO_PULL, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_BT_PCM_CLK, 0, GPIO_OUTPUT, - GPIO_NO_PULL, GPIO_2MA), -}; - -void supersonic_bt_sco_enable(int en) -{ - static int bt_sco_refcount; - D("%s %d\n", __func__, en); - mutex_lock(&bt_sco_lock); - if (en) { - if (++bt_sco_refcount == 1) - config_gpio_table(bt_sco_enable, - ARRAY_SIZE(bt_sco_enable)); - } else { - if (--bt_sco_refcount == 0) { - config_gpio_table(bt_sco_disable, ARRAY_SIZE(bt_sco_disable)); - gpio_set_value(SUPERSONIC_BT_PCM_OUT, 0); - gpio_set_value(SUPERSONIC_BT_PCM_SYNC,0); - gpio_set_value(SUPERSONIC_BT_PCM_CLK,0); - } - } - mutex_unlock(&bt_sco_lock); -} - -void supersonic_int_mic_enable(int en) -{ - D("%s %d\n", __func__, en); - if (en) - pmic_mic_en(ON_CMD); - else - pmic_mic_en(OFF_CMD); -} - -void supersonic_ext_mic_enable(int en) -{ - static int old_state = 0, new_state = 0; - - D("%s %d\n", __func__, en); - - mutex_lock(&mic_lock); - if (!!en) - new_state++; - else - new_state--; - - if (new_state == 1 && old_state == 0) { - gpio_set_value(SUPERSONIC_AUD_2V5_EN, 1); - } else if (new_state == 0 && old_state == 1) - gpio_set_value(SUPERSONIC_AUD_2V5_EN, 0); - else - D("%s: do nothing %d %d\n", __func__, old_state, new_state); - - old_state = new_state; - mutex_unlock(&mic_lock); -} - -void supersonic_analog_init(void) -{ - D("%s\n", __func__); - /* stereo pmic init */ - pmic_spkr_set_gain(LEFT_SPKR, SPKR_GAIN_PLUS12DB); - pmic_spkr_set_gain(RIGHT_SPKR, SPKR_GAIN_00DB); - pmic_spkr_en_right_chan(OFF_CMD); - pmic_spkr_en_left_chan(OFF_CMD); - pmic_spkr_add_right_left_chan(OFF_CMD); - pmic_spkr_en_stereo(OFF_CMD); - pmic_spkr_select_usb_with_hpf_20hz(OFF_CMD); - pmic_spkr_bypass_mux(OFF_CMD); - pmic_spkr_en_hpf(ON_CMD); - pmic_spkr_en_sink_curr_from_ref_volt_cir(OFF_CMD); - pmic_spkr_set_mux_hpf_corner_freq(SPKR_FREQ_0_73KHZ); - pmic_mic_set_volt(MIC_VOLT_1_80V); - pmic_set_speaker_delay(SPKR_DLY_100MS); - - gpio_direction_output(SUPERSONIC_AUD_JACKHP_EN, 0); - gpio_set_value(SUPERSONIC_AUD_JACKHP_EN, 0); - - mutex_lock(&bt_sco_lock); - config_gpio_table(bt_sco_disable, ARRAY_SIZE(bt_sco_disable)); - gpio_set_value(SUPERSONIC_BT_PCM_OUT, 0); - gpio_set_value(SUPERSONIC_BT_PCM_SYNC,0); - gpio_set_value(SUPERSONIC_BT_PCM_CLK,0); - mutex_unlock(&bt_sco_lock); -} - -int supersonic_get_rx_vol(uint8_t hw, int level) -{ - struct q6_hw_info *info; - int vol; - - info = &q6_audio_hw[hw]; - vol = info->min_gain + ((info->max_gain - info->min_gain) * level) / 100; - D("%s %d\n", __func__, vol); - return vol; -} - -static struct qsd_acoustic_ops acoustic = { - .enable_mic_bias = supersonic_ext_mic_enable, -}; - -static struct q6audio_analog_ops ops = { - .init = supersonic_analog_init, - .speaker_enable = supersonic_speaker_enable, - .headset_enable = supersonic_headset_enable, - .receiver_enable = supersonic_receiver_enable, - .bt_sco_enable = supersonic_bt_sco_enable, - .int_mic_enable = supersonic_int_mic_enable, - .ext_mic_enable = supersonic_ext_mic_enable, - .i2s_enable = supersonic_hdmi_i2s_enable, - .get_rx_vol = supersonic_get_rx_vol, -}; - -void __init supersonic_audio_init(void) -{ - mutex_init(&mic_lock); - mutex_init(&bt_sco_lock); - mutex_init(&hdmi_i2s_lock); -#if defined(CONFIG_QSD_AUDIO) - q6audio_register_analog_ops(&ops); -#endif - acoustic_register_ops(&acoustic); -} - diff --git a/arch/arm/mach-msm/board-supersonic-keypad.c b/arch/arm/mach-msm/board-supersonic-keypad.c deleted file mode 100644 index 3132719c..00000000 --- a/arch/arm/mach-msm/board-supersonic-keypad.c +++ /dev/null @@ -1,96 +0,0 @@ -/* arch/arm/mach-msm/board-supersonic-keypad.c - * - * Copyright (C) 2009 Google, Inc - * Copyright (C) 2009 HTC Corporation. - * - * Author: Dima Zavin - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include -#include -#include - -#include - -#include "board-supersonic.h" - - -static struct gpio_event_direct_entry supersonic_keypad_nav_map[] = { - { SUPERSONIC_POWER_KEY, KEY_POWER }, - { SUPERSONIC_VOLUME_UP, KEY_VOLUMEUP }, - { SUPERSONIC_VOLUME_DOWN, KEY_VOLUMEDOWN }, -}; - -static struct gpio_event_input_info supersonic_keypad_nav_info = { - .info.func = gpio_event_input_func, - .flags = GPIOEDF_PRINT_KEYS, - .type = EV_KEY, - .keymap = supersonic_keypad_nav_map, - .debounce_time.tv.nsec = 20 * NSEC_PER_MSEC, - .keymap_size = ARRAY_SIZE(supersonic_keypad_nav_map) -}; - -static struct gpio_event_info *supersonic_keypad_info[] = { - &supersonic_keypad_nav_info.info, -}; - -static struct gpio_event_platform_data supersonic_keypad_data = { - .name = "supersonic-keypad", - .info = supersonic_keypad_info, - .info_count = ARRAY_SIZE(supersonic_keypad_info) -}; - -static struct platform_device supersonic_keypad_device = { - .name = GPIO_EVENT_DEV_NAME, - .id = 0, - .dev = { - .platform_data = &supersonic_keypad_data, - }, -}; - -static struct keyreset_platform_data supersonic_reset_keys_pdata = { - .keys_down = { - KEY_POWER, - KEY_VOLUMEUP, - KEY_VOLUMEDOWN, - 0 - }, -}; - -static struct platform_device supersonic_reset_keys_device = { - .name = KEYRESET_NAME, - .dev.platform_data = &supersonic_reset_keys_pdata, -}; - -static int __init supersonic_init_keypad(void) -{ - int ret; - - if (!machine_is_supersonic()) - return 0; - - if (platform_device_register(&supersonic_reset_keys_device)) - printk(KERN_WARNING "%s: register reset key fail\n", __func__); - - ret = platform_device_register(&supersonic_keypad_device); - if (ret != 0) - return ret; - - return 0; -} - -device_initcall(supersonic_init_keypad); - - diff --git a/arch/arm/mach-msm/board-supersonic-microp.c b/arch/arm/mach-msm/board-supersonic-microp.c deleted file mode 100644 index 060566eb..00000000 --- a/arch/arm/mach-msm/board-supersonic-microp.c +++ /dev/null @@ -1,437 +0,0 @@ -/* arch/arm/mach-msm/board-supersonic-microp.c - * Copyright (C) 2009 HTC Corporation. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. -*/ -#ifdef CONFIG_MICROP_COMMON -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "board-supersonic.h" - -#define INT_PSENSOR (1<<4) - -static int misc_opened; -static unsigned int als_power_control; -static struct mutex als_power_lock; - -static void p_sensor_do_work(struct work_struct *w); -static DECLARE_WORK(p_sensor_work, p_sensor_do_work); - -struct wake_lock proximity_wake_lock; - -static struct capella_cm3602_data { - struct input_dev *input_dev; - struct capella_cm3602_platform_data *pdata; - int enabled; - struct workqueue_struct *p_sensor_wq; -} the_data; - -static int psensor_intr_enable(uint8_t enable) -{ - int ret; - uint8_t addr, data[2]; - - if (enable) - addr = MICROP_I2C_WCMD_GPI_INT_CTL_EN; - else - addr = MICROP_I2C_WCMD_GPI_INT_CTL_DIS; - - data[0] = INT_PSENSOR >> 8; - data[1] = INT_PSENSOR & 0xFF; - ret = microp_i2c_write(addr, data, 2); - if (ret < 0) - pr_err("%s: %s p-sensor interrupt failed\n", - __func__, (enable ? "enable" : "disable")); - - return ret; -} - -static int supersonic_microp_function_init(struct i2c_client *client) -{ - struct microp_i2c_platform_data *pdata; - struct microp_i2c_client_data *cdata; - uint8_t data[20]; - int i, j; - int ret; - - pdata = client->dev.platform_data; - cdata = i2c_get_clientdata(client); - - /* Headset remote key */ - ret = microp_function_check(client, MICROP_FUNCTION_REMOTEKEY); - if (ret >= 0) { - i = ret; - pdata->function_node[MICROP_FUNCTION_REMOTEKEY] = i; - cdata->int_pin.int_remotekey = - pdata->microp_function[i].int_pin; - - for (j = 0; j < 6; j++) { - data[j] = (uint8_t)(pdata->microp_function[i].levels[j] >> 8); - data[j + 6] = (uint8_t)(pdata->microp_function[i].levels[j]); - } - ret = microp_i2c_write(MICROP_I2C_WCMD_REMOTEKEY_TABLE, - data, 12); - if (ret) - goto exit; - } - - /* Reset button interrupt */ - ret = microp_write_interrupt(client, (1<<8), 1); - if (ret) - goto exit; - - /* HDMI interrupt */ - ret = microp_write_interrupt(client, (1 << 1), 1); - if (ret) - goto exit; - - return 0; - -exit: - return ret; -} - -static int report_psensor_data(void) -{ - int ret, ps_data = 0; - uint8_t data[3] = {0, 0, 0}; - - ret = microp_i2c_read(MICROP_I2C_RCMD_GPIO_STATUS, data, 3); - if (ret < 0) - pr_err("%s: read data failed\n", __func__); - else { - ps_data = (data[2] & 0x10) ? 1 : 0; - pr_info("proximity %s\n", ps_data ? "FAR" : "NEAR"); - - /* 0 is close, 1 is far */ - input_report_abs(the_data.input_dev, ABS_DISTANCE, ps_data); - input_sync(the_data.input_dev); - - wake_lock_timeout(&proximity_wake_lock, 2*HZ); - } - - return ret; -} - -static int capella_cm3602_enable(struct capella_cm3602_data *data) -{ - int rc; - pr_info("%s\n", __func__); - if (data->enabled) { - pr_info("%s: already enabled\n", __func__); - return 0; - } - - /* dummy report */ - input_report_abs(data->input_dev, ABS_DISTANCE, -1); - input_sync(data->input_dev); - - rc = data->pdata->power(PS_PWR_ON, 1); - if (rc < 0) - return -EIO; - - rc = gpio_direction_output(data->pdata->p_en, 0); - if (rc < 0) { - pr_err("%s: set psesnor enable failed!!", - __func__); - return -EIO; - } - msleep(220); - rc = psensor_intr_enable(1); - if (rc < 0) - return -EIO; - - data->enabled = 1; - report_psensor_data(); - - return rc; -} - -static int capella_cm3602_disable(struct capella_cm3602_data *data) -{ - int rc = -EIO; - pr_info("%s\n", __func__); - if (!data->enabled) { - pr_info("%s: already disabled\n", __func__); - return 0; - } - - rc = psensor_intr_enable(0); - if (rc < 0) - return -EIO; - - rc = gpio_direction_output(data->pdata->p_en, 1); - if (rc < 0) { - pr_err("%s: set GPIO failed!!", __func__); - return -EIO; - } - - rc = data->pdata->power(PS_PWR_ON, 0); - if (rc < 0) - return -EIO; - - data->enabled = 0; - return rc; -} - -static ssize_t capella_cm3602_show(struct device *dev, - struct device_attribute *attr, char *buf) -{ - int ret; - - ret = sprintf(buf, "proximity enabled = %d\n", the_data.enabled); - - return ret; -} - -static ssize_t capella_cm3602_store(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t count - ) -{ - ssize_t val; - - val = -1; - sscanf(buf, "%u", &val); - if (val < 0 || val > 1) - return -EINVAL; - - /* Enable capella_cm3602*/ - if (val == 1) - capella_cm3602_enable(&the_data); - - /* Disable capella_cm3602*/ - if (val == 0) - capella_cm3602_disable(&the_data); - - return count; -} - -static DEVICE_ATTR(proximity, 0644, capella_cm3602_show, capella_cm3602_store); - -static int capella_cm3602_open(struct inode *inode, struct file *file) -{ - pr_info("%s\n", __func__); - if (misc_opened) - return -EBUSY; - misc_opened = 1; - return 0; -} - -static int capella_cm3602_release(struct inode *inode, struct file *file) -{ - pr_info("%s\n", __func__); - misc_opened = 0; - return capella_cm3602_disable(&the_data); -} - -static long capella_cm3602_ioctl(struct file *file, - unsigned int cmd, unsigned long arg) -{ - int val; - pr_info("%s cmd %d\n", __func__, _IOC_NR(cmd)); - switch (cmd) { - case CAPELLA_CM3602_IOCTL_ENABLE: - if (get_user(val, (unsigned long __user *)arg)) - return -EFAULT; - if (val) - return capella_cm3602_enable(&the_data); - else - return capella_cm3602_disable(&the_data); - break; - case CAPELLA_CM3602_IOCTL_GET_ENABLED: - return put_user(the_data.enabled, (unsigned long __user *)arg); - break; - default: - pr_err("%s: invalid cmd %d\n", __func__, _IOC_NR(cmd)); - return -EINVAL; - } -} - -static void p_sensor_do_work(struct work_struct *w) -{ - report_psensor_data(); -} - -static irqreturn_t p_sensor_irq_handler(int irq, void *data) -{ - struct capella_cm3602_data *ip = data; - queue_work(ip->p_sensor_wq, &p_sensor_work); - - return IRQ_HANDLED; -} - -static struct file_operations capella_cm3602_fops = { - .owner = THIS_MODULE, - .open = capella_cm3602_open, - .release = capella_cm3602_release, - .unlocked_ioctl = capella_cm3602_ioctl -}; - -static struct miscdevice capella_cm3602_misc = { - .minor = MISC_DYNAMIC_MINOR, - .name = "cm3602", - .fops = &capella_cm3602_fops -}; - -static int capella_cm3602_probe(struct platform_device *pdev) -{ - int rc = -1; - struct input_dev *input_dev; - struct capella_cm3602_data *ip; - struct capella_cm3602_platform_data *pdata; - - struct class *proximity_attr_class; - struct device *proximity_attr_dev; - - pr_info("%s: probe\n", __func__); - - pdata = dev_get_platdata(&pdev->dev); - - ip = &the_data; - platform_set_drvdata(pdev, ip); - - input_dev = input_allocate_device(); - if (!input_dev) { - pr_err("%s: could not allocate input device\n", __func__); - rc = -ENOMEM; - goto done; - } - ip->input_dev = input_dev; - ip->pdata = pdata; - input_set_drvdata(input_dev, ip); - - input_dev->name = "proximity"; - - set_bit(EV_ABS, input_dev->evbit); - input_set_abs_params(input_dev, ABS_DISTANCE, 0, 1, 0, 0); - - rc = input_register_device(input_dev); - if (rc < 0) { - pr_err("%s: could not register input device\n", __func__); - goto err_free_input_device; - } - - rc = misc_register(&capella_cm3602_misc); - if (rc < 0) { - pr_err("%s: could not register misc device\n", __func__); - goto err_unregister_input_device; - } - - wake_lock_init(&proximity_wake_lock, WAKE_LOCK_SUSPEND, "proximity"); - - proximity_attr_class = class_create(THIS_MODULE, "sensors"); - if (IS_ERR(proximity_attr_class)) { - pr_err("%s: class_create failed\n", __func__); - rc = PTR_ERR(proximity_attr_class); - proximity_attr_class = NULL; - goto err_create_class; - } - - proximity_attr_dev = device_create(proximity_attr_class, - NULL, 0, "%s", "proximity_sensor"); - if (unlikely(IS_ERR(proximity_attr_dev))) { - pr_err("%s: device create failed\n", __func__); - rc = PTR_ERR(proximity_attr_dev); - proximity_attr_dev = NULL; - goto err_create_proximity_attr_device; - } - - rc = device_create_file(proximity_attr_dev, &dev_attr_proximity); - if (rc) { - pr_err("%s: device_create_file failed\n", __func__); - goto err_create_proximity_device_file; - } - - ip->p_sensor_wq = create_workqueue("p-sensor_microp_wq"); - if (ip->p_sensor_wq == NULL) { - pr_err("%s: create_workqueue failed\n", __func__); - goto err_create_workqueue; - } - - rc = gpio_request(pdata->p_en, "gpio_proximity_en"); - if (rc < 0) { - pr_err("%s: gpio %d request failed (%d)\n", - __func__, pdata->p_en, rc); - goto err_request_proximity_en; - } - - rc = request_irq(pdata->p_out, p_sensor_irq_handler, - IRQF_TRIGGER_NONE, "p-sensor_microp", ip); - if (rc < 0) { - pr_err("%s: request_irq(%d) failed for (%d)\n", - __func__, pdata->p_out, rc); - goto err_request_proximity_irq; - } - - goto done; - -err_request_proximity_irq: - gpio_free(pdata->p_en); -err_request_proximity_en: - destroy_workqueue(ip->p_sensor_wq); -err_create_workqueue: - device_remove_file(proximity_attr_dev, &dev_attr_proximity); -err_create_proximity_device_file: - device_unregister(proximity_attr_dev); -err_create_proximity_attr_device: - class_destroy(proximity_attr_class); -err_create_class: - misc_deregister(&capella_cm3602_misc); -err_unregister_input_device: - input_unregister_device(input_dev); -err_free_input_device: - input_free_device(input_dev); -done: - return rc; -} - -static struct microp_ops ops = { - .init_microp_func = supersonic_microp_function_init, -}; - -void __init supersonic_microp_init(void) -{ - microp_register_ops(&ops); -} - -static struct platform_driver capella_cm3602_driver = { - .probe = capella_cm3602_probe, - .driver = { - .name = "supersonic_proximity", - .owner = THIS_MODULE - }, -}; - -static int __init supersonic_capella_cm3602_init(void) -{ - if (!machine_is_supersonic()) - return 0; - - return platform_driver_register(&capella_cm3602_driver); -} - -device_initcall(supersonic_capella_cm3602_init); - -#endif diff --git a/arch/arm/mach-msm/board-supersonic-mmc.c b/arch/arm/mach-msm/board-supersonic-mmc.c deleted file mode 100644 index 1588123b..00000000 --- a/arch/arm/mach-msm/board-supersonic-mmc.c +++ /dev/null @@ -1,464 +0,0 @@ -/* linux/arch/arm/mach-msm/board-supersonic-mmc.c - * - * Copyright (C) 2009 Google, Inc. - * Copyright (C) 2009 HTC Corporation - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include "board-supersonic.h" -#include "devices.h" -#include "proc_comm.h" - -#define DEBUG_SDSLOT_VDD 1 - -static bool opt_disable_sdcard; -static int __init supersonic_disablesdcard_setup(char *str) -{ - opt_disable_sdcard = (bool)simple_strtol(str, NULL, 0); - return 1; -} - -__setup("board_supersonic.disable_sdcard=", supersonic_disablesdcard_setup); - -static uint32_t sdcard_on_gpio_table[] = { - PCOM_GPIO_CFG(62, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ - PCOM_GPIO_CFG(63, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CMD */ - PCOM_GPIO_CFG(64, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT3 */ - PCOM_GPIO_CFG(65, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT2 */ - PCOM_GPIO_CFG(66, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(67, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ -}; - -static uint32_t sdcard_off_gpio_table[] = { - PCOM_GPIO_CFG(62, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ - PCOM_GPIO_CFG(63, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CMD */ - PCOM_GPIO_CFG(64, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(65, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(66, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(67, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ -}; - -static struct vreg *sdslot_vreg; -static uint32_t sdslot_vdd = 0xffffffff; -static uint32_t sdslot_vreg_enabled; - -static struct { - int mask; - int level; -} mmc_vdd_table[] = { - { MMC_VDD_28_29, 2850 }, - { MMC_VDD_29_30, 2900 }, -}; - -static uint32_t supersonic_sdslot_switchvdd(struct device *dev, unsigned int vdd) -{ - int i; - int ret; - - if (vdd == sdslot_vdd) - return 0; - - sdslot_vdd = vdd; - - if (vdd == 0) { -#if DEBUG_SDSLOT_VDD - printk(KERN_INFO "%s: Disabling SD slot power\n", __func__); -#endif - config_gpio_table(sdcard_off_gpio_table, - ARRAY_SIZE(sdcard_off_gpio_table)); - vreg_disable(sdslot_vreg); - sdslot_vreg_enabled = 0; - return 0; - } - - if (!sdslot_vreg_enabled) { - mdelay(5); - ret = vreg_enable(sdslot_vreg); - if (ret) - pr_err("%s: Error enabling vreg (%d)\n", __func__, ret); - udelay(500); - config_gpio_table(sdcard_on_gpio_table, - ARRAY_SIZE(sdcard_on_gpio_table)); - sdslot_vreg_enabled = 1; - } - - for (i = 0; i < ARRAY_SIZE(mmc_vdd_table); i++) { - if (mmc_vdd_table[i].mask != (1 << vdd)) - continue; - ret = vreg_set_level(sdslot_vreg, mmc_vdd_table[i].level); - if (ret) - pr_err("%s: Error setting level (%d)\n", __func__, ret); -#if DEBUG_SDSLOT_VDD - printk(KERN_INFO "%s: Setting level to %u (%s)\n", - __func__, mmc_vdd_table[i].level, - ret?"Failed":"Success"); -#endif - return 0; - } - - pr_err("%s: Invalid VDD (%d) specified\n", __func__, vdd); - return 0; -} - -static unsigned int supersonic_sdslot_status(struct device *dev) -{ - return (system_rev > 0)?1:!gpio_get_value(SUPERSONIC_GPIO_SDMC_CD_N); -} - -#define SUPERSONIC_MMC_VDD (MMC_VDD_28_29 | MMC_VDD_29_30) - -static unsigned int supersonic_sdslot_type = MMC_TYPE_SD; - -static struct mmc_platform_data supersonic_sdslot_data = { - .ocr_mask = SUPERSONIC_MMC_VDD, - .status = supersonic_sdslot_status, - .translate_vdd = supersonic_sdslot_switchvdd, - .slot_type = &supersonic_sdslot_type, -}; - -int msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, - unsigned int stat_irq, unsigned long stat_irq_flags); - - - -/* ---- WIFI ---- */ - -static uint32_t wifi_on_gpio_table[] = { - PCOM_GPIO_CFG(51, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(52, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(53, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(54, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT0 */ - PCOM_GPIO_CFG(55, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* CMD */ - PCOM_GPIO_CFG(56, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ - PCOM_GPIO_CFG(152, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), /* WLAN IRQ */ -}; - -static uint32_t wifi_off_gpio_table[] = { - PCOM_GPIO_CFG(51, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(52, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(53, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(54, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT0 */ - PCOM_GPIO_CFG(55, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), /* CMD */ - PCOM_GPIO_CFG(56, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ - PCOM_GPIO_CFG(152, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* WLAN IRQ */ -}; - -/* BCM4329 returns wrong sdio_vsn(1) when we read cccr, - * we use predefined value (sdio_vsn=2) here to initial sdio driver well - */ -static struct embedded_sdio_data supersonic_wifi_emb_data = { - .cccr = { - .sdio_vsn = 2, - .multi_block = 1, - .low_speed = 0, - .wide_bus = 0, - .high_power = 1, - .high_speed = 1, - }, -}; - -static void (*wifi_status_cb)(int card_present, void *dev_id); -static void *wifi_status_cb_devid; - -static int -supersonic_wifi_status_register(void (*callback)(int card_present, void *dev_id), - void *dev_id) -{ - if (wifi_status_cb) - return -EAGAIN; - wifi_status_cb = callback; - wifi_status_cb_devid = dev_id; - return 0; -} - -static int supersonic_wifi_cd; /* WiFi virtual 'card detect' status */ - -static unsigned int supersonic_wifi_status(struct device *dev) -{ - return supersonic_wifi_cd; -} - -static struct mmc_platform_data supersonic_wifi_data = { - .ocr_mask = MMC_VDD_28_29, - .status = supersonic_wifi_status, - .register_status_notify = supersonic_wifi_status_register, - .embedded_sdio = &supersonic_wifi_emb_data, -}; - -int supersonic_wifi_set_carddetect(int val) -{ - printk(KERN_INFO "%s: %d\n", __func__, val); - supersonic_wifi_cd = val; - if (wifi_status_cb) - wifi_status_cb(val, wifi_status_cb_devid); - else - printk(KERN_WARNING "%s: Nobody to notify\n", __func__); - return 0; -} -EXPORT_SYMBOL(supersonic_wifi_set_carddetect); - -int supersonic_wifi_power(int on) -{ - int rc = 0; - - printk(KERN_INFO "%s: %d\n", __func__, on); - - if (on) { - config_gpio_table(wifi_on_gpio_table, - ARRAY_SIZE(wifi_on_gpio_table)); - mdelay(50); - if (rc) - return rc; - } else { - config_gpio_table(wifi_off_gpio_table, - ARRAY_SIZE(wifi_off_gpio_table)); - } - - mdelay(100); - gpio_set_value(SUPERSONIC_GPIO_WIFI_SHUTDOWN_N, on); /* WIFI_SHUTDOWN */ - mdelay(100); - return 0; -} -EXPORT_SYMBOL(supersonic_wifi_power); - -int supersonic_wifi_reset(int on) -{ - printk(KERN_INFO "%s: do nothing\n", __func__); - return 0; -} - - -/* ---------------- WiMAX GPIO Settings --------------- */ -static uint32_t wimax_power_pin_gpio_table[] = { - PCOM_GPIO_CFG(48, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), - PCOM_GPIO_CFG(106, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), - PCOM_GPIO_CFG(154, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), - PCOM_GPIO_CFG(155, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), - PCOM_GPIO_CFG(156, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA) -}; - -static uint32_t wimax_on_gpio_table[] = { - PCOM_GPIO_CFG(88, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ - PCOM_GPIO_CFG(89, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CMD */ - PCOM_GPIO_CFG(90, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT3 */ - PCOM_GPIO_CFG(91, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT2 */ - PCOM_GPIO_CFG(92, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT1 */ - PCOM_GPIO_CFG(93, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT0 */ - /*WiMax_Host_2*/ - PCOM_GPIO_CFG(159, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), -}; - -static uint32_t wimax_off_gpio_table[] = { - PCOM_GPIO_CFG(88, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ - PCOM_GPIO_CFG(89, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CMD */ - PCOM_GPIO_CFG(90, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT3 */ - PCOM_GPIO_CFG(91, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT2 */ - PCOM_GPIO_CFG(92, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT1 */ - PCOM_GPIO_CFG(93, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT0 */ - /*WiMax_Host_2*/ - PCOM_GPIO_CFG(159, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), -}; - - -static void (*wimax_status_cb)(int card_present, void *dev_id); -static void *wimax_status_cb_devid; -static int mmc_wimax_cd = 0; -static int mmc_wimax_sdio_status = 0; -static int mmc_wimax_hostwakeup_gpio = 40; // GPIO40 - -static int supersonic_wimax_status_register(void (*callback)(int card_present, void *dev_id), void *dev_id) -{ - if (wimax_status_cb) - return -EAGAIN; - printk("%s\n", __func__); - wimax_status_cb = callback; - wimax_status_cb_devid = dev_id; - return 0; -} - -static unsigned int supersonic_wimax_status(struct device *dev) -{ - printk("%s\n", __func__); - return mmc_wimax_cd; -} - -void mmc_wimax_set_carddetect(int val) -{ - printk("%s: %d\n", __func__, val); - mmc_wimax_cd = val; - if (wimax_status_cb) { - wimax_status_cb(val, wimax_status_cb_devid); - } else - printk(KERN_WARNING "%s: Nobody to notify\n", __func__); -} -EXPORT_SYMBOL(mmc_wimax_set_carddetect); - -static unsigned int supersonic_wimax_type = MMC_TYPE_SDIO_WIMAX; - -static struct mmc_platform_data supersonic_wimax_data = { - .ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29 | MMC_VDD_29_30, - .status = supersonic_wimax_status, - .register_status_notify = supersonic_wimax_status_register, - .embedded_sdio = NULL, - .slot_type = &supersonic_wimax_type, -}; - -struct _vreg -{ - const char *name; - unsigned id; -}; - - -/* 2 : wimax UART, 1 : CPU uart, 0 : usb -CPU_WIMAX_SW -> GPIO160 (SUPERSONIC_WIMAX_CPU_UARTz_SW) -USB_UART#_SW -> GPIO33 (SUPERSONIC_USB_UARTz_SW) - -XA : GPIO33 = 0 -> USB - GPIO33 = 1 -> CPU UART - -XB : GPIO33 = 0 -> USB - GPIO33 = 1 , GPIO160 = 0 -> CPU UART - GPIO33 = 1 , GPIO160 = 1 -> Wimax UART -*/ -int mmc_wimax_uart_switch(int uart) -{ - printk("%s uart:%d\n", __func__, uart); - - gpio_set_value(SUPERSONIC_USB_UARTz_SW, uart?1:0); - if(system_rev && uart) - gpio_set_value(SUPERSONIC_WIMAX_CPU_UARTz_SW, uart==2?1:0); - return uart?1:0; -} -EXPORT_SYMBOL(mmc_wimax_uart_switch); - -int mmc_wimax_power(int on) -{ - printk("%s\n", __func__); - - if (on) { - /*Power ON sequence*/ - gpio_set_value(154, 1); - gpio_set_value(48, 1); - mdelay(5); - gpio_set_value(106, 0); - gpio_set_value(156, 1); - gpio_set_value(155, 1); - mdelay(5); - gpio_set_value(106, 1); - mdelay(1150); - - config_gpio_table(wimax_on_gpio_table, - ARRAY_SIZE(wimax_on_gpio_table)); - } else { - /*Power OFF sequence*/ - config_gpio_table(wimax_off_gpio_table, - ARRAY_SIZE(wimax_off_gpio_table)); - gpio_set_value(88, 0); /*WiMax_SDIO_CLK_1 OL*/ - gpio_set_value(159, 0); /*WiMax_Host_2 OL*/ - - gpio_set_value(106, 1); - mdelay(5); - gpio_set_value(156, 0); - gpio_set_value(155, 0); - gpio_set_value(106, 0); - mdelay(5); - gpio_set_value(154, 0); - gpio_set_value(48, 0); - mdelay(5); - } - return 0; -} -EXPORT_SYMBOL(mmc_wimax_power); - -int mmc_wimax_set_status(int on) -{ - printk(KERN_INFO "%s on:%d\n", __func__, on); - mmc_wimax_sdio_status = on; - return 0; -} -EXPORT_SYMBOL(mmc_wimax_set_status); - -int mmc_wimax_get_status() -{ - //printk(KERN_INFO "%s status:%d\n", __func__, mmc_wimax_sdio_status); - return mmc_wimax_sdio_status; -} -EXPORT_SYMBOL(mmc_wimax_get_status); - -int mmc_wimax_get_hostwakeup_gpio(void) -{ - return mmc_wimax_hostwakeup_gpio; -} -EXPORT_SYMBOL(mmc_wimax_get_hostwakeup_gpio); - -int __init supersonic_init_mmc(unsigned int sys_rev) -{ - uint32_t id; - - wifi_status_cb = NULL; - - printk(KERN_INFO "%s()+\n", __func__); - - /* initial WIFI_SHUTDOWN# */ - id = PCOM_GPIO_CFG(SUPERSONIC_GPIO_WIFI_SHUTDOWN_N, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); - gpio_set_value(SUPERSONIC_GPIO_WIFI_SHUTDOWN_N, 0); - - msm_add_sdcc(1, &supersonic_wifi_data, 0, 0); - - /* Initial WiMAX */ - printk("config wimax power gpio table\n"); - config_gpio_table(wimax_power_pin_gpio_table, - ARRAY_SIZE(wimax_power_pin_gpio_table)); - - msm_add_sdcc(3, &supersonic_wimax_data,0,0); - - if (opt_disable_sdcard) { - pr_info("%s: sdcard disabled on cmdline\n", __func__); - goto done; - } - - sdslot_vreg_enabled = 0; - - sdslot_vreg = vreg_get(0, "gp6"); - if (IS_ERR(sdslot_vreg)) - return PTR_ERR(sdslot_vreg); - - if (system_rev == 0) { /* XA board */ - set_irq_wake(MSM_GPIO_TO_INT(SUPERSONIC_GPIO_SDMC_CD_N), 1); - - msm_add_sdcc(2, &supersonic_sdslot_data, - MSM_GPIO_TO_INT(SUPERSONIC_GPIO_SDMC_CD_N), - IORESOURCE_IRQ_LOWEDGE | IORESOURCE_IRQ_HIGHEDGE); - } else - msm_add_sdcc(2, &supersonic_sdslot_data, 0, 0); - -done: - printk(KERN_INFO "%s()-\n", __func__); - return 0; -} diff --git a/arch/arm/mach-msm/board-supersonic-panel.c b/arch/arm/mach-msm/board-supersonic-panel.c deleted file mode 100644 index 1844652a..00000000 --- a/arch/arm/mach-msm/board-supersonic-panel.c +++ /dev/null @@ -1,921 +0,0 @@ -/* linux/arch/arm/mach-msm/board-supersonic-panel.c - * - * Copyright (C) 2008 HTC Corporation. - * Author: Jay Tu - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -/* #include */ - -#include "board-supersonic.h" -#include "devices.h" -#include "proc_comm.h" - -#if 1 -#define B(s...) printk(s) -#else -#define B(s...) do {} while(0) -#endif -extern int panel_type; -enum { - PANEL_SHARP, - PANEL_AUO, -}; - -static struct cabc_t { - struct led_classdev lcd_backlight; - struct msm_mddi_client_data *client_data; - struct mutex lock; - unsigned long status; -} cabc; - -enum { - GATE_ON = 1 << 0, -}; -static struct vreg *vreg_lcd_2v8; -static struct vreg *vreg_lcd_1v8; - -#define REG_WAIT (0xffff) -struct nov_regs { - unsigned reg; - unsigned val; -} nov_init_seq[] = { - {0xc000, 0x86}, - {0xc001, 0x00}, - {0xc002, 0x86}, - {0xc003, 0x00}, - {0xc100, 0x40}, - {0xc200, 0x02}, - {0xc202, 0x32}, - {0xe000, 0x0e}, - {0xe001, 0x34}, - {0xe002, 0x3F}, - {0xe003, 0x49}, - {0xe004, 0x1D}, - {0xe005, 0x2C}, - {0xe006, 0x5F}, - {0xe007, 0x3A}, - {0xe008, 0x20}, - {0xe009, 0x28}, - {0xe00a, 0x80}, - {0xe00b, 0x13}, - {0xe00c, 0x32}, - {0xe00d, 0x56}, - {0xe00e, 0x79}, - {0xe00f, 0xB8}, - {0xe010, 0x55}, - {0xe011, 0x57}, - {0xe100, 0x0e}, - {0xe101, 0x34}, - {0xe102, 0x3F}, - {0xe103, 0x49}, - {0xe104, 0x1D}, - {0xe105, 0x2C}, - {0xe106, 0x5F}, - {0xe107, 0x3A}, - {0xe108, 0x20}, - {0xe109, 0x28}, - {0xe10a, 0x80}, - {0xe10b, 0x13}, - {0xe10c, 0x32}, - {0xe10d, 0x56}, - {0xe10e, 0x79}, - {0xe10f, 0xB8}, - {0xe110, 0x55}, - {0xe111, 0x57}, - - {0xe200, 0x0E}, - {0xe201, 0x34}, - {0xe202, 0x3F}, - {0xe203, 0x49}, - {0xe204, 0x1D}, - {0xe205, 0x2C}, - {0xe206, 0x5F}, - {0xe207, 0x3A}, - {0xe208, 0x20}, - {0xe209, 0x28}, - {0xe20A, 0x80}, - {0xe20B, 0x13}, - {0xe20C, 0x32}, - {0xe20D, 0x56}, - {0xe20E, 0x79}, - {0xe20F, 0xB8}, - {0xe210, 0x55}, - {0xe211, 0x57}, - - {0xe300, 0x0E}, - {0xe301, 0x34}, - {0xe302, 0x3F}, - {0xe303, 0x49}, - {0xe304, 0x1D}, - {0xe305, 0x2C}, - {0xe306, 0x5F}, - {0xe307, 0x3A}, - {0xe308, 0x20}, - {0xe309, 0x28}, - {0xe30A, 0x80}, - {0xe30B, 0x13}, - {0xe30C, 0x32}, - {0xe30D, 0x56}, - {0xe30E, 0x79}, - {0xe30F, 0xB8}, - {0xe310, 0x55}, - {0xe311, 0x57}, - {0xe400, 0x0E}, - {0xe401, 0x34}, - {0xe402, 0x3F}, - {0xe403, 0x49}, - {0xe404, 0x1D}, - {0xe405, 0x2C}, - {0xe406, 0x5F}, - {0xe407, 0x3A}, - {0xe408, 0x20}, - {0xe409, 0x28}, - {0xe40A, 0x80}, - {0xe40B, 0x13}, - {0xe40C, 0x32}, - {0xe40D, 0x56}, - {0xe40E, 0x79}, - {0xe40F, 0xB8}, - {0xe410, 0x55}, - {0xe411, 0x57}, - {0xe500, 0x0E}, - {0xe501, 0x34}, - {0xe502, 0x3F}, - {0xe503, 0x49}, - {0xe504, 0x1D}, - {0xe505, 0x2C}, - {0xe506, 0x5F}, - {0xe507, 0x3A}, - {0xe508, 0x20}, - {0xe509, 0x28}, - {0xe50A, 0x80}, - {0xe50B, 0x13}, - {0xe50C, 0x32}, - {0xe50D, 0x56}, - {0xe50E, 0x79}, - {0xe50F, 0xB8}, - {0xe510, 0x55}, - {0xe511, 0x57}, - - {0x3a00, 0x05}, - - /* cabc */ - {0x4e00, 0x00}, - {0x5e00, 0x00}, - {0x6a01, 0x00}, - {0x6a02, 0x03}, - {0x5100, 0xff}, - {0x5301, 0x10}, - {0x6A18, 0xff}, - {0x6A17, 0x01}, - {0xF402, 0x14}, - - {0x3500, 0x00}, - {0x1100, 0x0}, - {REG_WAIT, 120}, -}; - -struct s1d_regs { - unsigned reg; - unsigned val; -} s1d13775_init_seq[] = { - {0x001C, 0x1500}, - {0x0020, 0x3047}, - {0x0024, 0x401A}, - {0x0028, 0x031A}, - {0x002C, 0x0001}, - {REG_WAIT, 0x0004}, /* increase delay 1ms -> 4ms */ - {0x0084, 0x0215}, - {0x0088, 0x0038}, - {0x008C, 0x2113}, - {0x002C, 0x0002}, - {REG_WAIT, 0x0004}, /* increase delay 1ms -> 4ms */ - {0x002C, 0x0003}, - {0x0100, 0x3702}, - {0x0104, 0x0180}, - {0x0140, 0x003F}, - {0x0144, 0x00EF}, - {0x0148, 0x0016}, - {0x014C, 0x0005}, - {0x0150, 0x0006}, - {0x0154, 0x032B}, - {0x0158, 0x031F}, - {0x015C, 0x0009}, - {0x0160, 0x0002}, - {0x0164, 0x0003}, - {0x0168, 0x00A2}, - {0x0180, 0x0057}, - {0x0184, 0x00DB}, - {0x0188, 0x00E3}, - {0x018C, 0x0000}, - {0x0190, 0x0000}, - {0x0280, 0x0000}, - {0x0284, 0x0002}, - {0x0288, 0x0000}, - {0x028C, 0x0001}, - {0x0294, 0x0000}, - {0x0400, 0x8000}, - {0x0404, 0x1001}, - {0x0480, 0x0001}, - {0x0500, 0x0000}, - {0x0504, 0x0011}, - {0x0508, 0x0000}, - {0x0510, 0x0000}, - {0x0518, 0x002E}, - {0x051C, 0x00c7}, - {0x0520, 0x01DF}, - {0x0524, 0x031f}, - {0x0528, 0x0000}, - {0x052C, 0x0000}, - {0x0530, 0x0000}, - {0x0534, 0x0000}, - - {0x0604, 0x0108}, - {0x060C, 0x0000}, - {0x0610, 0x00ff}, - - {0x0648, 0x0020}, - {0x0800, 0x0000}, - {0x0804, 0x000A}, - {0x0808, 0x0400}, - {0x080C, 0x0400}, - {0x0814, 0x0000}, - {0x081C, 0x0000}, - {0x0824, 0x002E}, - {0x0828, 0x00C7}, - {0x082C, 0x01DF}, - {0x0830, 0x031F}, - {0x0834, 0x0000}, - {0x0838, 0x0000}, - {0x083C, 0x0000}, - {0x0840, 0x0000}, - {0x0844, 0x01DF}, - {0x0848, 0x031F}, - {0x0870, 0x0064}, - {0x0874, 0x0064}, - {0x0878, 0x00C7}, - {0x087C, 0x00C7}, - {0x1410, 0x0004}, - {0x1414, 0x00FF}, - {0x1420, 0x0000}, - {0x1424, 0x0000}, - {0x1428, 0x01DF}, - {0x142C, 0x031F}, - {0x1430, 0xDC00}, - {0x1434, 0x0005}, - {0x1440, 0x0000}, - {0x1444, 0x0000}, - {0x1448, 0x01DF}, - {0x144C, 0x031F}, - {0x1450, 0x0000}, - {0x1454, 0x0000}, - {0x1458, 0x01DF}, - {0x145C, 0x031F}, - {0x1460, 0x0000}, - {0x1464, 0x0000}, - {0x1468, 0x01DF}, - {0x146C, 0x031F}, - {0x1470, 0x0000}, - {0x1474, 0x0000}, - {0x1478, 0x01DF}, - {0x147C, 0x031F}, - {0x14A4, 0x0110}, - {0x14A8, 0xAFC8}, - {0x14AC, 0x0FF0}, - {0x14B0, 0x0202}, - {0x14B4, 0x0080}, - {0x14A0, 0x0002}, - {0x1508, 0x0000}, - {0x150C, 0x0000}, - {0x1510, 0x0000}, - {0x1514, 0x0000}, - {0x1520, 0x0000}, - {0x1524, 0x0000}, - {0x1528, 0x0000}, - {0x152C, 0x0000}, - {0x1530, 0x0000}, - {0x1534, 0x0000}, - {0x1538, 0x0000}, - {0x153C, 0x0000}, - {0x1540, 0x0000}, - {0x1544, 0x0000}, - {0x1548, 0x0000}, - {0x154C, 0x0000}, - {0x1550, 0x0000}, - {0x1554, 0x0000}, - {0x1558, 0x0000}, - {0x1600, 0x0000}, - {0x1604, 0x0020}, - {0x1608, 0x0040}, - {0x160C, 0x0060}, - {0x1610, 0x0080}, - {0x1614, 0x00A0}, - {0x1618, 0x00C0}, - {0x161C, 0x00E0}, - {0x1620, 0x0100}, - {0x1624, 0x0000}, - {0x1628, 0x0020}, - {0x162C, 0x0040}, - {0x1630, 0x0060}, - {0x1634, 0x0080}, - {0x1638, 0x00A0}, - {0x163C, 0x00C0}, - {0x1640, 0x00E0}, - {0x1644, 0x0100}, - {0x1648, 0x0000}, - {0x164C, 0x0020}, - {0x1650, 0x0040}, - {0x1654, 0x0060}, - {0x1658, 0x0080}, - {0x165C, 0x00A0}, - {0x1660, 0x00C0}, - {0x1664, 0x00E0}, - {0x1668, 0x0100}, - {0x1680, 0x0000}, - {0x1684, 0x0000}, - {0x1688, 0x0000}, - {0x168C, 0x0000}, - {0x1694, 0x0000}, - {0x16A0, 0x0000}, - {0x16A4, 0x0000}, - {0x16A8, 0x0000}, - {0x16AC, 0x0000}, - {0x16B4, 0x0000}, - {0x16C0, 0x0000}, - {0x16C4, 0x0000}, - {0x16C8, 0x0000}, - {0x16CC, 0x0000}, - {0x16D4, 0x0000}, - {0x16E0, 0x0000}, - {0x16E4, 0x0000}, - {0x16E8, 0x0000}, - {0x16EC, 0x0000}, - {0x16F4, 0x0000}, - {0x1700, 0x0000}, - {0x1704, 0x0000}, - {0x1708, 0x0000}, - {0x170C, 0x0000}, - {0x1714, 0x0000}, - {0x1720, 0x0000}, - {0x1724, 0x0000}, - {0x1728, 0x0000}, - {0x172C, 0x0000}, - {0x1734, 0x0000}, - {0x1740, 0x0000}, - {0x1744, 0x0000}, - {0x1748, 0x0000}, - {0x174C, 0x0000}, - {0x1754, 0x0000}, - {0x1760, 0x0000}, - {0x1764, 0x0000}, - {0x1768, 0x0000}, - {0x176C, 0x0000}, - {0x1774, 0x0000}, - {0x0300, 0x7000}, - {0x0304, 0x0000}, - {0x0308, 0x0000}, - {0x030C, 0x0000}, - {0x0310, 0x0000}, - {0x0314, 0x0000}, - {0x0318, 0xF7FF}, - {0x031C, 0xFFFF}, - {0x0320, 0x000F}, - {0x0324, 0x0000}, - {0x0328, 0x0000}, - {0x032C, 0x0000}, -}; - -struct s1d_regs pwm_seq[] = { - {0x001C, 0x0010}, - {0x14A0, 0x0001}, - {0x14A4, 0x0110}, - {0x14B0, 0x3030}, - {0x14A8, 0x09C4}, - {0x14AC, 0x0FF0}, -}; -extern int qspi_send_9bit(unsigned char id, unsigned data); -extern int qspi_send_16bit(unsigned char id, unsigned data); - -static void suc_set_brightness(struct led_classdev *led_cdev, - enum led_brightness val) -{ - struct msm_mddi_client_data *client = cabc.client_data; - unsigned int shrink_br = val; - - printk(KERN_DEBUG "set brightness = %d\n", val); - if (test_bit(GATE_ON, &cabc.status) == 0) - return; - - if (val < 30) - shrink_br = 5; - else if ((val >= 30) && (val <= 143)) - shrink_br = 104 * (val - 30) / 113 + 5; - else - shrink_br = 145 * (val - 144) / 111 + 110; - mutex_lock(&cabc.lock); - if (panel_type == PANEL_SHARP) { - int i, reg, val; - for (i = 0; i < ARRAY_SIZE(pwm_seq); i++) { - reg = pwm_seq[i].reg; - val = pwm_seq[i].val; - if (reg == REG_WAIT) - hr_msleep(val); - else - client->remote_write(client, cpu_to_le32(val), reg); - } - client->remote_write(client, shrink_br, 0x14B4); - } else { - qspi_send_16bit(0x1, 0x55); - qspi_send_16bit(0x0, 0x00); - qspi_send_16bit(0x2, 0x00); - - qspi_send_16bit(0x1, 0x51); - qspi_send_16bit(0x0, 0x00); - qspi_send_16bit(0x2, shrink_br); - } - mutex_unlock(&cabc.lock); -} - -static enum led_brightness -suc_get_brightness(struct led_classdev *led_cdev) -{ - struct msm_mddi_client_data *client = cabc.client_data; - if (panel_type == PANEL_SHARP) - return client->remote_read(client, 0x14B4); - else - return client->remote_read(client, 0x5100); -} - -#define DEFAULT_BRIGHTNESS 100 -static void suc_backlight_switch(int on) -{ - enum led_brightness val; - - if (on) { - printk(KERN_DEBUG "turn on backlight\n"); - set_bit(GATE_ON, &cabc.status); - val = cabc.lcd_backlight.brightness; - - /* LED core uses get_brightness for default value - * If the physical layer is not ready, we should - * not count on it */ - if (val == 0) - val = DEFAULT_BRIGHTNESS; - suc_set_brightness(&cabc.lcd_backlight, val); - } else { - clear_bit(GATE_ON, &cabc.status); - suc_set_brightness(&cabc.lcd_backlight, 0); - } -} - -static int suc_backlight_probe(struct platform_device *pdev) -{ - int err = -EIO; - - mutex_init(&cabc.lock); - cabc.client_data = pdev->dev.platform_data; - cabc.lcd_backlight.name = "lcd-backlight"; - cabc.lcd_backlight.brightness_set = suc_set_brightness; - cabc.lcd_backlight.brightness_get = suc_get_brightness; - err = led_classdev_register(&pdev->dev, &cabc.lcd_backlight); - if (err) - goto err_register_lcd_bl; - return 0; - -err_register_lcd_bl: - led_classdev_unregister(&cabc.lcd_backlight); - return err; -} - -/* ------------------------------------------------------------------- */ - -static struct resource resources_msm_fb[] = { - { - .start = MSM_FB_BASE, - .end = MSM_FB_BASE + MSM_FB_SIZE - 1, - .flags = IORESOURCE_MEM, - }, -}; - -static int -supersonic_mddi_init(struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - int i = 0, ret; - unsigned reg, val; - - if (panel_type == PANEL_SHARP) { - client_data->auto_hibernate(client_data, 0); - for (i = 0; i < ARRAY_SIZE(s1d13775_init_seq); i++) { - reg = s1d13775_init_seq[i].reg; - val = s1d13775_init_seq[i].val; - if (reg == REG_WAIT) - hr_msleep(val); - else - client_data->remote_write(client_data, cpu_to_le32(val), reg); - } - client_data->auto_hibernate(client_data, 1); - - struct spi_cmd { - unsigned char reg; - unsigned char val; - unsigned int delay; - } sharp_spi[] = { - {0x0, 0x11, 100}, - - {0x0, 0xB9, 0}, - {0x1, 0xFF, 0}, - {0x1, 0x83, 0}, - {0x1, 0x63, 0}, - - {0x0, 0x3A, 0}, - {0x1, 0x50, 0}, - }; - - /* FIXME */ - - for (i = 0; i < ARRAY_SIZE(sharp_spi); i++) { - ret = qspi_send_9bit(sharp_spi[i].reg, sharp_spi[i].val); - if (ret < 0) - printk("%s: spi_write fail!\n", __func__); - else if (sharp_spi[i].delay) - hr_msleep(sharp_spi[i].delay); - } - } - else { - client_data->auto_hibernate(client_data, 0); - for (i = 0; i < ARRAY_SIZE(nov_init_seq); i++) { - reg = cpu_to_le32(nov_init_seq[i].reg); - val = cpu_to_le32(nov_init_seq[i].val); - if (reg == REG_WAIT) - msleep(val); - else - client_data->remote_write(client_data, val, reg); - } - client_data->auto_hibernate(client_data, 1); - } - return 0; -} - -static int -supersonic_mddi_uninit(struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - if (panel_type == PANEL_SHARP) { - int i, ret; - struct spi_cmd { - unsigned char reg; - unsigned char val; - unsigned int delay; - } sharp_spi[] = { - {0x0, 0x28, 0}, - {0x0, 0x10, 100}, - }; - - /* FIXME */ - - for (i = 0; i < ARRAY_SIZE(sharp_spi); i++) { - ret = qspi_send_9bit(sharp_spi[i].reg, sharp_spi[i].val); - if (ret < 0) - printk("%s: spi_write fail!\n", __func__); - else if (sharp_spi[i].delay) - hr_msleep(sharp_spi[i].delay); - } - } - else - client_data->remote_write(client_data, 0, 0x2800); - - return 0; -} - -/* FIXME: remove after XA03 */ -static int backlight_control(int on) -{ - struct i2c_adapter *adap = i2c_get_adapter(0); - struct i2c_msg msg; - u8 buf[] = {0x90, 0x00, 0x00, 0x08}; - int ret = -EIO, max_retry = 3; - - msg.addr = 0xcc >> 1; - msg.flags = 0; - msg.len = sizeof(buf); - msg.buf = buf; - - if (on == 0) - buf[0] = 0x91; - - while (max_retry--) { - ret = i2c_transfer(adap, &msg, 1); - if (ret != 1) - msleep(1); - else { - ret = 0; - break; - } - ret = -EIO; - } - - if (ret) - printk(KERN_ERR "backlight control fail\n"); - return 0; -} - -static int -supersonic_panel_blank(struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - B(KERN_DEBUG "%s\n", __func__); - suc_backlight_switch(LED_OFF); - backlight_control(0); - return 0; -} - -static int -supersonic_panel_unblank(struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - B(KERN_DEBUG "%s\n", __func__); - if (panel_type == PANEL_AUO) { - suc_backlight_switch(LED_FULL); - client_data->remote_write(client_data, 0x00, 0x2900); - msleep(100); - client_data->remote_write(client_data, 0x24, 0x5300); - } else { - suc_backlight_switch(LED_FULL); - client_data->remote_write(client_data, 0x4000, 0x0600); - msleep(10); - qspi_send_9bit(0x0, 0x29); - client_data->remote_write(client_data, 0x7000, 0x0324); - client_data->remote_write(client_data, 0x4000, 0x0600); - } - - backlight_control(1); - return 0; -} - -static struct msm_mddi_bridge_platform_data novatec_client_data = { - .init = supersonic_mddi_init, - .uninit = supersonic_mddi_uninit, - .blank = supersonic_panel_blank, - .unblank = supersonic_panel_unblank, - .fb_data = { - .xres = 480, - .yres = 800, - .width = 48, - .height = 80, - .output_format = 0, - }, - .panel_conf = { - .caps = MSMFB_CAP_CABC, - }, -}; - -static struct msm_mddi_bridge_platform_data epson_client_data = { - .init = supersonic_mddi_init, - .uninit = supersonic_mddi_uninit, - .blank = supersonic_panel_blank, - .unblank = supersonic_panel_unblank, - .fb_data = { - .xres = 480, - .yres = 800, - .width = 48, - .height = 80, - .output_format = 0, - }, - .panel_conf = { - .caps = MSMFB_CAP_CABC, - }, -}; - - -#define SPI_CLK 17 -#define SPI_DO 18 -#define SPI_DI 19 -#define SPI_CS 20 - -#define LCM_GPIO_CFG(gpio, func) \ -PCOM_GPIO_CFG(gpio, func, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_16MA) -static uint32_t spi_on_gpio_table[] = { - LCM_GPIO_CFG(SPI_CLK, 1), - LCM_GPIO_CFG(SPI_CS, 1), - LCM_GPIO_CFG(SPI_DO, 1), - PCOM_GPIO_CFG(SPI_DI, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_16MA), -}; - -static uint32_t spi_off_gpio_table[] = { - LCM_GPIO_CFG(SPI_CLK, 0), - LCM_GPIO_CFG(SPI_CS, 0), - LCM_GPIO_CFG(SPI_DO, 0), - PCOM_GPIO_CFG(SPI_DI, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_16MA), -}; - -static int spi_gpio_switch(int on) -{ - config_gpio_table( - !!on ? spi_on_gpio_table : spi_off_gpio_table, - ARRAY_SIZE(spi_on_gpio_table)); - - return 0; -} - -static void -mddi_novatec_power(struct msm_mddi_client_data *client_data, int on) -{ - unsigned id, on_off = 1; - - B(KERN_DEBUG "%s: power %s.\n", __func__, on ? "on" : "off"); - - if (on) { - on_off = 1; - /* 2V8 */ - id = PM_VREG_PDOWN_SYNT_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_enable(vreg_lcd_2v8); - - /* 1V8 */ - id = PM_VREG_PDOWN_AUX_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_enable(vreg_lcd_1v8); - hr_msleep(15); - - gpio_set_value(SUPERSONIC_LCD_RST, 1); - hr_msleep(1); - gpio_set_value(SUPERSONIC_LCD_RST, 0); - hr_msleep(5); - gpio_set_value(SUPERSONIC_LCD_RST, 1); - hr_msleep(50); - spi_gpio_switch(1); - } else { - on_off = 0; - gpio_set_value(SUPERSONIC_LCD_RST, 0); - hr_msleep(120); - - /* 1V8 */ - id = PM_VREG_PDOWN_AUX_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_disable(vreg_lcd_1v8); - - /* 2V8 */ - id = PM_VREG_PDOWN_SYNT_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_disable(vreg_lcd_2v8); - spi_gpio_switch(0); - } -} - -static void -mddi_epson_power(struct msm_mddi_client_data *client_data, int on) -{ - unsigned id, on_off = 1; - - B(KERN_DEBUG "%s: power %s.\n", __func__, on ? "on" : "off"); - - if (on) { - on_off = 1; - /* 2V8 */ - gpio_set_value(149, 1); - id = PM_VREG_PDOWN_SYNT_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_enable(vreg_lcd_2v8); - hr_msleep(5); - /* 1V8 */ - gpio_set_value(16, 1); - id = PM_VREG_PDOWN_AUX_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_enable(vreg_lcd_1v8); - hr_msleep(10); - - gpio_set_value(151, 1); - hr_msleep(2); - - gpio_set_value(SUPERSONIC_LCD_RST, 1); - hr_msleep(1); - gpio_set_value(SUPERSONIC_LCD_RST, 0); - hr_msleep(5); - gpio_set_value(SUPERSONIC_LCD_RST, 1); - hr_msleep(50); - spi_gpio_switch(1); - } else { - on_off = 0; - gpio_set_value(SUPERSONIC_LCD_RST, 0); - hr_msleep(2); - gpio_set_value(151, 0); - hr_msleep(120); - - /* 1V8 */ - gpio_set_value(16, 0); - id = PM_VREG_PDOWN_AUX_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_disable(vreg_lcd_1v8); - hr_msleep(5); - /* 2V8 */ - gpio_set_value(149, 0); - id = PM_VREG_PDOWN_SYNT_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_disable(vreg_lcd_2v8); - spi_gpio_switch(0); - } -} - -static struct msm_mddi_platform_data mddi_pdata = { - .clk_rate = 384000000, - .fb_resource = resources_msm_fb, - .num_clients = 2, - .client_platform_data = { - { - .product_id = (0xb9f6 << 16 | 0x5582), - .name = "mddi_c_b9f6_5582", - .id = 1, - .client_data = &novatec_client_data, - .clk_rate = 0, - }, - { - .product_id = (0x4ca3 << 16 | 0x0000), - .name = "mddi_c_4ca3_0000", - .id = 0, - .client_data = &epson_client_data, - .clk_rate = 0, - }, - }, -}; - -static struct platform_driver suc_backlight_driver = { - .probe = suc_backlight_probe, - .driver = { - .owner = THIS_MODULE, - }, -}; - -static struct msm_mdp_platform_data mdp_pdata = { - .dma_channel = MDP_DMA_S, -}; - -int __init supersonic_init_panel(void) -{ - int rc; - - B(KERN_INFO "%s: enter.\n", __func__); - - vreg_lcd_1v8 = vreg_get(0, "gp4"); - if (IS_ERR(vreg_lcd_1v8)) - return PTR_ERR(vreg_lcd_1v8); - - vreg_lcd_2v8 = vreg_get(0, "synt"); - if (IS_ERR(vreg_lcd_2v8)) - return PTR_ERR(vreg_lcd_2v8); - - if (panel_type == PANEL_SHARP) - mdp_pdata.overrides |= MSM_MDP_PANEL_IGNORE_PIXEL_DATA; - else - mdp_pdata.overrides &= ~MSM_MDP_PANEL_IGNORE_PIXEL_DATA; - - msm_device_mdp.dev.platform_data = &mdp_pdata; - rc = platform_device_register(&msm_device_mdp); - if (rc) - return rc; - - if (panel_type) - mddi_pdata.power_client = mddi_novatec_power; - else - mddi_pdata.power_client = mddi_epson_power; - - msm_device_mddi0.dev.platform_data = &mddi_pdata; - rc = platform_device_register(&msm_device_mddi0); - if (rc) - return rc; - - if (panel_type) - suc_backlight_driver.driver.name = "nov_cabc"; - else - suc_backlight_driver.driver.name = "eps_cabc"; - rc = platform_driver_register(&suc_backlight_driver); - if (rc) - return rc; - - return 0; -} diff --git a/arch/arm/mach-msm/board-supersonic-rfkill.c b/arch/arm/mach-msm/board-supersonic-rfkill.c deleted file mode 100644 index 036a2238..00000000 --- a/arch/arm/mach-msm/board-supersonic-rfkill.c +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (C) 2009 Google, Inc. - * Copyright (C) 2009 HTC Corporation. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -/* Control bluetooth power for supersonic platform */ - -#include -#include -#include -#include -#include -#include -#include - -#include "gpio_chip.h" -#include "proc_comm.h" -#include "board-supersonic.h" - -#define HTC_RFKILL_DBG - -static struct rfkill *bt_rfk; -static const char bt_name[] = "bcm4329"; -static int pre_state; - -static uint32_t supersonic_bt_init_table[] = { - /* BT_RTS */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_RTS, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_8MA), - /* BT_CTS */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_CTS, - 0, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_RX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_RX, - 0, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_TX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_TX, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_8MA), - - /* BT_SHUTDOWN_N */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_SHUTDOWN_N, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_4MA), - /* BT_RESET_N */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_RESET_N, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_4MA), - - /* BT_HOST_WAKE */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_HOST_WAKE, - 0, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_4MA), - /* BT_CHIP_WAKE */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_CHIP_WAKE, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_4MA), -}; - -static uint32_t supersonic_bt_on_table[] = { - /* BT_RTS */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_RTS, - 2, - GPIO_OUTPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_CTS */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_CTS, - 2, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_RX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_RX, - 2, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_TX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_TX, - 2, - GPIO_OUTPUT, - GPIO_PULL_UP, - GPIO_8MA), - - /* BT_HOST_WAKE */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_HOST_WAKE, - 0, - GPIO_INPUT, - GPIO_NO_PULL, - GPIO_4MA), - /* BT_CHIP_WAKE */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_CHIP_WAKE, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_4MA), -}; - -static uint32_t supersonic_bt_off_table[] = { - /* BT_RTS */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_RTS, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_8MA), - /* BT_CTS */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_CTS, - 0, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_RX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_RX, - 0, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_8MA), - /* BT_TX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_UART1_TX, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_8MA), - - /* BT_HOST_WAKE */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_HOST_WAKE, - 0, - GPIO_INPUT, - GPIO_PULL_UP, - GPIO_4MA), - /* BT_CHIP_WAKE */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_BT_CHIP_WAKE, - 0, - GPIO_OUTPUT, - GPIO_NO_PULL, - GPIO_4MA), -}; - -static void config_bt_table(uint32_t *table, int len) -{ - int n; - unsigned id; - for (n = 0; n < len; n++) { - id = table[n]; - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); - } -} - -static void supersonic_config_bt_init(void) -{ - /* set bt initial configuration*/ - config_bt_table(supersonic_bt_init_table, - ARRAY_SIZE(supersonic_bt_init_table)); - /* BT_RESET_N */ - gpio_configure(SUPERSONIC_GPIO_BT_RESET_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - mdelay(5); - - /* BT_SHUTDOWN_N */ - gpio_configure(SUPERSONIC_GPIO_BT_SHUTDOWN_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_HIGH); - /* BT_RESET_N */ - gpio_configure(SUPERSONIC_GPIO_BT_RESET_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_HIGH); - mdelay(15); - - /* BT_RESET_N */ - gpio_configure(SUPERSONIC_GPIO_BT_RESET_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - /* BT_SHUTDOWN_N */ - gpio_configure(SUPERSONIC_GPIO_BT_SHUTDOWN_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - - /* BT_RTS */ - gpio_configure(SUPERSONIC_GPIO_BT_UART1_RTS, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - /* BT_TX */ - gpio_configure(SUPERSONIC_GPIO_BT_UART1_TX, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - - /* BT_CHIP_WAKE */ - gpio_configure(SUPERSONIC_GPIO_BT_CHIP_WAKE, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); -} - -static void supersonic_config_bt_on(void) -{ - - #ifdef HTC_RFKILL_DBG - printk(KERN_INFO "-- RK ON --\n"); - #endif - - /* set bt on configuration*/ - config_bt_table(supersonic_bt_on_table, - ARRAY_SIZE(supersonic_bt_on_table)); - mdelay(5); - /* BT_SHUTDOWN_N */ - gpio_configure(SUPERSONIC_GPIO_BT_SHUTDOWN_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_HIGH); - /* BT_RESET_N */ - gpio_configure(SUPERSONIC_GPIO_BT_RESET_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_HIGH); - mdelay(5); - - /* BT_CHIP_WAKE */ - gpio_configure(SUPERSONIC_GPIO_BT_CHIP_WAKE, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_HIGH); -} - -static void supersonic_config_bt_off(void) -{ - #ifdef HTC_RFKILL_DBG - printk(KERN_INFO "-- RK OFF --\n"); - #endif - - /* BT_RESET_N */ - gpio_configure(SUPERSONIC_GPIO_BT_RESET_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - /* BT_SHUTDOWN_N */ - gpio_configure(SUPERSONIC_GPIO_BT_SHUTDOWN_N, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - - config_bt_table(supersonic_bt_off_table, - ARRAY_SIZE(supersonic_bt_off_table)); - mdelay(5); - - /* BT_RTS */ - gpio_configure(SUPERSONIC_GPIO_BT_UART1_RTS, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - /* BT_TX */ - gpio_configure(SUPERSONIC_GPIO_BT_UART1_TX, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); - - /* BT_CHIP_WAKE */ - gpio_configure(SUPERSONIC_GPIO_BT_CHIP_WAKE, - GPIOF_DRIVE_OUTPUT | GPIOF_OUTPUT_LOW); -} - -static int bluetooth_set_power(void *data, bool blocked) -{ - if (pre_state == blocked) { - #ifdef HTC_RFKILL_DBG - printk(KERN_INFO "-- SAME ST --\n"); - #endif - return 0; - } else - pre_state = blocked; - - if (!blocked) - supersonic_config_bt_on(); - else - supersonic_config_bt_off(); - - return 0; -} - -static struct rfkill_ops supersonic_rfkill_ops = { - .set_block = bluetooth_set_power, -}; - -static int supersonic_rfkill_probe(struct platform_device *pdev) -{ - int rc = 0; - bool default_state = true; /* off */ - - supersonic_config_bt_init(); /* bt gpio initial config */ - - bluetooth_set_power(NULL, default_state); - - bt_rfk = rfkill_alloc(bt_name, &pdev->dev, RFKILL_TYPE_BLUETOOTH, - &supersonic_rfkill_ops, NULL); - if (!bt_rfk) { - rc = -ENOMEM; - goto err_rfkill_reset; - } - - rfkill_set_states(bt_rfk, default_state, false); - - /* userspace cannot take exclusive control */ - rc = rfkill_register(bt_rfk); - if (rc) - goto err_rfkill_reg; - - return 0; - -err_rfkill_reg: - rfkill_destroy(bt_rfk); -err_rfkill_reset: - return rc; -} - -static int supersonic_rfkill_remove(struct platform_device *dev) -{ - rfkill_unregister(bt_rfk); - rfkill_destroy(bt_rfk); - - return 0; -} - -static struct platform_driver supersonic_rfkill_driver = { - .probe = supersonic_rfkill_probe, - .remove = supersonic_rfkill_remove, - .driver = { - .name = "supersonic_rfkill", - .owner = THIS_MODULE, - }, -}; - -static int __init supersonic_rfkill_init(void) -{ - pre_state = -1; - if (!machine_is_supersonic()) - return 0; - - return platform_driver_register(&supersonic_rfkill_driver); -} - -static void __exit supersonic_rfkill_exit(void) -{ - platform_driver_unregister(&supersonic_rfkill_driver); -} - -module_init(supersonic_rfkill_init); -module_exit(supersonic_rfkill_exit); -MODULE_DESCRIPTION("supersonic rfkill"); -MODULE_AUTHOR("Nick Pelly "); -MODULE_LICENSE("GPL"); diff --git a/arch/arm/mach-msm/board-supersonic-wifi.c b/arch/arm/mach-msm/board-supersonic-wifi.c deleted file mode 100644 index a41bb431..00000000 --- a/arch/arm/mach-msm/board-supersonic-wifi.c +++ /dev/null @@ -1,219 +0,0 @@ -/* linux/arch/arm/mach-msm/board-supersonic-wifi.c - * Copyright (C) 2009 HTC Corporation. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "board-supersonic.h" - -int supersonic_wifi_power(int on); -int supersonic_wifi_reset(int on); -int supersonic_wifi_set_carddetect(int on); - -#define PREALLOC_WLAN_NUMBER_OF_SECTIONS 4 -#define PREALLOC_WLAN_NUMBER_OF_BUFFERS 160 -#define PREALLOC_WLAN_SECTION_HEADER 24 - -#define WLAN_SECTION_SIZE_0 (PREALLOC_WLAN_NUMBER_OF_BUFFERS * 128) -#define WLAN_SECTION_SIZE_1 (PREALLOC_WLAN_NUMBER_OF_BUFFERS * 128) -#define WLAN_SECTION_SIZE_2 (PREALLOC_WLAN_NUMBER_OF_BUFFERS * 512) -#define WLAN_SECTION_SIZE_3 (PREALLOC_WLAN_NUMBER_OF_BUFFERS * 1024) - -#define WLAN_SKB_BUF_NUM 16 - -static struct sk_buff *wlan_static_skb[WLAN_SKB_BUF_NUM]; - -typedef struct wifi_mem_prealloc_struct { - void *mem_ptr; - unsigned long size; -} wifi_mem_prealloc_t; - -static wifi_mem_prealloc_t wifi_mem_array[PREALLOC_WLAN_NUMBER_OF_SECTIONS] = { - { NULL, (WLAN_SECTION_SIZE_0 + PREALLOC_WLAN_SECTION_HEADER) }, - { NULL, (WLAN_SECTION_SIZE_1 + PREALLOC_WLAN_SECTION_HEADER) }, - { NULL, (WLAN_SECTION_SIZE_2 + PREALLOC_WLAN_SECTION_HEADER) }, - { NULL, (WLAN_SECTION_SIZE_3 + PREALLOC_WLAN_SECTION_HEADER) } -}; - -static void *supersonic_wifi_mem_prealloc(int section, unsigned long size) -{ - if (section == PREALLOC_WLAN_NUMBER_OF_SECTIONS) - return wlan_static_skb; - if ((section < 0) || (section > PREALLOC_WLAN_NUMBER_OF_SECTIONS)) - return NULL; - if (wifi_mem_array[section].size < size) - return NULL; - return wifi_mem_array[section].mem_ptr; -} - -int __init supersonic_init_wifi_mem(void) -{ - int i; - - for(i=0;( i < WLAN_SKB_BUF_NUM );i++) { - if (i < (WLAN_SKB_BUF_NUM/2)) - wlan_static_skb[i] = dev_alloc_skb(4096); - else - wlan_static_skb[i] = dev_alloc_skb(8192); - } - for(i=0;( i < PREALLOC_WLAN_NUMBER_OF_SECTIONS );i++) { - wifi_mem_array[i].mem_ptr = kmalloc(wifi_mem_array[i].size, - GFP_KERNEL); - if (wifi_mem_array[i].mem_ptr == NULL) - return -ENOMEM; - } - return 0; -} - -static struct resource supersonic_wifi_resources[] = { - [0] = { - .name = "bcm4329_wlan_irq", - .start = MSM_GPIO_TO_INT(SUPERSONIC_GPIO_WIFI_IRQ), - .end = MSM_GPIO_TO_INT(SUPERSONIC_GPIO_WIFI_IRQ), - .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, - }, -}; - -static struct wifi_platform_data supersonic_wifi_control = { - .set_power = supersonic_wifi_power, - .set_reset = supersonic_wifi_reset, - .set_carddetect = supersonic_wifi_set_carddetect, - .mem_prealloc = supersonic_wifi_mem_prealloc, - .dot11n_enable = 1, -}; - -static struct platform_device supersonic_wifi_device = { - .name = "bcm4329_wlan", - .id = 1, - .num_resources = ARRAY_SIZE(supersonic_wifi_resources), - .resource = supersonic_wifi_resources, - .dev = { - .platform_data = &supersonic_wifi_control, - }, -}; - -extern unsigned char *get_wifi_nvs_ram(void); - -static unsigned supersonic_wifi_update_nvs(char *str) -{ -#define NVS_LEN_OFFSET 0x0C -#define NVS_DATA_OFFSET 0x40 - unsigned char *ptr; - unsigned len; - - if (!str) - return -EINVAL; - ptr = get_wifi_nvs_ram(); - /* Size in format LE assumed */ - memcpy(&len, ptr + NVS_LEN_OFFSET, sizeof(len)); - - /* the last bye in NVRAM is 0, trim it */ - if (ptr[NVS_DATA_OFFSET + len -1] == 0) - len -= 1; - - strcpy(ptr + NVS_DATA_OFFSET + len, str); - len += strlen(str); - memcpy(ptr + NVS_LEN_OFFSET, &len, sizeof(len)); - return 0; -} - -static unsigned strip_nvs_param(char* param) -{ - unsigned char *nvs_data; - - unsigned param_len; - int start_idx, end_idx; - - unsigned char *ptr; - unsigned len; - - if (!param) - return -EINVAL; - ptr = get_wifi_nvs_ram(); - /* Size in format LE assumed */ - memcpy(&len, ptr + NVS_LEN_OFFSET, sizeof(len)); - - /* the last bye in NVRAM is 0, trim it */ - if (ptr[NVS_DATA_OFFSET + len -1] == 0) - len -= 1; - - nvs_data = ptr + NVS_DATA_OFFSET; - - param_len = strlen(param); - - /* search param */ - for (start_idx = 0; start_idx < len - param_len; start_idx++) { - if (memcmp(&nvs_data[start_idx], param, param_len) == 0) { - break; - } - } - - end_idx = 0; - if (start_idx < len - param_len) { - /* search end-of-line */ - for (end_idx = start_idx + param_len; end_idx < len; end_idx++) { - if (nvs_data[end_idx] == '\n' || nvs_data[end_idx] == 0) { - break; - } - } - } - - if (start_idx < end_idx) { - /* move the remain data forward */ - for (; end_idx + 1 < len; start_idx++, end_idx++) { - nvs_data[start_idx] = nvs_data[end_idx+1]; - } - len = len - (end_idx - start_idx + 1); - memcpy(ptr + NVS_LEN_OFFSET, &len, sizeof(len)); - } - return 0; -} - -static int __init supersonic_wifi_init(void) -{ - int ret; - - if (!machine_is_supersonic()) - return 0; - - printk("%s: start\n", __func__); - supersonic_wifi_update_nvs("sd_oobonly=1\n"); - supersonic_wifi_update_nvs("btc_params80=0\n"); - - strip_nvs_param("pa0maxpwr"); - supersonic_wifi_update_nvs("pa0maxpwr=78\n"); - - strip_nvs_param("mcs2gpo0"); - supersonic_wifi_update_nvs("mcs2gpo0=0xCCCC\n"); - - strip_nvs_param("mcs2gpo1"); - supersonic_wifi_update_nvs("mcs2gpo1=0xCCCC\n"); - - strip_nvs_param("rxpo2g"); - supersonic_wifi_update_nvs("rxpo2g=0\n"); - - supersonic_init_wifi_mem(); - ret = platform_device_register(&supersonic_wifi_device); - return ret; -} - -device_initcall(supersonic_wifi_init); diff --git a/arch/arm/mach-msm/board-supersonic.c b/arch/arm/mach-msm/board-supersonic.c deleted file mode 100644 index d5bb0bc9..00000000 --- a/arch/arm/mach-msm/board-supersonic.c +++ /dev/null @@ -1,1579 +0,0 @@ -/* linux/arch/arm/mach-msm/board-supersonic.c - * - * Copyright (C) 2009 Google, Inc. - * Copyright (C) 2009 HTC Corporation. - * Author: Dima Zavin - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "board-supersonic.h" -#include "devices.h" -#include "proc_comm.h" -#include "smd_private.h" -#include -#include -#include -#include -#include -#ifdef CONFIG_MICROP_COMMON -#include -#endif - -#include -#include - -#define SMEM_SPINLOCK_I2C 6 - -#ifdef CONFIG_ARCH_QSD8X50 -extern unsigned char *get_bt_bd_ram(void); -#endif - -static unsigned skuid; - -static uint opt_usb_h2w_sw; -module_param_named(usb_h2w_sw, opt_usb_h2w_sw, uint, 0); - -void msm_init_pmic_vibrator(void); -extern void __init supersonic_audio_init(void); -#ifdef CONFIG_MICROP_COMMON -void __init supersonic_microp_init(void); -#endif -static struct htc_battery_platform_data htc_battery_pdev_data = { - .gpio_mbat_in = SUPERSONIC_GPIO_MBAT_IN, - .gpio_mchg_en_n = SUPERSONIC_GPIO_MCHG_EN_N, - .gpio_iset = SUPERSONIC_GPIO_ISET, - .guage_driver = GUAGE_MODEM, - .m2a_cable_detect = 1, - .charger = SWITCH_CHARGER, -}; - -static struct platform_device htc_battery_pdev = { - .name = "htc_battery", - .id = -1, - .dev = { - .platform_data = &htc_battery_pdev_data, - }, -}; - -#ifdef CONFIG_MICROP_COMMON -static int capella_cm3602_power(int pwr_device, uint8_t enable); -static struct microp_function_config microp_functions[] = { - { - .name = "reset-int", - .category = MICROP_FUNCTION_RESET_INT, - .int_pin = 1 << 8, - }, -}; - -static struct microp_function_config microp_lightsensor = { - .name = "light_sensor", - .category = MICROP_FUNCTION_LSENSOR, - .levels = { 3, 7, 12, 57, 114, 279, 366, 453, 540, 0x3FF }, - .channel = 3, - .int_pin = 1 << 9, - .golden_adc = 0x118, - .ls_power = capella_cm3602_power, -}; - -static struct lightsensor_platform_data lightsensor_data = { - .config = µp_lightsensor, - .irq = MSM_uP_TO_INT(9), -}; - -static struct microp_led_config led_config[] = { - { - .name = "amber", - .type = LED_RGB, - }, - { - .name = "green", - .type = LED_RGB, - }, - { - .name = "wimax", - .type = LED_WIMAX, - }, -}; - -static struct microp_led_platform_data microp_leds_data = { - .num_leds = ARRAY_SIZE(led_config), - .led_config = led_config, -}; - -static struct bma150_platform_data supersonic_g_sensor_pdata = { - .microp_new_cmd = 1, -}; - -/* Proximity Sensor (Capella_CM3602)*/ -static int __capella_cm3602_power(int on) -{ - int ret; - struct vreg *vreg = vreg_get(0, "gp1");; - if (!vreg) { - printk(KERN_ERR "%s: vreg error\n", __func__); - return -EIO; - } - ret = vreg_set_level(vreg, 2800); - - printk(KERN_DEBUG "%s: Turn the capella_cm3602 power %s\n", - __func__, (on) ? "on" : "off"); - if (on) { - gpio_direction_output(SUPERSONIC_GPIO_PROXIMITY_EN_N, 1); - ret = vreg_enable(vreg); - if (ret < 0) - printk(KERN_ERR "%s: vreg enable failed\n", __func__); - } else { - ret = vreg_disable(vreg); - if (ret < 0) - printk(KERN_ERR "%s: vreg disable failed\n", __func__); - gpio_direction_output(SUPERSONIC_GPIO_PROXIMITY_EN_N, 0); - } - - return ret; -} - -static DEFINE_MUTEX(capella_cm3602_lock); -static unsigned int als_power_control; - -static int capella_cm3602_power(int pwr_device, uint8_t enable) -{ - unsigned int old_status = 0; - int ret = 0, on = 0; - mutex_lock(&capella_cm3602_lock); - - old_status = als_power_control; - if (enable) - als_power_control |= pwr_device; - else - als_power_control &= ~pwr_device; - - on = als_power_control ? 1 : 0; - if (old_status == 0 && on) - ret = __capella_cm3602_power(1); - else if (!on) - ret = __capella_cm3602_power(0); - - mutex_unlock(&capella_cm3602_lock); - return ret; -} - -static struct capella_cm3602_platform_data capella_cm3602_pdata = { - .power = capella_cm3602_power, - .p_en = SUPERSONIC_GPIO_PROXIMITY_EN_N, - .p_out = MSM_uP_TO_INT(4), -}; -/* End Proximity Sensor (Capella_CM3602)*/ - -static struct htc_headset_microp_platform_data htc_headset_microp_data = { - .remote_int = 1 << 7, - .remote_irq = MSM_uP_TO_INT(7), - .remote_enable_pin = NULL, - .adc_channel = 0x01, - .adc_remote = {0, 33, 50, 110, 160, 220}, -}; - -static struct platform_device microp_devices[] = { - { - .name = "lightsensor_microp", - .dev = { - .platform_data = &lightsensor_data, - }, - }, - { - .name = "leds-microp", - .id = -1, - .dev = { - .platform_data = µp_leds_data, - }, - }, - { - .name = BMA150_G_SENSOR_NAME, - .dev = { - .platform_data = &supersonic_g_sensor_pdata, - }, - }, - { - .name = "supersonic_proximity", - .id = -1, - .dev = { - .platform_data = &capella_cm3602_pdata, - }, - }, - { - .name = "HTC_HEADSET_MICROP", - .id = -1, - .dev = { - .platform_data = &htc_headset_microp_data, - }, - }, -}; - -static struct microp_i2c_platform_data microp_data = { - .num_functions = ARRAY_SIZE(microp_functions), - .microp_function = microp_functions, - .num_devices = ARRAY_SIZE(microp_devices), - .microp_devices = microp_devices, - .gpio_reset = SUPERSONIC_GPIO_UP_RESET_N, - .microp_ls_on = LS_PWR_ON | PS_PWR_ON, - .spi_devices = SPI_GSENSOR, -}; -#endif - -static struct gpio_led supersonic_led_list[] = { - { - .name = "button-backlight", - .gpio = SUPERSONIC_AP_KEY_LED_EN, - .active_low = 0, - }, -}; - -static struct gpio_led_platform_data supersonic_leds_data = { - .num_leds = ARRAY_SIZE(supersonic_led_list), - .leds = supersonic_led_list, -}; - -static struct platform_device supersonic_leds = { - .name = "leds-gpio", - .id = -1, - .dev = { - .platform_data = &supersonic_leds_data, - }, -}; - -/* 2 : wimax UART, 1 : CPU uart, 0 : usb -CPU_WIMAX_SW -> GPIO160 -USB_UART#_SW -> GPIO33 - -XA : GPIO33 = 0 -> USB - GPIO33 = 1 -> CPU UART - -XB : GPIO33 = 0 -> USB - GPIO33 = 1 , GPIO160 = 0 -> CPU UART // SUPERSONIC_WIMAX_CPU_UARTz_SW (GPIO160) - GPIO33 = 1 , GPIO160 = 1 -> Wimax UART // SUPERSONIC_USB_UARTz_SW (GPIO33) -*/ - -/* - * USB cable out: supersonic_uart_usb_switch(1) - * USB cable in: supersonic_uart_usb_switch(0) - */ -static void supersonic_uart_usb_switch(int uart) -{ - printk(KERN_INFO "%s:uart:%d\n", __func__, uart); - /* XA and for USB cable in to reset wimax UART */ - gpio_set_value(SUPERSONIC_USB_UARTz_SW, uart?1:0); - - if (system_rev && uart) {/* XB */ - /* Winmax uart */ - if (gpio_get_value(SUPERSONIC_WIMAX_CPU_UARTz_SW)) { - printk(KERN_INFO "%s:Wimax UART\n", __func__); - gpio_set_value(SUPERSONIC_USB_UARTz_SW,1); - gpio_set_value(SUPERSONIC_WIMAX_CPU_UARTz_SW,1); - } else {/* USB, CPU UART */ - printk(KERN_INFO "%s:Non wimax UART\n", __func__); - gpio_set_value(SUPERSONIC_WIMAX_CPU_UARTz_SW, uart==2?1:0); - } - } -} - -static uint32_t usb_phy_3v3_table[] = { - PCOM_GPIO_CFG(SUPERSONIC_USB_PHY_3V3_ENABLE, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA) -}; - -static uint32_t usb_ID_PIN_input_table[] = { - PCOM_GPIO_CFG(SUPERSONIC_GPIO_USB_ID_PIN, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), -}; - -static uint32_t usb_ID_PIN_ouput_table[] = { - PCOM_GPIO_CFG(SUPERSONIC_GPIO_USB_ID_PIN, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), -}; - -void config_supersonic_usb_id_gpios(bool output) -{ - if (output) { - config_gpio_table(usb_ID_PIN_ouput_table, - ARRAY_SIZE(usb_ID_PIN_ouput_table)); - gpio_set_value(SUPERSONIC_GPIO_USB_ID_PIN, 1); - printk(KERN_INFO "%s %d output high\n", __func__, SUPERSONIC_GPIO_USB_ID_PIN); - } else { - config_gpio_table(usb_ID_PIN_input_table, - ARRAY_SIZE(usb_ID_PIN_input_table)); - printk(KERN_INFO "%s %d input none pull\n", __func__, SUPERSONIC_GPIO_USB_ID_PIN); - } -} - -static int supersonic_phy_init_seq[] = { 0xC, 0x31, 0x30, 0x32, 0x1D, 0x0D, 0x1D, 0x10, -1 }; -#ifdef CONFIG_USB_ANDROID -static struct msm_hsusb_platform_data msm_hsusb_pdata = { - .phy_init_seq = supersonic_phy_init_seq, - .phy_reset = msm_hsusb_8x50_phy_reset, - .usb_id_pin_gpio = SUPERSONIC_GPIO_USB_ID_PIN, - .accessory_detect = 1, /* detect by ID pin gpio */ - .usb_uart_switch = supersonic_uart_usb_switch, -}; - -static struct usb_mass_storage_platform_data mass_storage_pdata = { - .nluns = 1, - .vendor = "HTC", - .product = "Android Phone", - .release = 0x0100, -}; - -static struct platform_device usb_mass_storage_device = { - .name = "usb_mass_storage", - .id = -1, - .dev = { - .platform_data = &mass_storage_pdata, - }, -}; - -static struct android_usb_platform_data android_usb_pdata = { - .vendor_id = 0x0bb4, - .product_id = 0x0c8d, - .version = 0x0100, - .product_name = "Android Phone", - .manufacturer_name = "HTC", - .num_products = ARRAY_SIZE(usb_products), - .products = usb_products, - .num_functions = ARRAY_SIZE(usb_functions_all), - .functions = usb_functions_all, -}; - -static struct platform_device android_usb_device = { - .name = "android_usb", - .id = -1, - .dev = { - .platform_data = &android_usb_pdata, - }, -}; -static void suc_add_usb_devices(void) -{ - android_usb_pdata.products[0].product_id = - android_usb_pdata.product_id; - android_usb_pdata.serial_number = board_serialno(); - msm_hsusb_pdata.serial_number = board_serialno(); - msm_device_hsusb.dev.platform_data = &msm_hsusb_pdata; - config_supersonic_usb_id_gpios(0); - config_gpio_table(usb_phy_3v3_table, ARRAY_SIZE(usb_phy_3v3_table)); - gpio_set_value(SUPERSONIC_USB_PHY_3V3_ENABLE, 1); - platform_device_register(&msm_device_hsusb); - platform_device_register(&usb_mass_storage_device); - platform_device_register(&android_usb_device); -} -#endif - -static struct platform_device supersonic_rfkill = { - .name = "supersonic_rfkill", - .id = -1, -}; - -static struct resource qsd_spi_resources[] = { - { - .name = "spi_irq_in", - .start = INT_SPI_INPUT, - .end = INT_SPI_INPUT, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_irq_out", - .start = INT_SPI_OUTPUT, - .end = INT_SPI_OUTPUT, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_irq_err", - .start = INT_SPI_ERROR, - .end = INT_SPI_ERROR, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_base", - .start = 0xA1200000, - .end = 0xA1200000 + SZ_4K - 1, - .flags = IORESOURCE_MEM, - }, - { - .name = "spi_clk", - .start = 17, - .end = 1, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_mosi", - .start = 18, - .end = 1, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_miso", - .start = 19, - .end = 1, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_cs0", - .start = 20, - .end = 1, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_pwr", - .start = 21, - .end = 0, - .flags = IORESOURCE_IRQ, - }, - { - .name = "spi_irq_cs0", - .start = 22, - .end = 0, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct spi_platform_data supersonic_spi_pdata = { - .clk_rate = 1200000, -}; - -static struct platform_device qsd_device_spi = { - .name = "spi_qsd", - .id = 0, - .num_resources = ARRAY_SIZE(qsd_spi_resources), - .resource = qsd_spi_resources, - .dev = { - .platform_data = &supersonic_spi_pdata - }, -}; - -static struct resource msm_kgsl_resources[] = { - { - .name = "kgsl_reg_memory", - .start = MSM_GPU_REG_PHYS, - .end = MSM_GPU_REG_PHYS + MSM_GPU_REG_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - { - .name = "kgsl_phys_memory", - .start = MSM_GPU_MEM_BASE, - .end = MSM_GPU_MEM_BASE + MSM_GPU_MEM_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_GRAPHICS, - .end = INT_GRAPHICS, - .flags = IORESOURCE_IRQ, - }, -}; - -#define PWR_RAIL_GRP_CLK 8 -static int supersonic_kgsl_power_rail_mode(int follow_clk) -{ - int mode = follow_clk ? 0 : 1; - int rail_id = PWR_RAIL_GRP_CLK; - - return msm_proc_comm(PCOM_CLKCTL_RPC_RAIL_CONTROL, &rail_id, &mode); -} - -static int supersonic_kgsl_power(bool on) -{ - int cmd; - int rail_id = PWR_RAIL_GRP_CLK; - - cmd = on ? PCOM_CLKCTL_RPC_RAIL_ENABLE : PCOM_CLKCTL_RPC_RAIL_DISABLE; - return msm_proc_comm(cmd, &rail_id, NULL); -} - -static struct platform_device msm_kgsl_device = { - .name = "kgsl", - .id = -1, - .resource = msm_kgsl_resources, - .num_resources = ARRAY_SIZE(msm_kgsl_resources), -}; - -static struct android_pmem_platform_data mdp_pmem_pdata = { - .name = "pmem", - .start = MSM_PMEM_MDP_BASE, - .size = MSM_PMEM_MDP_SIZE, - .no_allocator = 0, - .cached = 1, -}; - -static struct android_pmem_platform_data android_pmem_adsp_pdata = { - .name = "pmem_adsp", - .start = MSM_PMEM_ADSP_BASE, - .size = MSM_PMEM_ADSP_SIZE, - .no_allocator = 0, - .cached = 1, -}; - -static struct android_pmem_platform_data android_pmem_venc_pdata = { - .name = "pmem_venc", - .start = MSM_PMEM_VENC_BASE, - .size = MSM_PMEM_VENC_SIZE, - .no_allocator = 0, - .cached = 1, -}; - - -#ifdef CONFIG_BUILD_CIQ -static struct android_pmem_platform_data android_pmem_ciq_pdata = { - .name = "pmem_ciq", - .start = MSM_PMEM_CIQ_BASE, - .size = MSM_PMEM_CIQ_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_ciq1_pdata = { - .name = "pmem_ciq1", - .start = MSM_PMEM_CIQ1_BASE, - .size = MSM_PMEM_CIQ1_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_ciq2_pdata = { - .name = "pmem_ciq2", - .start = MSM_PMEM_CIQ2_BASE, - .size = MSM_PMEM_CIQ2_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_ciq3_pdata = { - .name = "pmem_ciq3", - .start = MSM_PMEM_CIQ3_BASE, - .size = MSM_PMEM_CIQ3_SIZE, - .no_allocator = 0, - .cached = 0, -}; -#endif - -static struct platform_device android_pmem_mdp_device = { - .name = "android_pmem", - .id = 0, - .dev = { - .platform_data = &mdp_pmem_pdata - }, -}; - -static struct platform_device android_pmem_adsp_device = { - .name = "android_pmem", - .id = 4, - .dev = { - .platform_data = &android_pmem_adsp_pdata, - }, -}; - -static struct platform_device android_pmem_venc_device = { - .name = "android_pmem", - .id = 6, - .dev = { - .platform_data = &android_pmem_venc_pdata, - }, -}; - -#ifdef CONFIG_BUILD_CIQ -static struct platform_device android_pmem_ciq_device = { - .name = "android_pmem", - .id = 7, - .dev = { .platform_data = &android_pmem_ciq_pdata }, -}; - -static struct platform_device android_pmem_ciq1_device = { - .name = "android_pmem", - .id = 8, - .dev = { .platform_data = &android_pmem_ciq1_pdata }, -}; - -static struct platform_device android_pmem_ciq2_device = { - .name = "android_pmem", - .id = 9, - .dev = { .platform_data = &android_pmem_ciq2_pdata }, -}; - -static struct platform_device android_pmem_ciq3_device = { - .name = "android_pmem", - .id = 10, - .dev = { .platform_data = &android_pmem_ciq3_pdata }, -}; -#endif - - - -static struct resource ram_console_resources[] = { - { - .start = MSM_RAM_CONSOLE_BASE, - .end = MSM_RAM_CONSOLE_BASE + MSM_RAM_CONSOLE_SIZE - 1, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device ram_console_device = { - .name = "ram_console", - .id = -1, - .num_resources = ARRAY_SIZE(ram_console_resources), - .resource = ram_console_resources, -}; - -static int supersonic_atmel_ts_power(int on) -{ - printk(KERN_INFO "supersonic_atmel_ts_power(%d)\n", on); - if (on) { - gpio_set_value(SUPERSONIC_GPIO_TP_RST, 0); - msleep(5); - gpio_set_value(SUPERSONIC_GPIO_TP_EN, 1); - msleep(5); - gpio_set_value(SUPERSONIC_GPIO_TP_RST, 1); - msleep(40); - } else { - gpio_set_value(SUPERSONIC_GPIO_TP_EN, 0); - msleep(2); - } - return 0; -} - -struct atmel_i2c_platform_data supersonic_atmel_ts_data[] = { - { - .version = 0x016, - .abs_x_min = 34, - .abs_x_max = 990, - .abs_y_min = 15, - .abs_y_max = 950, - .abs_pressure_min = 0, - .abs_pressure_max = 255, - .abs_width_min = 0, - .abs_width_max = 20, - .gpio_irq = SUPERSONIC_GPIO_TP_INT_N, - .power = supersonic_atmel_ts_power, - .config_T6 = {0, 0, 0, 0, 0, 0}, - .config_T7 = {50, 15, 50}, - .config_T8 = {10, 0, 20, 10, 0, 0, 5, 0}, - .config_T9 = {139, 0, 0, 18, 12, 0, 16, 32, 3, 5, 0, 5, 2, 14, 2, 10, 25, 10, 0, 0, 0, 0, 0, 0, 0, 0, 143, 25, 146, 10, 20}, - .config_T15 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T19 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T20 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T22 = {15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 1, 8, 12, 16, 30, 40, 0}, - .config_T23 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T24 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T25 = {3, 0, 200, 50, 64, 31, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T27 = {0, 0, 0, 0, 0, 0, 0}, - .config_T28 = {0, 0, 2, 4, 8, 60}, - .object_crc = {0x0D, 0x1C, 0x8E}, - .cable_config = {30, 30, 8, 16}, - .GCAF_level = {20, 24, 28, 40, 63}, - .filter_level = {46, 100, 923, 978}, - }, - { - .version = 0x015, - .abs_x_min = 10, - .abs_x_max = 1012, - .abs_y_min = 15, - .abs_y_max = 960, - .abs_pressure_min = 0, - .abs_pressure_max = 255, - .abs_width_min = 0, - .abs_width_max = 20, - .gpio_irq = SUPERSONIC_GPIO_TP_INT_N, - .power = supersonic_atmel_ts_power, - .config_T6 = {0, 0, 0, 0, 0, 0}, - .config_T7 = {100, 10, 50}, - .config_T8 = {8, 0, 50, 50, 0, 0, 50, 0}, - .config_T9 = {3, 0, 0, 18, 12, 0, 32, 40, 2, 5, 0, 0, 0, 0, 2, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 143, 47, 145, 81}, - .config_T15 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T19 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T20 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T22 = {7, 0, 0, 25, 0, -25, 255, 4, 50, 0, 1, 10, 15, 20, 25, 30, 4}, - .config_T23 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T24 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T25 = {3, 0, 200, 50, 64, 31, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T27 = {0, 0, 0, 0, 0, 0, 0}, - .config_T28 = {0, 0, 2, 4, 8, 60}, - .object_crc = {0x87, 0xAD, 0xF5}, - }, - { - .version = 0x014, - .abs_x_min = 10, - .abs_x_max = 1012, - .abs_y_min = 15, - .abs_y_max = 960, - .abs_pressure_min = 0, - .abs_pressure_max = 255, - .abs_width_min = 0, - .abs_width_max = 20, - .gpio_irq = SUPERSONIC_GPIO_TP_INT_N, - .power = supersonic_atmel_ts_power, - .config_T6 = {0, 0, 0, 0, 0, 0}, - .config_T7 = {100, 10, 50}, - .config_T8 = {8, 0, 50, 50, 0, 0, 50, 0}, - .config_T9 = {3, 0, 0, 18, 12, 0, 64, 45, 3, 5, 0, 0, 0, 0, 2, 10, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 47, 143, 81}, - .config_T15 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T19 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T20 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T22 = {7, 0, 0, 25, 0, -25, 255, 4, 50, 0, 1, 10, 15, 20, 25, 30, 4}, - .config_T23 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T24 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T25 = {3, 0, 200, 50, 64, 31, 0, 0, 0, 0, 0, 0, 0, 0}, - .config_T27 = {0, 0, 0, 0, 0, 0, 0}, - .config_T28 = {0, 0, 2, 4, 8}, - } -}; - -static struct regulator_consumer_supply tps65023_dcdc1_supplies[] = { - { - .supply = "acpu_vcore", - }, -}; - -static struct regulator_init_data tps65023_data[5] = { - { - .constraints = { - .name = "dcdc1", /* VREG_MSMC2_1V29 */ - .min_uV = 1000000, - .max_uV = 1300000, - .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE, - }, - .consumer_supplies = tps65023_dcdc1_supplies, - .num_consumer_supplies = ARRAY_SIZE(tps65023_dcdc1_supplies), - }, - /* dummy values for unused regulators to not crash driver: */ - { - .constraints = { - .name = "dcdc2", /* VREG_MSMC1_1V26 */ - .min_uV = 1260000, - .max_uV = 1260000, - }, - }, - { - .constraints = { - .name = "dcdc3", /* unused */ - .min_uV = 800000, - .max_uV = 3300000, - }, - }, - { - .constraints = { - .name = "ldo1", /* unused */ - .min_uV = 1000000, - .max_uV = 3150000, - }, - }, - { - .constraints = { - .name = "ldo2", /* V_USBPHY_3V3 */ - .min_uV = 3300000, - .max_uV = 3300000, - }, - }, -}; - -static struct htc_headset_mgr_platform_data htc_headset_mgr_data = { -}; - -static struct platform_device htc_headset_mgr = { - .name = "HTC_HEADSET_MGR", - .id = -1, - .dev = { - .platform_data = &htc_headset_mgr_data, - }, -}; - -static struct htc_headset_gpio_platform_data htc_headset_gpio_data = { - .hpin_gpio = SUPERSONIC_GPIO_35MM_HEADSET_DET, - .key_enable_gpio = NULL, - .mic_select_gpio = NULL, -}; - -static struct platform_device htc_headset_gpio = { - .name = "HTC_HEADSET_GPIO", - .id = -1, - .dev = { - .platform_data = &htc_headset_gpio_data, - }, -}; - -static struct akm8973_platform_data compass_platform_data = { - .layouts = SUPERSONIC_LAYOUTS, - .project_name = SUPERSONIC_PROJECT_NAME, - .reset = SUPERSONIC_GPIO_COMPASS_RST_N, - .intr = SUPERSONIC_GPIO_COMPASS_INT_N, -}; - -static struct tpa2018d1_platform_data tpa2018_data = { - .gpio_tpa2018_spk_en = SUPERSONIC_AUD_SPK_EN, -}; - -/* - * HDMI platform data - */ - -#if 1 -#define HDMI_DBG(s...) printk("[hdmi]" s) -#else -#define HDMI_DBG(s...) do {} while (0) -#endif - -static int hdmi_power(int on) -{ - HDMI_DBG("%s(%d)\n", __func__, on); - - switch(on) { - /* Power on/off sequence for normal or D2 sleep mode */ - case 0: - gpio_set_value(HDMI_RST, 0); - msleep(2); - gpio_set_value(V_HDMI_3V3_EN, 0); - gpio_set_value(V_VGA_5V_SIL9022A_EN, 0); - msleep(2); - gpio_set_value(V_HDMI_1V2_EN, 0); - break; - case 1: - gpio_set_value(V_HDMI_1V2_EN, 1); - msleep(2); - gpio_set_value(V_VGA_5V_SIL9022A_EN, 1); - gpio_set_value(V_HDMI_3V3_EN, 1); - msleep(2); - gpio_set_value(HDMI_RST, 1); - msleep(2); - break; - - /* Power on/off sequence for D3 sleep mode */ - case 2: - gpio_set_value(V_HDMI_3V3_EN, 0); - break; - case 3: - gpio_set_value(HDMI_RST, 0); - msleep(2); - gpio_set_value(V_HDMI_3V3_EN, 1); - gpio_set_value(V_VGA_5V_SIL9022A_EN, 1); - msleep(50); - gpio_set_value(HDMI_RST, 1); - msleep(10); - break; - case 4: - gpio_set_value(V_VGA_5V_SIL9022A_EN, 0); - break; - case 5: - gpio_set_value(V_VGA_5V_SIL9022A_EN, 1); - break; - - default: - return -EINVAL; - } - return 0; -} - -static uint32_t hdmi_gpio_on_table[] = { - PCOM_GPIO_CFG(SUPERSONIC_LCD_R0, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R1, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R2, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R3, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R4, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - - PCOM_GPIO_CFG(SUPERSONIC_LCD_G0, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G1, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G2, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G3, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G4, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G5, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - - PCOM_GPIO_CFG(SUPERSONIC_LCD_B0, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B1, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B2, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B3, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B4, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - - PCOM_GPIO_CFG(SUPERSONIC_LCD_PCLK, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_VSYNC, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_HSYNC, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_DE, 1, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), -}; - -static uint32_t hdmi_gpio_off_table[] = { - PCOM_GPIO_CFG(SUPERSONIC_LCD_R0, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R1, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R2, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R3, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_R4, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - - PCOM_GPIO_CFG(SUPERSONIC_LCD_G0, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G1, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G2, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G3, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G4, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_G5, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - - PCOM_GPIO_CFG(SUPERSONIC_LCD_B0, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B1, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B2, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B3, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_B4, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - - PCOM_GPIO_CFG(SUPERSONIC_LCD_PCLK, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_VSYNC, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_HSYNC, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_LCD_DE, 0, GPIO_OUTPUT, GPIO_NO_PULL, - GPIO_2MA), -}; - - -static void suc_hdmi_gpio_on(void) -{ - HDMI_DBG("%s\n", __func__); - - config_gpio_table(hdmi_gpio_on_table, ARRAY_SIZE(hdmi_gpio_on_table)); -} - -static void suc_hdmi_gpio_off(void) -{ - int i = 0; - - HDMI_DBG("%s\n", __func__); - config_gpio_table(hdmi_gpio_off_table, ARRAY_SIZE(hdmi_gpio_off_table)); - - for (i = SUPERSONIC_LCD_R0; i <= SUPERSONIC_LCD_R4; i++) - gpio_set_value(i, 0); - for (i = SUPERSONIC_LCD_G0; i <= SUPERSONIC_LCD_G5; i++) - gpio_set_value(i, 0); - for (i = SUPERSONIC_LCD_B0; i <= SUPERSONIC_LCD_DE; i++) - gpio_set_value(i, 0); -} - -static struct hdmi_platform_data hdmi_device_data = { - .hdmi_res = { - .start = MSM_HDMI_FB_BASE, - .end = MSM_HDMI_FB_BASE + MSM_HDMI_FB_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - .power = hdmi_power, - .hdmi_gpio_on = suc_hdmi_gpio_on, - .hdmi_gpio_off = suc_hdmi_gpio_off, -}; - -static struct tpa6130_platform_data headset_amp_platform_data = { - .enable_rpc_server = 0, -}; - -static struct i2c_board_info i2c_devices[] = { - { - I2C_BOARD_INFO(ATMEL_QT602240_NAME, 0x94 >> 1), - .platform_data = &supersonic_atmel_ts_data, - .irq = MSM_GPIO_TO_INT(SUPERSONIC_GPIO_TP_INT_N) - }, -#ifdef CONFIG_MICROP_COMMON - { - I2C_BOARD_INFO(MICROP_I2C_NAME, 0xCC >> 1), - .platform_data = µp_data, - .irq = MSM_GPIO_TO_INT(SUPERSONIC_GPIO_UP_INT_N) - }, -#endif - { - I2C_BOARD_INFO("ds2482", 0x30 >> 1), - /*.platform_data = µp_data,*/ - /*.irq = MSM_GPIO_TO_INT(PASSION_GPIO_UP_INT_N)*/ - }, - { - I2C_BOARD_INFO("smb329", 0x6E >> 1), - }, - { - I2C_BOARD_INFO("tps65200", 0xD4 >> 1), - }, - { - I2C_BOARD_INFO("akm8973", 0x1C), - .platform_data = &compass_platform_data, - .irq = MSM_GPIO_TO_INT(SUPERSONIC_GPIO_COMPASS_INT_N), - }, - - { - I2C_BOARD_INFO("ov8810", 0x6C >> 1), - }, - { - I2C_BOARD_INFO("ov9665", 0x60 >> 1), - }, - { - I2C_BOARD_INFO(TPA6130_I2C_NAME, 0xC0 >> 1), - .platform_data = &headset_amp_platform_data, - }, - { - I2C_BOARD_INFO("tps65023", 0x48), - .platform_data = tps65023_data, - }, - { - I2C_BOARD_INFO("tpa2018d1", 0x58), - .platform_data = &tpa2018_data, - }, - { - I2C_BOARD_INFO("SiL902x-hdmi", 0x76 >> 1), - .platform_data = &hdmi_device_data, - .irq = MSM_uP_TO_INT(1), - }, -}; - -#ifdef CONFIG_ARCH_QSD8X50 -static char bdaddress[20]; - -static void bt_export_bd_address(void) - { - unsigned char cTemp[6]; - - memcpy(cTemp, get_bt_bd_ram(), 6); - sprintf(bdaddress, "%02x:%02x:%02x:%02x:%02x:%02x", cTemp[0], cTemp[1], cTemp[2], cTemp[3], cTemp[4], cTemp[5]); - printk(KERN_INFO "YoYo--BD_ADDRESS=%s\n", bdaddress); -} - -module_param_string(bdaddress, bdaddress, sizeof(bdaddress), S_IWUSR | S_IRUGO); -MODULE_PARM_DESC(bdaddress, "BT MAC ADDRESS"); -#endif - -static uint32_t camera_off_gpio_table[] = { - /* CAMERA SUSPEND*/ - PCOM_GPIO_CFG(0, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ - PCOM_GPIO_CFG(1, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(2, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(3, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(4, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT4 */ - PCOM_GPIO_CFG(5, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT5 */ - PCOM_GPIO_CFG(6, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT6 */ - PCOM_GPIO_CFG(7, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT7 */ - PCOM_GPIO_CFG(8, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT8 */ - PCOM_GPIO_CFG(9, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT9 */ - PCOM_GPIO_CFG(10, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT10 */ - PCOM_GPIO_CFG(11, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT11 */ - PCOM_GPIO_CFG(12, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* PCLK */ - PCOM_GPIO_CFG(13, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* HSYNC */ - PCOM_GPIO_CFG(14, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* VSYNC */ - PCOM_GPIO_CFG(15, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* MCLK */ - PCOM_GPIO_CFG(99, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), /* CAM1_RST */ - PCOM_GPIO_CFG(100, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), /* CAM1_PWD */ -}; - -static uint32_t camera_on_gpio_table[] = { - /* CAMERA */ - PCOM_GPIO_CFG(0, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT0 */ - PCOM_GPIO_CFG(1, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT1 */ - PCOM_GPIO_CFG(2, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT2 */ - PCOM_GPIO_CFG(3, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT3 */ - PCOM_GPIO_CFG(4, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT4 */ - PCOM_GPIO_CFG(5, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT5 */ - PCOM_GPIO_CFG(6, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT6 */ - PCOM_GPIO_CFG(7, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT7 */ - PCOM_GPIO_CFG(8, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT8 */ - PCOM_GPIO_CFG(9, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT9 */ - PCOM_GPIO_CFG(10, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT10 */ - PCOM_GPIO_CFG(11, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* DAT11 */ - PCOM_GPIO_CFG(12, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_16MA), /* PCLK */ - PCOM_GPIO_CFG(13, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* HSYNC */ - PCOM_GPIO_CFG(14, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* VSYNC */ - PCOM_GPIO_CFG(15, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_16MA), /* MCLK */ -}; - -static void config_camera_on_gpios(void) -{ - config_gpio_table(camera_on_gpio_table, - ARRAY_SIZE(camera_on_gpio_table)); -} - -static void config_camera_off_gpios(void) -{ - config_gpio_table(camera_off_gpio_table, - ARRAY_SIZE(camera_off_gpio_table)); -} - - -static struct resource msm_camera_resources[] = { - { - .start = MSM_VFE_PHYS, - .end = MSM_VFE_PHYS + MSM_VFE_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_VFE, - INT_VFE, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct msm_camera_device_platform_data msm_camera_device_data = { - .camera_gpio_on = config_camera_on_gpios, - .camera_gpio_off = config_camera_off_gpios, - .ioext.mdcphy = MSM_MDC_PHYS, - .ioext.mdcsz = MSM_MDC_SIZE, - .ioext.appphy = MSM_CLK_CTL_PHYS, - .ioext.appsz = MSM_CLK_CTL_SIZE, -}; - -static void supersonic_ov8810_clk_switch(void){ - int rc = 0; - pr_info("SuperSoinc: clk switch (supersonic)(ov8810)\n"); - rc = gpio_request(SUPERSONIC_CLK_SWITCH, "ov8810"); - if (rc < 0) - pr_err("GPIO (%d) request fail\n", SUPERSONIC_CLK_SWITCH); - else - gpio_direction_output(SUPERSONIC_CLK_SWITCH, 0); - gpio_free(SUPERSONIC_CLK_SWITCH); - - return; -} - -static void supersonic_ov9665_clk_switch(void){ - int rc = 0; - pr_info("SuperSoinc: Doing clk switch (supersonic)(ov9665)\n"); - rc = gpio_request(SUPERSONIC_CLK_SWITCH, "ov9665"); - if (rc < 0) - pr_err("GPIO (%d) request fail\n", SUPERSONIC_CLK_SWITCH); - else - gpio_direction_output(SUPERSONIC_CLK_SWITCH, 1); - gpio_free(SUPERSONIC_CLK_SWITCH); - - return; -} - -static int flashlight_control(int mode) -{ - return aat1271_flashlight_control(mode); -} - -static struct camera_flash_cfg msm_camera_sensor_flash_cfg = { - .camera_flash = flashlight_control, - .num_flash_levels = FLASHLIGHT_NUM, - .low_temp_limit = 10, - .low_cap_limit = 15, -}; - -static struct msm_camera_sensor_info msm_camera_sensor_ov8810_data = { - .sensor_name = "ov8810", - .sensor_reset = SUPERSONIC_MAINCAM_RST, /* CAM1_RST */ - .sensor_pwd = SUPERSONIC_MAINCAM_PWD, /* CAM1_PWDN, enabled in a9 */ - .camera_clk_switch = supersonic_ov8810_clk_switch, - .pdata = &msm_camera_device_data, - .resource = msm_camera_resources, - .num_resources = ARRAY_SIZE(msm_camera_resources), - .waked_up = 0, - .need_suspend = 0, - .flash_cfg = &msm_camera_sensor_flash_cfg, -}; - -static struct platform_device msm_camera_sensor_ov8810 = { - .name = "msm_camera_ov8810", - .dev = { - .platform_data = &msm_camera_sensor_ov8810_data, - }, -}; - -static struct msm_camera_sensor_info msm_camera_sensor_ov9665_data = { - .sensor_name = "ov9665", - .sensor_reset = SUPERSONIC_MAINCAM_RST, - .sensor_pwd = SUPERSONIC_2NDCAM_PWD, - .camera_clk_switch = supersonic_ov9665_clk_switch, - .pdata = &msm_camera_device_data, - .resource = msm_camera_resources, - .num_resources = ARRAY_SIZE(msm_camera_resources), - .waked_up = 0, - .need_suspend = 0, -}; - -static struct platform_device msm_camera_sensor_ov9665 = { - .name = "msm_camera_ov9665", - .dev = { - .platform_data = &msm_camera_sensor_ov9665_data, - }, -}; - -static void config_supersonic_flashlight_gpios(void) -{ - static uint32_t flashlight_gpio_table[] = { - PCOM_GPIO_CFG(SUPERSONIC_GPIO_FLASHLIGHT_TORCH, 0, - GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_GPIO_FLASHLIGHT_FLASH, 0, - GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), - PCOM_GPIO_CFG(SUPERSONIC_GPIO_FLASHLIGHT_FLASH_ADJ, 0, - GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), - }; - config_gpio_table(flashlight_gpio_table, - ARRAY_SIZE(flashlight_gpio_table)); -} - -static struct flashlight_platform_data supersonic_flashlight_data = { - .gpio_init = config_supersonic_flashlight_gpios, - .torch = SUPERSONIC_GPIO_FLASHLIGHT_TORCH, - .flash = SUPERSONIC_GPIO_FLASHLIGHT_FLASH, - .flash_adj = SUPERSONIC_GPIO_FLASHLIGHT_FLASH_ADJ, - .flash_duration_ms = 600, - .led_count = 1, -}; - -static struct platform_device supersonic_flashlight_device = { - .name = FLASHLIGHT_NAME, - .dev = { - .platform_data = &supersonic_flashlight_data, - }, -}; - -static struct platform_device *devices[] __initdata = { -#ifndef CONFIG_MSM_SERIAL_DEBUGGER - &msm_device_uart1, -#endif -#ifdef CONFIG_SERIAL_MSM_HS - &msm_device_uart_dm1, -#endif - &htc_battery_pdev, - &htc_headset_mgr, - &htc_headset_gpio, - &ram_console_device, - &supersonic_rfkill, - &msm_device_smd, - &msm_device_nand, - /*&msm_device_hsusb,*/ - /*&usb_mass_storage_device,*/ - &android_pmem_mdp_device, - &android_pmem_adsp_device, -#ifdef CONFIG_720P_CAMERA - &android_pmem_venc_device, -#endif -#ifdef CONFIG_BUILD_CIQ - &android_pmem_ciq_device, - &android_pmem_ciq1_device, - &android_pmem_ciq2_device, - &android_pmem_ciq3_device, -#endif - &msm_camera_sensor_ov8810, - &msm_kgsl_device, - &msm_device_i2c, - &msm_camera_sensor_ov9665, - &supersonic_flashlight_device, - &supersonic_leds, -#if defined(CONFIG_SPI_QSD) - &qsd_device_spi, -#endif -}; - -/* UART1 debug port init. This is supposed to be init in bootloader */ -static uint32_t supersonic_serial_debug_table[] = { - /* for uart debugger. It should be removed when support usb to serial function */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_UART1_RX, 3, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), /* RX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_UART1_TX, 3, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* TX */ -}; - -/* UART1 debug port init. This is supposed to be init in bootloader */ -static uint32_t supersonic_serial_debug_off_table[] = { - /* for uart debugger. It should be removed when support usb to serial function */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_UART1_RX, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), /* RX */ - PCOM_GPIO_CFG(SUPERSONIC_GPIO_UART1_TX, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* TX */ -}; - -static void supersonic_config_serial_debug_gpios(int on) -{ - if (on){ - config_gpio_table(supersonic_serial_debug_table, ARRAY_SIZE(supersonic_serial_debug_table)); - }else{ - config_gpio_table(supersonic_serial_debug_off_table, ARRAY_SIZE(supersonic_serial_debug_off_table)); - /*gpio_set_value(SUPERSONIC_GPIO_UART1_RX, 0); *//* OL */ - gpio_set_value(SUPERSONIC_GPIO_UART1_TX, 0); /* OL */ - } - printk(KERN_INFO "supersonic_config_serial_debug_gpios %d \n", on); -} - -static struct msm_i2c_device_platform_data msm_i2c_pdata = { - .i2c_clock = 100000, - .clock_strength = GPIO_8MA, - .data_strength = GPIO_8MA, -}; - -static void __init msm_device_i2c_init(void) -{ - msm_i2c_gpio_init(); - msm_device_i2c.dev.platform_data = &msm_i2c_pdata; -} - -static struct msm_acpu_clock_platform_data supersonic_clock_data = { - .acpu_switch_time_us = 20, - .max_speed_delta_khz = 256000, - .vdd_switch_time_us = 62, - .power_collapse_khz = 245000, - .wait_for_irq_khz = 245000, -}; - -static unsigned supersonic_perf_acpu_table[] = { - 245000000, - 576000000, - 998400000, -}; - -static struct perflock_platform_data supersonic_perflock_data = { - .perf_acpu_table = supersonic_perf_acpu_table, - .table_size = ARRAY_SIZE(supersonic_perf_acpu_table), -}; - -int supersonic_init_mmc(int sysrev); - -#ifdef CONFIG_SERIAL_MSM_HS -static struct msm_serial_hs_platform_data msm_uart_dm1_pdata = { - .rx_wakeup_irq = MSM_GPIO_TO_INT(SUPERSONIC_GPIO_BT_HOST_WAKE), /*Chip to Device*/ - .inject_rx_on_wakeup = 0, - .cpu_lock_supported = 0, - - /* for bcm */ - .bt_wakeup_pin_supported = 1, - .bt_wakeup_pin = SUPERSONIC_GPIO_BT_CHIP_WAKE, - .host_wakeup_pin = SUPERSONIC_GPIO_BT_HOST_WAKE, -}; -#endif - -#if defined(CONFIG_MSM_SERIAL_DEBUGGER) -struct msm_serial_debug_platform_data msm_uart_debug_pdata = { - .config_gpio = supersonic_config_serial_debug_gpios, - .disable_uart = 1, -}; -#endif - -static int OJ_BMA_power(void) -{ - int ret; - struct vreg *vreg = vreg_get(0, "synt"); - - if (!vreg) { - printk(KERN_ERR "%s: vreg error\n", __func__); - return -EIO; - } - ret = vreg_set_level(vreg, 2850); - - ret = vreg_enable(vreg); - if (ret < 0) - printk(KERN_ERR "%s: vreg enable failed\n", __func__); - - return 0; -} - -unsigned supersonic_get_skuid(void) -{ - return skuid; -} - -static ssize_t supersonic_virtual_keys_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) -{ - return sprintf(buf, - __stringify(EV_KEY) ":" __stringify(KEY_HOME) ":43:835:86:50" - ":" __stringify(EV_KEY) ":" __stringify(KEY_MENU) ":165:835:100:50" - ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK) ":300:835:110:50" - ":" __stringify(EV_KEY) ":" __stringify(KEY_SEARCH) ":425:835:90:50" - "\n"); -} - -static struct kobj_attribute supersonic_virtual_keys_attr = { - .attr = { - .name = "virtualkeys.atmel-touchscreen", - .mode = S_IRUGO, - }, - .show = &supersonic_virtual_keys_show, -}; - -static struct attribute *supersonic_properties_attrs[] = { - &supersonic_virtual_keys_attr.attr, - NULL -}; - -static struct attribute_group supersonic_properties_attr_group = { - .attrs = supersonic_properties_attrs, -}; - -static void supersonic_reset(void) -{ - gpio_set_value(SUPERSONIC_GPIO_PS_HOLD, 0); -} - -/* system_rev == higher 16bits of PCBID -XA -> 0000FFFF -> 0x0000 -XB -> 0101FFFF -> 0x0101 -XC -> 0202FFFF -> 0x0202 -*/ -static void __init supersonic_init(void) -{ - int ret; - struct kobject *properties_kobj; - - printk("supersonic_init() revision=%d\n", system_rev); - - msm_hw_reset_hook = supersonic_reset; - - OJ_BMA_power(); - - msm_acpu_clock_init(&supersonic_clock_data); - - perflock_init(&supersonic_perflock_data); - -#if defined(CONFIG_MSM_SERIAL_DEBUGGER) - msm_device_uart1.dev.platform_data = &msm_uart_debug_pdata; - msm_serial_debug_init(MSM_UART1_PHYS, INT_UART1, - &msm_device_uart1.dev, 1, MSM_GPIO_TO_INT(SUPERSONIC_GPIO_UART1_RX)); -#endif - -#ifdef CONFIG_ARCH_QSD8X50 - bt_export_bd_address(); -#endif - - /* set the gpu power rail to manual mode so clk en/dis will not - * turn off gpu power, and hang it on resume */ - supersonic_kgsl_power_rail_mode(0); - supersonic_kgsl_power(true); - - #ifdef CONFIG_SERIAL_MSM_HS - msm_device_uart_dm1.dev.platform_data = &msm_uart_dm1_pdata; - msm_device_uart_dm1.name = "msm_serial_hs_bcm"; /* for bcm */ - #endif - - config_gpio_table(camera_off_gpio_table, - ARRAY_SIZE(camera_off_gpio_table)); - /*gpio_direction_output(SUPERSONIC_GPIO_TP_LS_EN, 0);*/ - gpio_direction_output(SUPERSONIC_GPIO_TP_EN, 0); - - supersonic_audio_init(); - supersonic_init_panel(); -#ifdef CONFIG_MICROP_COMMON - supersonic_microp_init(); -#endif - msm_device_i2c_init(); - - platform_add_devices(devices, ARRAY_SIZE(devices)); -#ifdef CONFIG_USB_ANDROID - if (!opt_usb_h2w_sw) - suc_add_usb_devices(); -#endif - i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices)); - - ret = supersonic_init_mmc(system_rev); - if (ret != 0) - pr_crit("%s: Unable to initialize MMC\n", __func__); - - properties_kobj = kobject_create_and_add("board_properties", NULL); - if (properties_kobj) - ret = sysfs_create_group(properties_kobj, - &supersonic_properties_attr_group); - if (!properties_kobj || ret) - pr_err("failed to create board_properties\n"); - - msm_init_pmic_vibrator(); - -} - -static void __init supersonic_fixup(struct machine_desc *desc, struct tag *tags, - char **cmdline, struct meminfo *mi) -{ - skuid = parse_tag_skuid((const struct tag *)tags); - printk(KERN_INFO "supersonic_fixup:skuid=0x%x\n", skuid); - /* First Bank 256MB */ - mi->nr_banks = 1; - mi->bank[0].start = PHYS_OFFSET; - mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET); - mi->bank[0].size = MSM_EBI1_BANK0_SIZE; /*(219*1024*1024);*/ - - /* Second Bank 128MB */ - mi->nr_banks++; - mi->bank[1].start = MSM_EBI1_BANK1_BASE; - mi->bank[1].node = PHYS_TO_NID(MSM_EBI1_BANK1_BASE); - mi->bank[1].size = MSM_EBI1_BANK1_SIZE; -} - -static void __init supersonic_map_io(void) -{ - msm_map_common_io(); - msm_clock_init(); -} - -extern struct sys_timer msm_timer; - -MACHINE_START(SUPERSONIC, "supersonic") -#ifdef CONFIG_MSM_DEBUG_UART - .phys_io = MSM_DEBUG_UART_PHYS, - .io_pg_offst = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc, -#endif - .boot_params = 0x20000100, - .fixup = supersonic_fixup, - .map_io = supersonic_map_io, - .init_irq = msm_init_irq, - .init_machine = supersonic_init, - .timer = &msm_timer, -MACHINE_END diff --git a/arch/arm/mach-msm/board-supersonic.h b/arch/arm/mach-msm/board-supersonic.h deleted file mode 100644 index 32d74ed3..00000000 --- a/arch/arm/mach-msm/board-supersonic.h +++ /dev/null @@ -1,196 +0,0 @@ -/* arch/arm/mach-msm/board-supersonic.h - * - * Copyright (C) 2009 HTC Corporation. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. -*/ - -#ifndef __ARCH_ARM_MACH_MSM_BOARD_SUPERSONIC_H -#define __ARCH_ARM_MACH_MSM_BOARD_SUPERSONIC_H - -#include - -#define MSM_SMI_BASE 0x02B00000 -#define MSM_SMI_SIZE 0x01500000 - -#define MSM_HDMI_FB_BASE 0x02B00000 -#define MSM_HDMI_FB_SIZE 0x00400000 - -#define MSM_PMEM_VENC_BASE 0x02F00000 -#define MSM_PMEM_VENC_SIZE 0x00800000 - -#define MSM_GPU_MEM_BASE 0x03700000 -#define MSM_GPU_MEM_SIZE 0x00300000 - -#define MSM_RAM_CONSOLE_BASE 0x03A00000 -#define MSM_RAM_CONSOLE_SIZE 0x00040000 - -#ifdef CONFIG_BUILD_CIQ -#define MSM_PMEM_CIQ_BASE MSM_RAM_CONSOLE_BASE + MSM_RAM_CONSOLE_SIZE -#define MSM_PMEM_CIQ_SIZE SZ_64K -#define MSM_PMEM_CIQ1_BASE MSM_PMEM_CIQ_BASE -#define MSM_PMEM_CIQ1_SIZE MSM_PMEM_CIQ_SIZE -#define MSM_PMEM_CIQ2_BASE MSM_PMEM_CIQ_BASE -#define MSM_PMEM_CIQ2_SIZE MSM_PMEM_CIQ_SIZE -#define MSM_PMEM_CIQ3_BASE MSM_PMEM_CIQ_BASE -#define MSM_PMEM_CIQ3_SIZE MSM_PMEM_CIQ_SIZE -#endif - -#define MSM_FB_BASE 0x03B00000 -#define MSM_FB_SIZE 0x00300000 - -#define MSM_EBI1_BANK0_BASE 0x20000000 -//#define MSM_EBI1_BANK0_SIZE 0x0E000000 /* radio < 3210 */ -#define MSM_EBI1_BANK0_SIZE 0x0E800000 /*for radio >=3210 */ - -/* 4Gb/512MB DRAM */ -#define MSM_EBI1_BANK1_BASE 0x30000000 -#define MSM_EBI1_BANK1_SIZE 0x0C000000 - -#define MSM_PMEM_MDP_BASE 0x3C000000 -#define MSM_PMEM_MDP_SIZE 0x02000000 - -#define MSM_PMEM_ADSP_BASE 0x3E000000 -#define MSM_PMEM_ADSP_SIZE 0x02000000 - -#define SUPERSONIC_GPIO_UP_INT_N 35 -#define SUPERSONIC_GPIO_UP_RESET_N 108 - -#define SUPERSONIC_GPIO_TP_RST 34 -#define SUPERSONIC_GPIO_TP_INT_N 38 -#define SUPERSONIC_GPIO_TP_EN 100 /* V_TP3V3_EN */ - -//#define SUPERSONIC_GPIO_POWER_KEY 94 -#define SUPERSONIC_GPIO_SDMC_CD_N 28 - -/* BT */ -#define SUPERSONIC_GPIO_BT_UART1_RTS (43) -#define SUPERSONIC_GPIO_BT_UART1_CTS (44) -#define SUPERSONIC_GPIO_BT_UART1_RX (45) -#define SUPERSONIC_GPIO_BT_UART1_TX (46) -#define SUPERSONIC_GPIO_BT_RESET_N (27) -#define SUPERSONIC_GPIO_BT_SHUTDOWN_N (146) -#define SUPERSONIC_GPIO_BT_HOST_WAKE (86) -#define SUPERSONIC_GPIO_BT_CHIP_WAKE (87) - -#define SUPERSONIC_GPIO_COMPASS_RST_N 107 -#define SUPERSONIC_GPIO_COMPASS_INT_N 36 -#define SUPERSONIC_PROJECT_NAME "supersonic" -#define SUPERSONIC_LAYOUTS { \ - { { 0, 1, 0}, { -1, 0, 0}, {0, 0, 1} }, \ - { { 0, -1, 0}, { -1, 0, 0}, {0, 0, 1} }, \ - { { -1, 0, 0}, { 0, -1, 0}, {0, 0, 1} }, \ - { { 1, 0, 0}, { 0, 0, 1}, {0, 1, 0} } \ - } - -/* Proximity */ -#define SUPERSONIC_GPIO_PROXIMITY_EN_N 109 - -/* Battery */ -#define SUPERSONIC_GPIO_MBAT_IN 39 -#define SUPERSONIC_GPIO_MCHG_EN_N 22 -#define SUPERSONIC_GPIO_ISET 16 - -/*Audio */ -#define SUPERSONIC_AUD_JACKHP_EN 157 -#define SUPERSONIC_AUD_2V5_EN 26 -#define SUPERSONIC_AUD_SPK_EN 129 - -/* Bluetooth PCM */ -#define SUPERSONIC_BT_PCM_OUT 68 -#define SUPERSONIC_BT_PCM_IN 69 -#define SUPERSONIC_BT_PCM_SYNC 70 -#define SUPERSONIC_BT_PCM_CLK 71 - -//#define SUPERSONIC_MENU_KEY 40 -#define SUPERSONIC_VOLUME_UP 41 -#define SUPERSONIC_VOLUME_DOWN 42 -#define SUPERSONIC_POWER_KEY 94 - -/* flash light */ -#define SUPERSONIC_GPIO_FLASHLIGHT_FLASH (84) -#define SUPERSONIC_GPIO_FLASHLIGHT_TORCH (85) -#define SUPERSONIC_GPIO_FLASHLIGHT_FLASH_ADJ (31) - -/* AP Key Led turn on*/ -#define SUPERSONIC_AP_KEY_LED_EN (32) - -/* UART/USB switch : high -> UART, low -> HSUSB */ -#define SUPERSONIC_USB_UARTz_SW 33 -#define SUPERSONIC_WIMAX_CPU_UARTz_SW 160 - -/* USB PHY 3V3 enable*/ -#define SUPERSONIC_USB_PHY_3V3_ENABLE (104) -#define SUPERSONIC_GPIO_USB_CABLE_IN_PIN (82) -#define SUPERSONIC_GPIO_USB_ID_PIN (37) -/* 35mm headset */ -#define SUPERSONIC_GPIO_35MM_HEADSET_DET (153) -#if 0 /* TODO */ -//#define SUPERSONIC_GPIO_H2W_POWER (27) -//#define SUPERSONIC_GPIO_CABLE_IN1 (38) -#define SUPERSONIC_GPIO_CABLE_IN (37) -//#define SUPERSONIC_GPIO_H2W_DATA (139) -//#define SUPERSONIC_GPIO_H2W_CLK (140) -#endif - -/* UART1*/ -#define SUPERSONIC_GPIO_UART1_RX (139) -#define SUPERSONIC_GPIO_UART1_TX (140) - -/* Wifi */ -#define SUPERSONIC_GPIO_WIFI_SHUTDOWN_N 147 -#define SUPERSONIC_GPIO_WIFI_IRQ 152 -/*camera*/ -#define SUPERSONIC_MAINCAM_PWD 105 -#define SUPERSONIC_MAINCAM_RST 99 -#define SUPERSONIC_2NDCAM_PWD 120 -#define SUPERSONIC_CLK_SWITCH 102 - -#define SUPERSONIC_LCD_RST (113) -unsigned supersonic_get_skuid(void); - -/* HDMI */ -#define HDMI_RST (111) -#define V_HDMI_1V2_EN (119) -#define V_VGA_5V_SIL9022A_EN (127) -#define V_HDMI_3V3_EN (128) -#define SUPERSONIC_I2S_CLK (142) -#define SUPERSONIC_I2S_WS (143) -#define SUPERSONIC_I2S_DOUT (145) - -/* LCD RGB */ -#define SUPERSONIC_LCD_R0 (114) -#define SUPERSONIC_LCD_R1 (115) -#define SUPERSONIC_LCD_R2 (116) -#define SUPERSONIC_LCD_R3 (117) -#define SUPERSONIC_LCD_R4 (118) - -#define SUPERSONIC_LCD_G0 (121) -#define SUPERSONIC_LCD_G1 (122) -#define SUPERSONIC_LCD_G2 (123) -#define SUPERSONIC_LCD_G3 (124) -#define SUPERSONIC_LCD_G4 (125) -#define SUPERSONIC_LCD_G5 (126) - -#define SUPERSONIC_LCD_B0 (130) -#define SUPERSONIC_LCD_B1 (131) -#define SUPERSONIC_LCD_B2 (132) -#define SUPERSONIC_LCD_B3 (133) -#define SUPERSONIC_LCD_B4 (134) - -#define SUPERSONIC_LCD_PCLK (135) -#define SUPERSONIC_LCD_VSYNC (136) -#define SUPERSONIC_LCD_HSYNC (137) -#define SUPERSONIC_LCD_DE (138) - -#define SUPERSONIC_GPIO_PS_HOLD (25) -int __init supersonic_init_panel(void); - -#endif /* __ARCH_ARM_MACH_MSM_BOARD_SUPERSONIC_H */ diff --git a/arch/arm/mach-msm/board-swordfish-keypad.c b/arch/arm/mach-msm/board-swordfish-keypad.c deleted file mode 100644 index f2c2f396..00000000 --- a/arch/arm/mach-msm/board-swordfish-keypad.c +++ /dev/null @@ -1,177 +0,0 @@ -/* linux/arch/arm/mach-msm/board-swordfish-keypad.c - * - * Copyright (C) 2007 Google, Inc. - * Author: Brian Swetland - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include - -#undef MODULE_PARAM_PREFIX -#define MODULE_PARAM_PREFIX "board_swordfish." -static int swordfish_ffa; -module_param_named(ffa, swordfish_ffa, int, S_IRUGO | S_IWUSR | S_IWGRP); - -#define SCAN_FUNCTION_KEYS 0 /* don't turn this on without updating the ffa support */ - -static unsigned int swordfish_row_gpios[] = { - 31, 32, 33, 34, 35, 41 -#if SCAN_FUNCTION_KEYS - , 42 -#endif -}; - -static unsigned int swordfish_col_gpios[] = { 36, 37, 38, 39, 40 }; - -/* FFA: - 36: KEYSENSE_N(0) - 37: KEYSENSE_N(1) - 38: KEYSENSE_N(2) - 39: KEYSENSE_N(3) - 40: KEYSENSE_N(4) - - 31: KYPD_17 - 32: KYPD_15 - 33: KYPD_13 - 34: KYPD_11 - 35: KYPD_9 - 41: KYPD_MEMO -*/ - -#define KEYMAP_INDEX(row, col) ((row)*ARRAY_SIZE(swordfish_col_gpios) + (col)) - -static const unsigned short swordfish_keymap[ARRAY_SIZE(swordfish_col_gpios) * ARRAY_SIZE(swordfish_row_gpios)] = { - [KEYMAP_INDEX(0, 0)] = KEY_5, - [KEYMAP_INDEX(0, 1)] = KEY_9, - [KEYMAP_INDEX(0, 2)] = 229, /* SOFT1 */ - [KEYMAP_INDEX(0, 3)] = KEY_6, - [KEYMAP_INDEX(0, 4)] = KEY_LEFT, - - [KEYMAP_INDEX(1, 0)] = KEY_0, - [KEYMAP_INDEX(1, 1)] = KEY_RIGHT, - [KEYMAP_INDEX(1, 2)] = KEY_1, - [KEYMAP_INDEX(1, 3)] = 228, /* KEY_SHARP */ - [KEYMAP_INDEX(1, 4)] = KEY_SEND, - - [KEYMAP_INDEX(2, 0)] = KEY_VOLUMEUP, - [KEYMAP_INDEX(2, 1)] = KEY_HOME, /* FA */ - [KEYMAP_INDEX(2, 2)] = KEY_F8, /* QCHT */ - [KEYMAP_INDEX(2, 3)] = KEY_F6, /* R+ */ - [KEYMAP_INDEX(2, 4)] = KEY_F7, /* R- */ - - [KEYMAP_INDEX(3, 0)] = KEY_UP, - [KEYMAP_INDEX(3, 1)] = KEY_CLEAR, - [KEYMAP_INDEX(3, 2)] = KEY_4, - [KEYMAP_INDEX(3, 3)] = KEY_MUTE, /* SPKR */ - [KEYMAP_INDEX(3, 4)] = KEY_2, - - [KEYMAP_INDEX(4, 0)] = 230, /* SOFT2 */ - [KEYMAP_INDEX(4, 1)] = 232, /* KEY_CENTER */ - [KEYMAP_INDEX(4, 2)] = KEY_DOWN, - [KEYMAP_INDEX(4, 3)] = KEY_BACK, /* FB */ - [KEYMAP_INDEX(4, 4)] = KEY_8, - - [KEYMAP_INDEX(5, 0)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(5, 1)] = 227, /* KEY_STAR */ - [KEYMAP_INDEX(5, 2)] = KEY_MAIL, /* MESG */ - [KEYMAP_INDEX(5, 3)] = KEY_3, - [KEYMAP_INDEX(5, 4)] = KEY_7, - -#if SCAN_FUNCTION_KEYS - [KEYMAP_INDEX(6, 0)] = KEY_F5, - [KEYMAP_INDEX(6, 1)] = KEY_F4, - [KEYMAP_INDEX(6, 2)] = KEY_F3, - [KEYMAP_INDEX(6, 3)] = KEY_F2, - [KEYMAP_INDEX(6, 4)] = KEY_F1 -#endif -}; - -static const unsigned short swordfish_keymap_ffa[ARRAY_SIZE(swordfish_col_gpios) * ARRAY_SIZE(swordfish_row_gpios)] = { - /*[KEYMAP_INDEX(0, 0)] = ,*/ - /*[KEYMAP_INDEX(0, 1)] = ,*/ - [KEYMAP_INDEX(0, 2)] = KEY_1, - [KEYMAP_INDEX(0, 3)] = KEY_SEND, - [KEYMAP_INDEX(0, 4)] = KEY_LEFT, - - [KEYMAP_INDEX(1, 0)] = KEY_3, - [KEYMAP_INDEX(1, 1)] = KEY_RIGHT, - [KEYMAP_INDEX(1, 2)] = KEY_VOLUMEUP, - /*[KEYMAP_INDEX(1, 3)] = ,*/ - [KEYMAP_INDEX(1, 4)] = KEY_6, - - [KEYMAP_INDEX(2, 0)] = KEY_HOME, /* A */ - [KEYMAP_INDEX(2, 1)] = KEY_BACK, /* B */ - [KEYMAP_INDEX(2, 2)] = KEY_0, - [KEYMAP_INDEX(2, 3)] = 228, /* KEY_SHARP */ - [KEYMAP_INDEX(2, 4)] = KEY_9, - - [KEYMAP_INDEX(3, 0)] = KEY_UP, - [KEYMAP_INDEX(3, 1)] = 232, /* KEY_CENTER */ /* i */ - [KEYMAP_INDEX(3, 2)] = KEY_4, - /*[KEYMAP_INDEX(3, 3)] = ,*/ - [KEYMAP_INDEX(3, 4)] = KEY_2, - - [KEYMAP_INDEX(4, 0)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(4, 1)] = KEY_SOUND, - [KEYMAP_INDEX(4, 2)] = KEY_DOWN, - [KEYMAP_INDEX(4, 3)] = KEY_8, - [KEYMAP_INDEX(4, 4)] = KEY_5, - - /*[KEYMAP_INDEX(5, 0)] = ,*/ - [KEYMAP_INDEX(5, 1)] = 227, /* KEY_STAR */ - [KEYMAP_INDEX(5, 2)] = 230, /*SOFT2*/ /* 2 */ - [KEYMAP_INDEX(5, 3)] = KEY_MENU, /* 1 */ - [KEYMAP_INDEX(5, 4)] = KEY_7, -}; - -static struct gpio_event_matrix_info swordfish_matrix_info = { - .info.func = gpio_event_matrix_func, - .keymap = swordfish_keymap, - .output_gpios = swordfish_row_gpios, - .input_gpios = swordfish_col_gpios, - .noutputs = ARRAY_SIZE(swordfish_row_gpios), - .ninputs = ARRAY_SIZE(swordfish_col_gpios), - .settle_time.tv.nsec = 0, - .poll_time.tv.nsec = 20 * NSEC_PER_MSEC, - .flags = GPIOKPF_LEVEL_TRIGGERED_IRQ | GPIOKPF_DRIVE_INACTIVE | GPIOKPF_PRINT_UNMAPPED_KEYS /*| GPIOKPF_PRINT_MAPPED_KEYS*/ -}; - -struct gpio_event_info *swordfish_keypad_info[] = { - &swordfish_matrix_info.info -}; - -static struct gpio_event_platform_data swordfish_keypad_data = { - .name = "swordfish_keypad", - .info = swordfish_keypad_info, - .info_count = ARRAY_SIZE(swordfish_keypad_info) -}; - -static struct platform_device swordfish_keypad_device = { - .name = GPIO_EVENT_DEV_NAME, - .id = -1, - .dev = { - .platform_data = &swordfish_keypad_data, - }, -}; - -static int __init swordfish_init_keypad(void) -{ - if (!machine_is_swordfish()) - return 0; - if (swordfish_ffa) - swordfish_matrix_info.keymap = swordfish_keymap_ffa; - return platform_device_register(&swordfish_keypad_device); -} - -device_initcall(swordfish_init_keypad); diff --git a/arch/arm/mach-msm/board-swordfish-mmc.c b/arch/arm/mach-msm/board-swordfish-mmc.c deleted file mode 100644 index bb0b1734..00000000 --- a/arch/arm/mach-msm/board-swordfish-mmc.c +++ /dev/null @@ -1,263 +0,0 @@ -/* linux/arch/arm/mach-msm/board-swordfish-mmc.c - * - * Copyright (C) 2008 Google, Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include "proc_comm.h" -#include "devices.h" - -#define FPGA_BASE 0x70000000 -#define FPGA_SDIO_STATUS 0x280 - -static void __iomem *fpga_base; - -#define DEBUG_SWORDFISH_MMC 1 - -extern int msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, - unsigned int stat_irq, unsigned long stat_irq_flags); - -static int config_gpio_table(unsigned *table, int len, int enable) -{ - int n; - int rc = 0; - - for (n = 0; n < len; n++) { - unsigned dis = !enable; - unsigned id = table[n]; - - if (msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, &dis)) { - pr_err("%s: id=0x%08x dis=%d\n", __func__, table[n], - dis); - rc = -1; - } - } - - return rc; -} - -static unsigned sdc1_gpio_table[] = { - PCOM_GPIO_CFG(51, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(52, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(53, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(54, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(55, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(56, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), -}; - -static unsigned sdc2_gpio_table[] = { - PCOM_GPIO_CFG(62, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), - PCOM_GPIO_CFG(63, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(64, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(65, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(66, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(67, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), -}; - -static unsigned sdc3_gpio_table[] = { - PCOM_GPIO_CFG(88, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), - PCOM_GPIO_CFG(89, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(90, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(91, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(92, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(93, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), -}; - -static unsigned sdc4_gpio_table[] = { - PCOM_GPIO_CFG(142, 3, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), - PCOM_GPIO_CFG(143, 3, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(144, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(145, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(146, 3, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), - PCOM_GPIO_CFG(147, 3, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), -}; - -struct sdc_info { - unsigned *table; - unsigned len; -}; - -static struct sdc_info sdcc_gpio_tables[] = { - [0] = { - .table = sdc1_gpio_table, - .len = ARRAY_SIZE(sdc1_gpio_table), - }, - [1] = { - .table = sdc2_gpio_table, - .len = ARRAY_SIZE(sdc2_gpio_table), - }, - [2] = { - .table = sdc3_gpio_table, - .len = ARRAY_SIZE(sdc3_gpio_table), - }, - [3] = { - .table = sdc4_gpio_table, - .len = ARRAY_SIZE(sdc4_gpio_table), - }, -}; - -static int swordfish_sdcc_setup_gpio(int dev_id, unsigned enable) -{ - struct sdc_info *info; - - if (dev_id < 1 || dev_id > 4) - return -1; - - info = &sdcc_gpio_tables[dev_id - 1]; - return config_gpio_table(info->table, info->len, enable); -} - -struct mmc_vdd_xlat { - int mask; - int level; -}; - -static struct mmc_vdd_xlat mmc_vdd_table[] = { - { MMC_VDD_165_195, 1800 }, - { MMC_VDD_20_21, 2050 }, - { MMC_VDD_21_22, 2150 }, - { MMC_VDD_22_23, 2250 }, - { MMC_VDD_23_24, 2350 }, - { MMC_VDD_24_25, 2450 }, - { MMC_VDD_25_26, 2550 }, - { MMC_VDD_26_27, 2650 }, - { MMC_VDD_27_28, 2750 }, - { MMC_VDD_28_29, 2850 }, - { MMC_VDD_29_30, 2950 }, -}; - -static struct vreg *vreg_sdcc; -static unsigned int vreg_sdcc_enabled; -static unsigned int sdcc_vdd = 0xffffffff; - -static uint32_t sdcc_translate_vdd(struct device *dev, unsigned int vdd) -{ - int i; - int rc = 0; - struct platform_device *pdev; - - pdev = container_of(dev, struct platform_device, dev); - BUG_ON(!vreg_sdcc); - - if (vdd == sdcc_vdd) - return 0; - - sdcc_vdd = vdd; - - /* enable/disable the signals to the slot */ - swordfish_sdcc_setup_gpio(pdev->id, !!vdd); - - /* power down */ - if (vdd == 0) { -#if DEBUG_SWORDFISH_MMC - pr_info("%s: disable sdcc power\n", __func__); -#endif - vreg_disable(vreg_sdcc); - vreg_sdcc_enabled = 0; - return 0; - } - - if (!vreg_sdcc_enabled) { - rc = vreg_enable(vreg_sdcc); - if (rc) - pr_err("%s: Error enabling vreg (%d)\n", __func__, rc); - vreg_sdcc_enabled = 1; - } - - for (i = 0; i < ARRAY_SIZE(mmc_vdd_table); i++) { - if (mmc_vdd_table[i].mask != (1 << vdd)) - continue; -#if DEBUG_SWORDFISH_MMC - pr_info("%s: Setting level to %u\n", __func__, - mmc_vdd_table[i].level); -#endif - rc = vreg_set_level(vreg_sdcc, mmc_vdd_table[i].level); - if (rc) - pr_err("%s: Error setting vreg level (%d)\n", __func__, rc); - return 0; - } - - pr_err("%s: Invalid VDD %d specified\n", __func__, vdd); - return 0; -} - -static unsigned int swordfish_sdcc_slot_status (struct device *dev) -{ - struct platform_device *pdev; - uint32_t sdcc_stat; - - pdev = container_of(dev, struct platform_device, dev); - - sdcc_stat = readl(fpga_base + FPGA_SDIO_STATUS); - - /* bit 0 - sdcc1 crd_det - * bit 1 - sdcc1 wr_prt - * bit 2 - sdcc2 crd_det - * bit 3 - sdcc2 wr_prt - * etc... - */ - - /* crd_det is active low */ - return !(sdcc_stat & (1 << ((pdev->id - 1) << 1))); -} - -#define SWORDFISH_MMC_VDD (MMC_VDD_165_195 | MMC_VDD_20_21 | MMC_VDD_21_22 \ - | MMC_VDD_22_23 | MMC_VDD_23_24 | MMC_VDD_24_25 \ - | MMC_VDD_25_26 | MMC_VDD_26_27 | MMC_VDD_27_28 \ - | MMC_VDD_28_29 | MMC_VDD_29_30) - -static struct mmc_platform_data swordfish_sdcc_data = { - .ocr_mask = SWORDFISH_MMC_VDD/*MMC_VDD_27_28 | MMC_VDD_28_29*/, - .status = swordfish_sdcc_slot_status, - .translate_vdd = sdcc_translate_vdd, -}; - -int __init swordfish_init_mmc(void) -{ - vreg_sdcc_enabled = 0; - vreg_sdcc = vreg_get(NULL, "gp5"); - if (IS_ERR(vreg_sdcc)) { - pr_err("%s: vreg get failed (%ld)\n", - __func__, PTR_ERR(vreg_sdcc)); - return PTR_ERR(vreg_sdcc); - } - - fpga_base = ioremap(FPGA_BASE, SZ_4K); - if (!fpga_base) { - pr_err("%s: Can't ioremap FPGA base address (0x%08x)\n", - __func__, FPGA_BASE); - vreg_put(vreg_sdcc); - return -EIO; - } - - msm_add_sdcc(1, &swordfish_sdcc_data, 0, 0); - msm_add_sdcc(4, &swordfish_sdcc_data, 0, 0); - - return 0; -} - diff --git a/arch/arm/mach-msm/board-swordfish-panel.c b/arch/arm/mach-msm/board-swordfish-panel.c deleted file mode 100644 index cf5f3f62..00000000 --- a/arch/arm/mach-msm/board-swordfish-panel.c +++ /dev/null @@ -1,116 +0,0 @@ -/* linux/arch/arm/mach-msm/board-swordfish-panel.c - * - * Copyright (c) 2009 Google Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Author: Dima Zavin - */ - -#include -#include -#include -#include - -#include -#include - -#include - -#include "board-swordfish.h" -#include "devices.h" - -#define CLK_NS_TO_RATE(ns) (1000000000UL / (ns)) - -int swordfish_panel_blank(struct msm_lcdc_panel_ops *ops) -{ - /* TODO: Turn backlight off? */ - return 0; -} - -int swordfish_panel_unblank(struct msm_lcdc_panel_ops *ops) -{ - /* TODO: Turn backlight on? */ - return 0; -} - -int swordfish_panel_init(struct msm_lcdc_panel_ops *ops) -{ - return 0; -} - -static struct resource resources_msm_fb[] = { - { - .start = MSM_FB_BASE, - .end = MSM_FB_BASE + MSM_FB_SIZE, - .flags = IORESOURCE_MEM, - }, -}; - -static struct msm_lcdc_timing swordfish_lcdc_timing = { - .clk_rate = CLK_NS_TO_RATE(26), - .hsync_pulse_width = 60, - .hsync_back_porch = 81, - .hsync_front_porch = 81, - .hsync_skew = 0, - .vsync_pulse_width = 2, - .vsync_back_porch = 20, - .vsync_front_porch = 27, - .vsync_act_low = 0, - .hsync_act_low = 0, - .den_act_low = 0, -}; - -static struct msm_fb_data swordfish_lcdc_fb_data = { - .xres = 800, - .yres = 480, - .width = 94, - .height = 57, - .output_format = 0, -}; - -static struct msm_lcdc_panel_ops swordfish_lcdc_panel_ops = { - .init = swordfish_panel_init, - .blank = swordfish_panel_blank, - .unblank = swordfish_panel_unblank, -}; - -static struct msm_lcdc_platform_data swordfish_lcdc_platform_data = { - .panel_ops = &swordfish_lcdc_panel_ops, - .timing = &swordfish_lcdc_timing, - .fb_id = 0, - .fb_data = &swordfish_lcdc_fb_data, - .fb_resource = &resources_msm_fb[0], -}; - -static struct platform_device swordfish_lcdc_device = { - .name = "msm_mdp_lcdc", - .id = -1, - .dev = { - .platform_data = &swordfish_lcdc_platform_data, - }, -}; - -int __init swordfish_init_panel(void) -{ - int rc; - if (!machine_is_swordfish()) - return 0; - - if ((rc = platform_device_register(&msm_device_mdp)) != 0) - return rc; - - if ((rc = platform_device_register(&swordfish_lcdc_device)) != 0) - return rc; - - return 0; -} - -device_initcall(swordfish_init_panel); diff --git a/arch/arm/mach-msm/board-swordfish.c b/arch/arm/mach-msm/board-swordfish.c deleted file mode 100644 index 4e1ee6f3..00000000 --- a/arch/arm/mach-msm/board-swordfish.c +++ /dev/null @@ -1,365 +0,0 @@ -/* linux/arch/arm/mach-msm/board-swordfish.c - * - * Copyright (C) 2009 Google, Inc. - * Author: Brian Swetland - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "board-swordfish.h" -#include "devices.h" -#include "proc_comm.h" - -extern int swordfish_init_mmc(void); - -static struct resource smc91x_resources[] = { - [0] = { - .start = 0x70000300, - .end = 0x70000400, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = MSM_GPIO_TO_INT(156), - .end = MSM_GPIO_TO_INT(156), - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device smc91x_device = { - .name = "smc91x", - .id = 0, - .num_resources = ARRAY_SIZE(smc91x_resources), - .resource = smc91x_resources, -}; - -static int swordfish_phy_init_seq[] = { - 0x0C, 0x31, - 0x1D, 0x0D, - 0x1D, 0x10, - -1 -}; - -static void swordfish_usb_phy_reset(void) -{ - u32 id; - int ret; - - id = PCOM_CLKRGM_APPS_RESET_USB_PHY; - ret = msm_proc_comm(PCOM_CLK_REGIME_SEC_RESET_ASSERT, &id, NULL); - if (ret) { - pr_err("%s: Cannot assert (%d)\n", __func__, ret); - return; - } - - msleep(1); - - id = PCOM_CLKRGM_APPS_RESET_USB_PHY; - ret = msm_proc_comm(PCOM_CLK_REGIME_SEC_RESET_DEASSERT, &id, NULL); - if (ret) { - pr_err("%s: Cannot assert (%d)\n", __func__, ret); - return; - } -} - -static void swordfish_usb_hw_reset(bool enable) -{ - u32 id; - int ret; - u32 func; - - id = PCOM_CLKRGM_APPS_RESET_USBH; - if (enable) - func = PCOM_CLK_REGIME_SEC_RESET_ASSERT; - else - func = PCOM_CLK_REGIME_SEC_RESET_DEASSERT; - ret = msm_proc_comm(func, &id, NULL); - if (ret) - pr_err("%s: Cannot set reset to %d (%d)\n", __func__, enable, - ret); -} - - -static struct msm_hsusb_platform_data msm_hsusb_pdata = { - .phy_init_seq = swordfish_phy_init_seq, - .phy_reset = swordfish_usb_phy_reset, - .hw_reset = swordfish_usb_hw_reset, -}; - -static struct usb_mass_storage_platform_data mass_storage_pdata = { - .nluns = 1, - .vendor = "Qualcomm", - .product = "Swordfish", - .release = 0x0100, -}; - -static struct platform_device usb_mass_storage_device = { - .name = "usb_mass_storage", - .id = -1, - .dev = { - .platform_data = &mass_storage_pdata, - }, -}; - -static struct resource msm_kgsl_resources[] = { - { - .name = "kgsl_reg_memory", - .start = MSM_GPU_REG_PHYS, - .end = MSM_GPU_REG_PHYS + MSM_GPU_REG_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - { - .name = "kgsl_phys_memory", - .start = MSM_GPU_MEM_BASE, - .end = MSM_GPU_MEM_BASE + MSM_GPU_MEM_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_GRAPHICS, - .end = INT_GRAPHICS, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device msm_kgsl_device = { - .name = "kgsl", - .id = -1, - .resource = msm_kgsl_resources, - .num_resources = ARRAY_SIZE(msm_kgsl_resources), -}; - -static struct android_pmem_platform_data mdp_pmem_pdata = { - .name = "pmem", - .start = MSM_PMEM_MDP_BASE, - .size = MSM_PMEM_MDP_SIZE, - .no_allocator = 0, - .cached = 1, -}; - -static struct android_pmem_platform_data android_pmem_gpu0_pdata = { - .name = "pmem_gpu0", - .start = MSM_PMEM_GPU0_BASE, - .size = MSM_PMEM_GPU0_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_gpu1_pdata = { - .name = "pmem_gpu1", - .start = MSM_PMEM_GPU1_BASE, - .size = MSM_PMEM_GPU1_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data android_pmem_adsp_pdata = { - .name = "pmem_adsp", - .start = MSM_PMEM_ADSP_BASE, - .size = MSM_PMEM_ADSP_SIZE, - .no_allocator = 0, - .cached = 0, -}; - -static struct platform_device android_pmem_mdp_device = { - .name = "android_pmem", - .id = 0, - .dev = { - .platform_data = &mdp_pmem_pdata - }, -}; - -static struct platform_device android_pmem_adsp_device = { - .name = "android_pmem", - .id = 1, - .dev = { - .platform_data = &android_pmem_adsp_pdata, - }, -}; - -static struct platform_device android_pmem_gpu0_device = { - .name = "android_pmem", - .id = 2, - .dev = { - .platform_data = &android_pmem_gpu0_pdata, - }, -}; - -static struct platform_device android_pmem_gpu1_device = { - .name = "android_pmem", - .id = 3, - .dev = { - .platform_data = &android_pmem_gpu1_pdata, - }, -}; - -static char *usb_functions[] = { "usb_mass_storage" }; -static char *usb_functions_adb[] = { "usb_mass_storage", "adb" }; - -static struct android_usb_product usb_products[] = { - { - .product_id = 0x0c01, - .num_functions = ARRAY_SIZE(usb_functions), - .functions = usb_functions, - }, - { - .product_id = 0x0c02, - .num_functions = ARRAY_SIZE(usb_functions_adb), - .functions = usb_functions_adb, - }, -}; - -static struct android_usb_platform_data android_usb_pdata = { - .vendor_id = 0x18d1, - .product_id = 0x0d01, - .version = 0x0100, - .serial_number = "42", - .product_name = "Swordfishdroid", - .manufacturer_name = "Qualcomm", - .num_products = ARRAY_SIZE(usb_products), - .products = usb_products, - .num_functions = ARRAY_SIZE(usb_functions_adb), - .functions = usb_functions_adb, -}; - -static struct platform_device android_usb_device = { - .name = "android_usb", - .id = -1, - .dev = { - .platform_data = &android_usb_pdata, - }, -}; - -static struct platform_device fish_battery_device = { - .name = "fish_battery", -}; - -static struct msm_ts_platform_data swordfish_ts_pdata = { - .min_x = 296, - .max_x = 3800, - .min_y = 296, - .max_y = 3800, - .min_press = 0, - .max_press = 256, - .inv_x = 4096, - .inv_y = 4096, -}; - -static struct platform_device *devices[] __initdata = { -#if !defined(CONFIG_MSM_SERIAL_DEBUGGER) - &msm_device_uart3, -#endif - &msm_device_smd, - &msm_device_nand, - &msm_device_hsusb, - &usb_mass_storage_device, - &android_usb_device, - &fish_battery_device, - &smc91x_device, - &msm_device_touchscreen, - &android_pmem_mdp_device, - &android_pmem_adsp_device, - &android_pmem_gpu0_device, - &android_pmem_gpu1_device, - &msm_kgsl_device, -}; - -extern struct sys_timer msm_timer; - -static struct msm_acpu_clock_platform_data swordfish_clock_data = { - .acpu_switch_time_us = 20, - .max_speed_delta_khz = 256000, - .vdd_switch_time_us = 62, - .power_collapse_khz = 128000000, - .wait_for_irq_khz = 128000000, -}; - -void msm_serial_debug_init(unsigned int base, int irq, - struct device *clk_device, int signal_irq); - -static void __init swordfish_init(void) -{ - int rc; - - msm_acpu_clock_init(&swordfish_clock_data); -#if defined(CONFIG_MSM_SERIAL_DEBUGGER) - msm_serial_debug_init(MSM_UART3_PHYS, INT_UART3, - &msm_device_uart3.dev, 1); -#endif - msm_device_hsusb.dev.platform_data = &msm_hsusb_pdata; - msm_device_touchscreen.dev.platform_data = &swordfish_ts_pdata; - platform_add_devices(devices, ARRAY_SIZE(devices)); - msm_hsusb_set_vbus_state(1); - rc = swordfish_init_mmc(); - if (rc) - pr_crit("%s: MMC init failure (%d)\n", __func__, rc); -} - -static void __init swordfish_fixup(struct machine_desc *desc, struct tag *tags, - char **cmdline, struct meminfo *mi) -{ - mi->nr_banks = 1; - mi->bank[0].start = PHYS_OFFSET; - mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET); - mi->bank[0].size = (101*1024*1024); -} - -static void __init swordfish_map_io(void) -{ - msm_map_common_io(); - msm_clock_init(); -} - -MACHINE_START(SWORDFISH, "Swordfish Board (QCT SURF8250)") -#ifdef CONFIG_MSM_DEBUG_UART - .phys_io = MSM_DEBUG_UART_PHYS, - .io_pg_offst = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc, -#endif - .boot_params = 0x20000100, - .fixup = swordfish_fixup, - .map_io = swordfish_map_io, - .init_irq = msm_init_irq, - .init_machine = swordfish_init, - .timer = &msm_timer, -MACHINE_END - -MACHINE_START(QSD8X50_FFA, "qsd8x50 FFA Board (QCT FFA8250)") -#ifdef CONFIG_MSM_DEBUG_UART - .phys_io = MSM_DEBUG_UART_PHYS, - .io_pg_offst = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc, -#endif - .boot_params = 0x20000100, - .fixup = swordfish_fixup, - .map_io = swordfish_map_io, - .init_irq = msm_init_irq, - .init_machine = swordfish_init, - .timer = &msm_timer, -MACHINE_END diff --git a/arch/arm/mach-msm/board-swordfish.h b/arch/arm/mach-msm/board-swordfish.h deleted file mode 100644 index b9ea54f6..00000000 --- a/arch/arm/mach-msm/board-swordfish.h +++ /dev/null @@ -1,48 +0,0 @@ -/* arch/arm/mach-msm/board-swordfish.h - * - * Copyright (C) 2009 Google Inc. - * Author: Dima Zavin - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. -*/ - -#ifndef __ARCH_ARM_MACH_MSM_BOARD_SWORDFISH_H -#define __ARCH_ARM_MACH_MSM_BOARD_SWORDFISH_H - -#include - -#define MSM_SMI_BASE 0x02B00000 -#define MSM_SMI_SIZE 0x01500000 - -#define MSM_PMEM_MDP_BASE 0x03000000 -#define MSM_PMEM_MDP_SIZE 0x01000000 - -#define MSM_EBI1_BASE 0x20000000 -#define MSM_EBI1_SIZE 0x0E000000 - -#define MSM_PMEM_ADSP_BASE 0x2A300000 -#define MSM_PMEM_ADSP_SIZE 0x02000000 - -#define MSM_PMEM_GPU1_BASE 0x2C300000 -#define MSM_PMEM_GPU1_SIZE 0x01400000 - -#define MSM_PMEM_GPU0_BASE 0x2D700000 -#define MSM_PMEM_GPU0_SIZE 0x00400000 - -#define MSM_GPU_MEM_BASE 0x2DB00000 -#define MSM_GPU_MEM_SIZE 0x00200000 - -#define MSM_RAM_CONSOLE_BASE 0x2DD00000 -#define MSM_RAM_CONSOLE_SIZE 0x00040000 - -#define MSM_FB_BASE 0x2DE00000 -#define MSM_FB_SIZE 0x00200000 - -#endif /* __ARCH_ARM_MACH_MSM_BOARD_SWORDFISH_H */ diff --git a/arch/arm/mach-msm/board-trout-gpio.c b/arch/arm/mach-msm/board-trout-gpio.c deleted file mode 100644 index 527379ec..00000000 --- a/arch/arm/mach-msm/board-trout-gpio.c +++ /dev/null @@ -1,305 +0,0 @@ -/* arch/arm/mach-msm/board-trout-gpio.c - * - * Copyright (C) 2008 Google, Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include "board-trout.h" -#include "gpio_chip.h" - -#undef MODULE_PARAM_PREFIX -#define MODULE_PARAM_PREFIX "board_trout." - -static uint cpld_usb_h2w_sw; -module_param_named(usb_h2w_sw, cpld_usb_h2w_sw, uint, 0); - -static uint8_t trout_cpld_shadow[4] = { -#if defined(CONFIG_MSM_DEBUG_UART1) - /* H2W pins <-> UART1 */ - [0] = 0x40, // for serial debug, low current -#else - /* H2W pins <-> UART3, Bluetooth <-> UART1 */ - [0] = 0x80, // for serial debug, low current -#endif - [1] = 0x04, // I2C_PULL - [3] = 0x04, // mmdi 32k en -}; -static uint8_t trout_int_mask[2] = { - [0] = 0xff, /* mask all interrupts */ - [1] = 0xff, -}; -static uint8_t trout_sleep_int_mask[] = { - [0] = 0xff, - [1] = 0xff, -}; -static int trout_suspended; - -static int trout_gpio_read(struct gpio_chip *chip, unsigned n) -{ - uint8_t b; - int reg; - if (n >= TROUT_GPIO_VIRTUAL_BASE) - n += TROUT_GPIO_VIRTUAL_TO_REAL_OFFSET; - b = 1U << (n & 7); - reg = (n & 0x78) >> 2; // assumes base is 128 - return !!(readb(TROUT_CPLD_BASE + reg) & b); -} - -static void update_pwrsink(unsigned gpio, unsigned on) -{ - switch(gpio) { - case TROUT_GPIO_UI_LED_EN: - htc_pwrsink_set(PWRSINK_LED_BUTTON, on ? 100 : 0); - break; - case TROUT_GPIO_QTKEY_LED_EN: - htc_pwrsink_set(PWRSINK_LED_KEYBOARD, on ? 100 : 0); - break; - } -} - -static uint8_t trout_gpio_write_shadow(unsigned n, unsigned on) -{ - uint8_t b = 1U << (n & 7); - int reg = (n & 0x78) >> 2; // assumes base is 128 - - if(on) - return trout_cpld_shadow[reg >> 1] |= b; - else - return trout_cpld_shadow[reg >> 1] &= ~b; -} - -static int trout_gpio_write(struct gpio_chip *chip, unsigned n, unsigned on) -{ - int reg = (n & 0x78) >> 2; // assumes base is 128 - unsigned long flags; - uint8_t reg_val; - - if ((reg >> 1) >= ARRAY_SIZE(trout_cpld_shadow)) { - printk(KERN_ERR "trout_gpio_write called on input %d\n", n); - return -ENOTSUPP; - } - - local_irq_save(flags); - update_pwrsink(n, on); - reg_val = trout_gpio_write_shadow(n, on); - writeb(reg_val, TROUT_CPLD_BASE + reg); - local_irq_restore(flags); - return 0; -} - -static int trout_gpio_configure(struct gpio_chip *chip, unsigned int gpio, unsigned long flags) -{ - if(flags & (GPIOF_OUTPUT_LOW | GPIOF_OUTPUT_HIGH)) - trout_gpio_write(chip, gpio, flags & GPIOF_OUTPUT_HIGH); - return 0; -} - -static int trout_gpio_get_irq_num(struct gpio_chip *chip, unsigned int gpio, unsigned int *irqp, unsigned long *irqnumflagsp) -{ - if ((gpio < TROUT_GPIO_BANK0_FIRST_INT_SOURCE || - gpio > TROUT_GPIO_BANK0_LAST_INT_SOURCE) && - (gpio < TROUT_GPIO_BANK1_FIRST_INT_SOURCE || - gpio > TROUT_GPIO_BANK1_LAST_INT_SOURCE)) - return -ENOENT; - *irqp = TROUT_GPIO_TO_INT(gpio); - if(irqnumflagsp) - *irqnumflagsp = 0; - return 0; -} - -static void trout_gpio_irq_ack(unsigned int irq) -{ - int bank = TROUT_INT_TO_BANK(irq); - uint8_t mask = TROUT_INT_TO_MASK(irq); - int reg = TROUT_BANK_TO_STAT_REG(bank); - /*printk(KERN_INFO "trout_gpio_irq_ack irq %d\n", irq);*/ - writeb(mask, TROUT_CPLD_BASE + reg); -} - -static void trout_gpio_irq_mask(unsigned int irq) -{ - unsigned long flags; - uint8_t reg_val; - int bank = TROUT_INT_TO_BANK(irq); - uint8_t mask = TROUT_INT_TO_MASK(irq); - int reg = TROUT_BANK_TO_MASK_REG(bank); - - local_irq_save(flags); - reg_val = trout_int_mask[bank] |= mask; - /*printk(KERN_INFO "trout_gpio_irq_mask irq %d => %d:%02x\n", - irq, bank, reg_val);*/ - if (!trout_suspended) - writeb(reg_val, TROUT_CPLD_BASE + reg); - local_irq_restore(flags); -} - -static void trout_gpio_irq_unmask(unsigned int irq) -{ - unsigned long flags; - uint8_t reg_val; - int bank = TROUT_INT_TO_BANK(irq); - uint8_t mask = TROUT_INT_TO_MASK(irq); - int reg = TROUT_BANK_TO_MASK_REG(bank); - - local_irq_save(flags); - reg_val = trout_int_mask[bank] &= ~mask; - /*printk(KERN_INFO "trout_gpio_irq_unmask irq %d => %d:%02x\n", - irq, bank, reg_val);*/ - if (!trout_suspended) - writeb(reg_val, TROUT_CPLD_BASE + reg); - local_irq_restore(flags); -} - -int trout_gpio_irq_set_wake(unsigned int irq, unsigned int on) -{ - unsigned long flags; - int bank = TROUT_INT_TO_BANK(irq); - uint8_t mask = TROUT_INT_TO_MASK(irq); - - local_irq_save(flags); - if(on) - trout_sleep_int_mask[bank] &= ~mask; - else - trout_sleep_int_mask[bank] |= mask; - local_irq_restore(flags); - return 0; -} - -static void trout_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) -{ - int j, m; - unsigned v; - int bank; - int stat_reg; - int int_base = TROUT_INT_START; - uint8_t int_mask; - - for (bank = 0; bank < 2; bank++) { - stat_reg = TROUT_BANK_TO_STAT_REG(bank); - v = readb(TROUT_CPLD_BASE + stat_reg); - int_mask = trout_int_mask[bank]; - if (v & int_mask) { - writeb(v & int_mask, TROUT_CPLD_BASE + stat_reg); - printk(KERN_ERR "trout_gpio_irq_handler: got masked " - "interrupt: %d:%02x\n", bank, v & int_mask); - } - v &= ~int_mask; - while (v) { - m = v & -v; - j = fls(m) - 1; - /*printk(KERN_INFO "msm_gpio_irq_handler %d:%02x %02x b" - "it %d irq %d\n", bank, v, m, j, int_base + j);*/ - v &= ~m; - generic_handle_irq(int_base + j); - } - int_base += TROUT_INT_BANK0_COUNT; - } - desc->chip->ack(irq); -} - -static int trout_sysdev_suspend(struct sys_device *dev, pm_message_t state) -{ - trout_suspended = 1; - writeb(trout_sleep_int_mask[0], - TROUT_CPLD_BASE + TROUT_GPIO_INT_MASK0_REG); - writeb(trout_sleep_int_mask[1], - TROUT_CPLD_BASE + TROUT_GPIO_INT_MASK1_REG); - writeb(trout_sleep_int_mask[0], - TROUT_CPLD_BASE + TROUT_GPIO_INT_STAT0_REG); - writeb(trout_sleep_int_mask[1], - TROUT_CPLD_BASE + TROUT_GPIO_INT_STAT1_REG); - return 0; -} - -int trout_sysdev_resume(struct sys_device *dev) -{ - writeb(trout_int_mask[0], TROUT_CPLD_BASE + TROUT_GPIO_INT_MASK0_REG); - writeb(trout_int_mask[1], TROUT_CPLD_BASE + TROUT_GPIO_INT_MASK1_REG); - trout_suspended = 0; - return 0; -} - -static struct irq_chip trout_gpio_irq_chip = { - .name = "troutgpio", - .ack = trout_gpio_irq_ack, - .mask = trout_gpio_irq_mask, - .unmask = trout_gpio_irq_unmask, - .set_wake = trout_gpio_irq_set_wake, - //.set_type = trout_gpio_irq_set_type, -}; - -static struct gpio_chip trout_gpio_chip = { - .start = TROUT_GPIO_START, - .end = TROUT_GPIO_END, - .configure = trout_gpio_configure, - .get_irq_num = trout_gpio_get_irq_num, - .read = trout_gpio_read, - .write = trout_gpio_write, -// .read_detect_status = trout_gpio_read_detect_status, -// .clear_detect_status = trout_gpio_clear_detect_status -}; - -struct sysdev_class trout_sysdev_class = { - .name = "troutgpio_irq", - .suspend = trout_sysdev_suspend, - .resume = trout_sysdev_resume, -}; - -static struct sys_device trout_irq_device = { - .cls = &trout_sysdev_class, -}; - -static int __init trout_init_gpio(void) -{ - int i; - - if (!machine_is_trout()) - return 0; - - /* adjust GPIOs based on bootloader request */ - pr_info("trout_init_gpio: cpld_usb_hw2_sw = %d\n", cpld_usb_h2w_sw); - trout_gpio_write_shadow(TROUT_GPIO_USB_H2W_SW, cpld_usb_h2w_sw); - - for(i = 0; i < ARRAY_SIZE(trout_cpld_shadow); i++) - writeb(trout_cpld_shadow[i], TROUT_CPLD_BASE + i * 2); - - for(i = TROUT_INT_START; i <= TROUT_INT_END; i++) { - set_irq_chip(i, &trout_gpio_irq_chip); - set_irq_handler(i, handle_edge_irq); - set_irq_flags(i, IRQF_VALID); - } - - register_gpio_chip(&trout_gpio_chip); - - set_irq_type(MSM_GPIO_TO_INT(17), IRQF_TRIGGER_HIGH); - set_irq_chained_handler(MSM_GPIO_TO_INT(17), trout_gpio_irq_handler); - set_irq_wake(MSM_GPIO_TO_INT(17), 1); - - if(sysdev_class_register(&trout_sysdev_class) == 0) - sysdev_register(&trout_irq_device); - - return 0; -} - -postcore_initcall(trout_init_gpio); diff --git a/arch/arm/mach-msm/board-trout-keypad.c b/arch/arm/mach-msm/board-trout-keypad.c deleted file mode 100644 index 0299d068..00000000 --- a/arch/arm/mach-msm/board-trout-keypad.c +++ /dev/null @@ -1,345 +0,0 @@ -/* arch/arm/mach-msm/board-trout-keypad.c - * - * Copyright (C) 2008 Google, Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include - -#include "board-trout.h" - -static char *keycaps = "--qwerty"; -#undef MODULE_PARAM_PREFIX -#define MODULE_PARAM_PREFIX "board_trout." -module_param_named(keycaps, keycaps, charp, 0); - - -static unsigned int trout_col_gpios[] = { 35, 34, 33, 32, 31, 23, 30, 78 }; -static unsigned int trout_row_gpios[] = { 42, 41, 40, 39, 38, 37, 36 }; - -#define KEYMAP_INDEX(col, row) ((col)*ARRAY_SIZE(trout_row_gpios) + (row)) - -static const unsigned short trout_keymap[ARRAY_SIZE(trout_col_gpios) * ARRAY_SIZE(trout_row_gpios)] = { - [KEYMAP_INDEX(0, 0)] = KEY_BACK, - [KEYMAP_INDEX(0, 1)] = KEY_HOME, -// [KEYMAP_INDEX(0, 2)] = KEY_, - [KEYMAP_INDEX(0, 3)] = KEY_BACKSPACE, - [KEYMAP_INDEX(0, 4)] = KEY_ENTER, - [KEYMAP_INDEX(0, 5)] = KEY_RIGHTALT, - [KEYMAP_INDEX(0, 6)] = KEY_P, - - [KEYMAP_INDEX(1, 0)] = KEY_MENU, -// [KEYMAP_INDEX(1, 0)] = 229, // SOFT1 - [KEYMAP_INDEX(1, 1)] = KEY_SEND, - [KEYMAP_INDEX(1, 2)] = KEY_END, - [KEYMAP_INDEX(1, 3)] = KEY_LEFTALT, - [KEYMAP_INDEX(1, 4)] = KEY_A, - [KEYMAP_INDEX(1, 5)] = KEY_LEFTSHIFT, - [KEYMAP_INDEX(1, 6)] = KEY_Q, - - [KEYMAP_INDEX(2, 0)] = KEY_U, - [KEYMAP_INDEX(2, 1)] = KEY_7, - [KEYMAP_INDEX(2, 2)] = KEY_K, - [KEYMAP_INDEX(2, 3)] = KEY_J, - [KEYMAP_INDEX(2, 4)] = KEY_M, - [KEYMAP_INDEX(2, 5)] = KEY_SLASH, - [KEYMAP_INDEX(2, 6)] = KEY_8, - - [KEYMAP_INDEX(3, 0)] = KEY_5, - [KEYMAP_INDEX(3, 1)] = KEY_6, - [KEYMAP_INDEX(3, 2)] = KEY_B, - [KEYMAP_INDEX(3, 3)] = KEY_H, - [KEYMAP_INDEX(3, 4)] = KEY_N, - [KEYMAP_INDEX(3, 5)] = KEY_SPACE, - [KEYMAP_INDEX(3, 6)] = KEY_Y, - - [KEYMAP_INDEX(4, 0)] = KEY_4, - [KEYMAP_INDEX(4, 1)] = KEY_R, - [KEYMAP_INDEX(4, 2)] = KEY_V, - [KEYMAP_INDEX(4, 3)] = KEY_G, - [KEYMAP_INDEX(4, 4)] = KEY_C, - //[KEYMAP_INDEX(4, 5)] = KEY_, - [KEYMAP_INDEX(4, 6)] = KEY_T, - - [KEYMAP_INDEX(5, 0)] = KEY_2, - [KEYMAP_INDEX(5, 1)] = KEY_W, - [KEYMAP_INDEX(5, 2)] = KEY_COMPOSE, - [KEYMAP_INDEX(5, 3)] = KEY_VOLUMEUP, - [KEYMAP_INDEX(5, 4)] = KEY_S, - [KEYMAP_INDEX(5, 5)] = KEY_Z, - [KEYMAP_INDEX(5, 6)] = KEY_1, - - [KEYMAP_INDEX(6, 0)] = KEY_I, - [KEYMAP_INDEX(6, 1)] = KEY_0, - [KEYMAP_INDEX(6, 2)] = KEY_O, - [KEYMAP_INDEX(6, 3)] = KEY_L, - [KEYMAP_INDEX(6, 4)] = KEY_DOT, - [KEYMAP_INDEX(6, 5)] = KEY_COMMA, - [KEYMAP_INDEX(6, 6)] = KEY_9, - - [KEYMAP_INDEX(7, 0)] = KEY_3, - [KEYMAP_INDEX(7, 1)] = KEY_E, - [KEYMAP_INDEX(7, 2)] = KEY_EMAIL, // @ - [KEYMAP_INDEX(7, 3)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(7, 4)] = KEY_X, - [KEYMAP_INDEX(7, 5)] = KEY_F, - [KEYMAP_INDEX(7, 6)] = KEY_D -}; - -static unsigned int trout_col_gpios_evt2[] = { 35, 34, 33, 32, 31, 23, 30, 109 }; -static unsigned int trout_row_gpios_evt2[] = { 42, 41, 40, 39, 38, 37, 36 }; - -static const unsigned short trout_keymap_evt2_1[ARRAY_SIZE(trout_col_gpios) * ARRAY_SIZE(trout_row_gpios)] = { - [KEYMAP_INDEX(0, 0)] = KEY_BACK, - [KEYMAP_INDEX(0, 1)] = KEY_HOME, -// [KEYMAP_INDEX(0, 2)] = KEY_, - [KEYMAP_INDEX(0, 3)] = KEY_BACKSPACE, - [KEYMAP_INDEX(0, 4)] = KEY_ENTER, - [KEYMAP_INDEX(0, 5)] = KEY_RIGHTSHIFT, - [KEYMAP_INDEX(0, 6)] = KEY_P, - - [KEYMAP_INDEX(1, 0)] = KEY_MENU, - [KEYMAP_INDEX(1, 1)] = KEY_SEND, -// [KEYMAP_INDEX(1, 2)] = KEY_, - [KEYMAP_INDEX(1, 3)] = KEY_LEFTSHIFT, - [KEYMAP_INDEX(1, 4)] = KEY_A, - [KEYMAP_INDEX(1, 5)] = KEY_COMPOSE, - [KEYMAP_INDEX(1, 6)] = KEY_Q, - - [KEYMAP_INDEX(2, 0)] = KEY_U, - [KEYMAP_INDEX(2, 1)] = KEY_7, - [KEYMAP_INDEX(2, 2)] = KEY_K, - [KEYMAP_INDEX(2, 3)] = KEY_J, - [KEYMAP_INDEX(2, 4)] = KEY_M, - [KEYMAP_INDEX(2, 5)] = KEY_SLASH, - [KEYMAP_INDEX(2, 6)] = KEY_8, - - [KEYMAP_INDEX(3, 0)] = KEY_5, - [KEYMAP_INDEX(3, 1)] = KEY_6, - [KEYMAP_INDEX(3, 2)] = KEY_B, - [KEYMAP_INDEX(3, 3)] = KEY_H, - [KEYMAP_INDEX(3, 4)] = KEY_N, - [KEYMAP_INDEX(3, 5)] = KEY_SPACE, - [KEYMAP_INDEX(3, 6)] = KEY_Y, - - [KEYMAP_INDEX(4, 0)] = KEY_4, - [KEYMAP_INDEX(4, 1)] = KEY_R, - [KEYMAP_INDEX(4, 2)] = KEY_V, - [KEYMAP_INDEX(4, 3)] = KEY_G, - [KEYMAP_INDEX(4, 4)] = KEY_C, -// [KEYMAP_INDEX(4, 5)] = KEY_, - [KEYMAP_INDEX(4, 6)] = KEY_T, - - [KEYMAP_INDEX(5, 0)] = KEY_2, - [KEYMAP_INDEX(5, 1)] = KEY_W, - [KEYMAP_INDEX(5, 2)] = KEY_LEFTALT, - [KEYMAP_INDEX(5, 3)] = KEY_VOLUMEUP, - [KEYMAP_INDEX(5, 4)] = KEY_S, - [KEYMAP_INDEX(5, 5)] = KEY_Z, - [KEYMAP_INDEX(5, 6)] = KEY_1, - - [KEYMAP_INDEX(6, 0)] = KEY_I, - [KEYMAP_INDEX(6, 1)] = KEY_0, - [KEYMAP_INDEX(6, 2)] = KEY_O, - [KEYMAP_INDEX(6, 3)] = KEY_L, - [KEYMAP_INDEX(6, 4)] = KEY_COMMA, - [KEYMAP_INDEX(6, 5)] = KEY_DOT, - [KEYMAP_INDEX(6, 6)] = KEY_9, - - [KEYMAP_INDEX(7, 0)] = KEY_3, - [KEYMAP_INDEX(7, 1)] = KEY_E, - [KEYMAP_INDEX(7, 2)] = KEY_EMAIL, // @ - [KEYMAP_INDEX(7, 3)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(7, 4)] = KEY_X, - [KEYMAP_INDEX(7, 5)] = KEY_F, - [KEYMAP_INDEX(7, 6)] = KEY_D -}; - -static const unsigned short trout_keymap_evt2_2[ARRAY_SIZE(trout_col_gpios) * ARRAY_SIZE(trout_row_gpios)] = { - [KEYMAP_INDEX(0, 0)] = KEY_BACK, - [KEYMAP_INDEX(0, 1)] = KEY_HOME, -// [KEYMAP_INDEX(0, 2)] = KEY_, - [KEYMAP_INDEX(0, 3)] = KEY_BACKSPACE, - [KEYMAP_INDEX(0, 4)] = KEY_ENTER, - [KEYMAP_INDEX(0, 5)] = KEY_RIGHTSHIFT, - [KEYMAP_INDEX(0, 6)] = KEY_P, - - [KEYMAP_INDEX(1, 0)] = KEY_MENU, /* external menu key */ - [KEYMAP_INDEX(1, 1)] = KEY_SEND, -// [KEYMAP_INDEX(1, 2)] = KEY_, - [KEYMAP_INDEX(1, 3)] = KEY_LEFTSHIFT, - [KEYMAP_INDEX(1, 4)] = KEY_A, - [KEYMAP_INDEX(1, 5)] = KEY_F1, /* qwerty menu key */ - [KEYMAP_INDEX(1, 6)] = KEY_Q, - - [KEYMAP_INDEX(2, 0)] = KEY_U, - [KEYMAP_INDEX(2, 1)] = KEY_7, - [KEYMAP_INDEX(2, 2)] = KEY_K, - [KEYMAP_INDEX(2, 3)] = KEY_J, - [KEYMAP_INDEX(2, 4)] = KEY_M, - [KEYMAP_INDEX(2, 5)] = KEY_DOT, - [KEYMAP_INDEX(2, 6)] = KEY_8, - - [KEYMAP_INDEX(3, 0)] = KEY_5, - [KEYMAP_INDEX(3, 1)] = KEY_6, - [KEYMAP_INDEX(3, 2)] = KEY_B, - [KEYMAP_INDEX(3, 3)] = KEY_H, - [KEYMAP_INDEX(3, 4)] = KEY_N, - [KEYMAP_INDEX(3, 5)] = KEY_SPACE, - [KEYMAP_INDEX(3, 6)] = KEY_Y, - - [KEYMAP_INDEX(4, 0)] = KEY_4, - [KEYMAP_INDEX(4, 1)] = KEY_R, - [KEYMAP_INDEX(4, 2)] = KEY_V, - [KEYMAP_INDEX(4, 3)] = KEY_G, - [KEYMAP_INDEX(4, 4)] = KEY_C, - [KEYMAP_INDEX(4, 5)] = KEY_EMAIL, // @ - [KEYMAP_INDEX(4, 6)] = KEY_T, - - [KEYMAP_INDEX(5, 0)] = KEY_2, - [KEYMAP_INDEX(5, 1)] = KEY_W, - [KEYMAP_INDEX(5, 2)] = KEY_LEFTALT, - [KEYMAP_INDEX(5, 3)] = KEY_VOLUMEUP, - [KEYMAP_INDEX(5, 4)] = KEY_S, - [KEYMAP_INDEX(5, 5)] = KEY_Z, - [KEYMAP_INDEX(5, 6)] = KEY_1, - - [KEYMAP_INDEX(6, 0)] = KEY_I, - [KEYMAP_INDEX(6, 1)] = KEY_0, - [KEYMAP_INDEX(6, 2)] = KEY_O, - [KEYMAP_INDEX(6, 3)] = KEY_L, - [KEYMAP_INDEX(6, 4)] = KEY_COMMA, - [KEYMAP_INDEX(6, 5)] = KEY_RIGHTALT, - [KEYMAP_INDEX(6, 6)] = KEY_9, - - [KEYMAP_INDEX(7, 0)] = KEY_3, - [KEYMAP_INDEX(7, 1)] = KEY_E, - [KEYMAP_INDEX(7, 2)] = KEY_COMPOSE, - [KEYMAP_INDEX(7, 3)] = KEY_VOLUMEDOWN, - [KEYMAP_INDEX(7, 4)] = KEY_X, - [KEYMAP_INDEX(7, 5)] = KEY_F, - [KEYMAP_INDEX(7, 6)] = KEY_D -}; - -static struct gpio_event_matrix_info trout_keypad_matrix_info = { - .info.func = gpio_event_matrix_func, - .keymap = trout_keymap, - .output_gpios = trout_col_gpios, - .input_gpios = trout_row_gpios, - .noutputs = ARRAY_SIZE(trout_col_gpios), - .ninputs = ARRAY_SIZE(trout_row_gpios), - .settle_time.tv.nsec = 40 * NSEC_PER_USEC, - .poll_time.tv.nsec = 20 * NSEC_PER_MSEC, - .flags = GPIOKPF_LEVEL_TRIGGERED_IRQ | GPIOKPF_REMOVE_PHANTOM_KEYS |GPIOKPF_PRINT_UNMAPPED_KEYS /*| GPIOKPF_PRINT_MAPPED_KEYS*/ -}; - -static struct gpio_event_direct_entry trout_keypad_nav_map[] = { - { TROUT_POWER_KEY, KEY_POWER }, - { TROUT_GPIO_CAM_BTN_STEP1_N, KEY_CAMERA-1 }, //steal KEY_HP - { TROUT_GPIO_CAM_BTN_STEP2_N, KEY_CAMERA }, -}; - -static struct gpio_event_direct_entry trout_keypad_nav_map_evt2[] = { - { TROUT_POWER_KEY, KEY_END }, - { TROUT_GPIO_CAM_BTN_STEP1_N, KEY_CAMERA-1 }, //steal KEY_HP - { TROUT_GPIO_CAM_BTN_STEP2_N, KEY_CAMERA }, -}; - -static struct gpio_event_input_info trout_keypad_nav_info = { - .info.func = gpio_event_input_func, - .flags = 0, - .type = EV_KEY, - .keymap = trout_keypad_nav_map, - .keymap_size = ARRAY_SIZE(trout_keypad_nav_map) -}; - -static struct gpio_event_direct_entry trout_keypad_switch_map[] = { - { TROUT_GPIO_SLIDING_DET, SW_LID } -}; - -static struct gpio_event_input_info trout_keypad_switch_info = { - .info.func = gpio_event_input_func, - .flags = 0, - .type = EV_SW, - .keymap = trout_keypad_switch_map, - .keymap_size = ARRAY_SIZE(trout_keypad_switch_map) -}; - -static struct gpio_event_info *trout_keypad_info[] = { - &trout_keypad_matrix_info.info, - &trout_keypad_nav_info.info, - &trout_keypad_switch_info.info, -}; - -static struct gpio_event_platform_data trout_keypad_data = { - .name = "trout-keypad", - .info = trout_keypad_info, - .info_count = ARRAY_SIZE(trout_keypad_info) -}; - -static struct platform_device trout_keypad_device = { - .name = GPIO_EVENT_DEV_NAME, - .id = 0, - .dev = { - .platform_data = &trout_keypad_data, - }, -}; - -static int __init trout_init_keypad(void) -{ - if (!machine_is_trout()) - return 0; - - switch (system_rev) { - case 0: - /* legacy default keylayout */ - break; - case 1: - /* v1 has a new keyboard layout */ - trout_keypad_matrix_info.keymap = trout_keymap_evt2_1; - trout_keypad_matrix_info.output_gpios = trout_col_gpios_evt2; - trout_keypad_matrix_info.input_gpios = trout_row_gpios_evt2; - - /* v1 has new direct keys */ - trout_keypad_nav_info.keymap = trout_keypad_nav_map_evt2; - trout_keypad_nav_info.keymap_size = ARRAY_SIZE(trout_keypad_nav_map_evt2); - - /* userspace needs to know about these changes as well */ - trout_keypad_data.name = "trout-keypad-v2"; - break; - default: /* 2, 3, 4 currently */ - /* v2 has a new keyboard layout */ - trout_keypad_matrix_info.keymap = trout_keymap_evt2_2; - trout_keypad_matrix_info.output_gpios = trout_col_gpios_evt2; - trout_keypad_matrix_info.input_gpios = trout_row_gpios_evt2; - - /* v2 has new direct keys */ - trout_keypad_nav_info.keymap = trout_keypad_nav_map_evt2; - trout_keypad_nav_info.keymap_size = ARRAY_SIZE(trout_keypad_nav_map_evt2); - - /* userspace needs to know about these changes as well */ - if (!strcmp(keycaps, "qwertz")) { - trout_keypad_data.name = "trout-keypad-qwertz"; - } else { - trout_keypad_data.name = "trout-keypad-v3"; - } - break; - } - return platform_device_register(&trout_keypad_device); -} - -device_initcall(trout_init_keypad); - diff --git a/arch/arm/mach-msm/board-trout-mmc.c b/arch/arm/mach-msm/board-trout-mmc.c deleted file mode 100644 index 13755f5c..00000000 --- a/arch/arm/mach-msm/board-trout-mmc.c +++ /dev/null @@ -1,438 +0,0 @@ -/* linux/arch/arm/mach-msm/board-trout-mmc.c -** Author: Brian Swetland -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include - -#include "devices.h" - -#include "board-trout.h" - -#include "proc_comm.h" - -#define DEBUG_SDSLOT_VDD 1 - -extern int msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, - unsigned int stat_irq, unsigned long stat_irq_flags); - -/* ---- COMMON ---- */ -static void config_gpio_table(uint32_t *table, int len) -{ - int n; - unsigned id; - for(n = 0; n < len; n++) { - id = table[n]; - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); - } -} - -/* ---- SDCARD ---- */ - -static uint32_t sdcard_on_gpio_table[] = { - PCOM_GPIO_CFG(62, 2, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ - PCOM_GPIO_CFG(63, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* CMD */ - PCOM_GPIO_CFG(64, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT3 */ - PCOM_GPIO_CFG(65, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT2 */ - PCOM_GPIO_CFG(66, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(67, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT0 */ -}; - -static uint32_t sdcard_off_gpio_table[] = { - PCOM_GPIO_CFG(62, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ - PCOM_GPIO_CFG(63, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CMD */ - PCOM_GPIO_CFG(64, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(65, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(66, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(67, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ -}; - -static uint opt_disable_sdcard; - -static int __init trout_disablesdcard_setup(char *str) -{ - int cal = simple_strtol(str, NULL, 0); - - opt_disable_sdcard = cal; - return 1; -} - -__setup("board_trout.disable_sdcard=", trout_disablesdcard_setup); - -static struct vreg *vreg_sdslot; /* SD slot power */ - -struct mmc_vdd_xlat { - int mask; - int level; -}; - -static struct mmc_vdd_xlat mmc_vdd_table[] = { - { MMC_VDD_165_195, 1800 }, - { MMC_VDD_20_21, 2050 }, - { MMC_VDD_21_22, 2150 }, - { MMC_VDD_22_23, 2250 }, - { MMC_VDD_23_24, 2350 }, - { MMC_VDD_24_25, 2450 }, - { MMC_VDD_25_26, 2550 }, - { MMC_VDD_26_27, 2650 }, - { MMC_VDD_27_28, 2750 }, - { MMC_VDD_28_29, 2850 }, - { MMC_VDD_29_30, 2950 }, -}; - -static unsigned int sdslot_vdd = 0xffffffff; -static unsigned int sdslot_vreg_enabled; - -static uint32_t trout_sdslot_switchvdd(struct device *dev, unsigned int vdd) -{ - int i, rc; - - BUG_ON(!vreg_sdslot); - - if (vdd == sdslot_vdd) - return 0; - - sdslot_vdd = vdd; - - if (vdd == 0) { -#if DEBUG_SDSLOT_VDD - printk("%s: Disabling SD slot power\n", __func__); -#endif - config_gpio_table(sdcard_off_gpio_table, - ARRAY_SIZE(sdcard_off_gpio_table)); - vreg_disable(vreg_sdslot); - sdslot_vreg_enabled = 0; - return 0; - } - - if (!sdslot_vreg_enabled) { - rc = vreg_enable(vreg_sdslot); - if (rc) { - printk(KERN_ERR "%s: Error enabling vreg (%d)\n", - __func__, rc); - } - config_gpio_table(sdcard_on_gpio_table, - ARRAY_SIZE(sdcard_on_gpio_table)); - sdslot_vreg_enabled = 1; - } - - for (i = 0; i < ARRAY_SIZE(mmc_vdd_table); i++) { - if (mmc_vdd_table[i].mask == (1 << vdd)) { -#if DEBUG_SDSLOT_VDD - printk("%s: Setting level to %u\n", - __func__, mmc_vdd_table[i].level); -#endif - rc = vreg_set_level(vreg_sdslot, - mmc_vdd_table[i].level); - if (rc) { - printk(KERN_ERR - "%s: Error setting vreg level (%d)\n", - __func__, rc); - } - return 0; - } - } - - printk(KERN_ERR "%s: Invalid VDD %d specified\n", __func__, vdd); - return 0; -} - -static unsigned int trout_sdslot_status(struct device *dev) -{ - unsigned int status; - - status = (unsigned int) gpio_get_value(TROUT_GPIO_SDMC_CD_N); - return (!status); -} - -#define TROUT_MMC_VDD MMC_VDD_165_195 | MMC_VDD_20_21 | MMC_VDD_21_22 \ - | MMC_VDD_22_23 | MMC_VDD_23_24 | MMC_VDD_24_25 \ - | MMC_VDD_25_26 | MMC_VDD_26_27 | MMC_VDD_27_28 \ - | MMC_VDD_28_29 | MMC_VDD_29_30 - -static struct mmc_platform_data trout_sdslot_data = { - .ocr_mask = TROUT_MMC_VDD, - .status = trout_sdslot_status, - .translate_vdd = trout_sdslot_switchvdd, -}; - -/* ---- WIFI ---- */ - -static uint32_t wifi_on_gpio_table[] = { - PCOM_GPIO_CFG(51, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(52, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(53, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(54, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT0 */ - PCOM_GPIO_CFG(55, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* CMD */ - PCOM_GPIO_CFG(56, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ - PCOM_GPIO_CFG(29, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), /* WLAN IRQ */ -}; - -static uint32_t wifi_off_gpio_table[] = { - PCOM_GPIO_CFG(51, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(52, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(53, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ - PCOM_GPIO_CFG(54, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ - PCOM_GPIO_CFG(55, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CMD */ - PCOM_GPIO_CFG(56, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ - PCOM_GPIO_CFG(29, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* WLAN IRQ */ -}; - -static struct vreg *vreg_wifi_osc; /* WIFI 32khz oscilator */ -static int trout_wifi_cd = 0; /* WIFI virtual 'card detect' status */ - -static struct sdio_embedded_func wifi_func = { - .f_class = SDIO_CLASS_WLAN, - .f_maxblksize = 512, -}; - -static struct embedded_sdio_data trout_wifi_emb_data = { - .cis = { - .vendor = 0x104c, - .device = 0x9066, - .blksize = 512, - /*.max_dtr = 24000000, Max of chip - no worky on Trout */ - .max_dtr = 20000000, - }, - .cccr = { - .multi_block = 0, - .low_speed = 0, - .wide_bus = 1, - .high_power = 0, - .high_speed = 0, - }, - .funcs = &wifi_func, - .num_funcs = 1, -}; - -static void (*wifi_status_cb)(int card_present, void *dev_id); -static void *wifi_status_cb_devid; - -static int trout_wifi_status_register(void (*callback)(int card_present, void *dev_id), void *dev_id) -{ - if (wifi_status_cb) - return -EAGAIN; - wifi_status_cb = callback; - wifi_status_cb_devid = dev_id; - return 0; -} - -static unsigned int trout_wifi_status(struct device *dev) -{ - return trout_wifi_cd; -} - -int trout_wifi_set_carddetect(int val) -{ - printk("%s: %d\n", __func__, val); - trout_wifi_cd = val; - if (wifi_status_cb) { - wifi_status_cb(val, wifi_status_cb_devid); - } else - printk(KERN_WARNING "%s: Nobody to notify\n", __func__); - return 0; -} -#ifndef CONFIG_WIFI_CONTROL_FUNC -EXPORT_SYMBOL(trout_wifi_set_carddetect); -#endif - -static int trout_wifi_power_state; - -int trout_wifi_power(int on) -{ - int rc; - - printk("%s: %d\n", __func__, on); - - if (on) { - config_gpio_table(wifi_on_gpio_table, - ARRAY_SIZE(wifi_on_gpio_table)); - rc = vreg_enable(vreg_wifi_osc); - if (rc) - return rc; - htc_pwrsink_set(PWRSINK_WIFI, 70); - } else { - config_gpio_table(wifi_off_gpio_table, - ARRAY_SIZE(wifi_off_gpio_table)); - htc_pwrsink_set(PWRSINK_WIFI, 0); - } - gpio_set_value( TROUT_GPIO_MAC_32K_EN, on); - mdelay(100); - gpio_set_value( TROUT_GPIO_WIFI_EN, on); - mdelay(100); - if (!on) { - vreg_disable(vreg_wifi_osc); - } - trout_wifi_power_state = on; - return 0; -} -#ifndef CONFIG_WIFI_CONTROL_FUNC -EXPORT_SYMBOL(trout_wifi_power); -#endif - -static int trout_wifi_reset_state; -int trout_wifi_reset(int on) -{ - printk("%s: %d\n", __func__, on); - gpio_set_value( TROUT_GPIO_WIFI_PA_RESETX, !on ); - trout_wifi_reset_state = on; - mdelay(50); - return 0; -} -#ifndef CONFIG_WIFI_CONTROL_FUNC -EXPORT_SYMBOL(trout_wifi_reset); -#endif - -static struct mmc_platform_data trout_wifi_data = { - .ocr_mask = MMC_VDD_28_29, - .status = trout_wifi_status, - .register_status_notify = trout_wifi_status_register, - .embedded_sdio = &trout_wifi_emb_data, -}; - -int __init trout_init_mmc(unsigned int sys_rev) -{ - wifi_status_cb = NULL; - - sdslot_vreg_enabled = 0; - - vreg_sdslot = vreg_get(0, "gp6"); - if (IS_ERR(vreg_sdslot)) - return PTR_ERR(vreg_sdslot); - vreg_wifi_osc = vreg_get(0, "mmc"); - if (IS_ERR(vreg_wifi_osc)) - return PTR_ERR(vreg_wifi_osc); - - set_irq_wake(TROUT_GPIO_TO_INT(TROUT_GPIO_SDMC_CD_N), 1); - - msm_add_sdcc(1, &trout_wifi_data, 0, 0); - - if (!opt_disable_sdcard) - msm_add_sdcc(2, &trout_sdslot_data, - TROUT_GPIO_TO_INT(TROUT_GPIO_SDMC_CD_N), 0); - else - printk(KERN_INFO "trout: SD-Card interface disabled\n"); - return 0; -} - -#if defined(CONFIG_DEBUG_FS) -static int troutmmc_dbg_wifi_reset_set(void *data, u64 val) -{ - trout_wifi_reset((int) val); - return 0; -} - -static int troutmmc_dbg_wifi_reset_get(void *data, u64 *val) -{ - *val = trout_wifi_reset_state; - return 0; -} - -static int troutmmc_dbg_wifi_cd_set(void *data, u64 val) -{ - trout_wifi_set_carddetect((int) val); - return 0; -} - -static int troutmmc_dbg_wifi_cd_get(void *data, u64 *val) -{ - *val = trout_wifi_cd; - return 0; -} - -static int troutmmc_dbg_wifi_pwr_set(void *data, u64 val) -{ - trout_wifi_power((int) val); - return 0; -} - -static int troutmmc_dbg_wifi_pwr_get(void *data, u64 *val) -{ - - *val = trout_wifi_power_state; - return 0; -} - -static int troutmmc_dbg_sd_pwr_set(void *data, u64 val) -{ - trout_sdslot_switchvdd(NULL, (unsigned int) val); - return 0; -} - -static int troutmmc_dbg_sd_pwr_get(void *data, u64 *val) -{ - *val = sdslot_vdd; - return 0; -} - -static int troutmmc_dbg_sd_cd_set(void *data, u64 val) -{ - return -ENOSYS; -} - -static int troutmmc_dbg_sd_cd_get(void *data, u64 *val) -{ - *val = trout_sdslot_status(NULL); - return 0; -} - -DEFINE_SIMPLE_ATTRIBUTE(troutmmc_dbg_wifi_reset_fops, - troutmmc_dbg_wifi_reset_get, - troutmmc_dbg_wifi_reset_set, "%llu\n"); - -DEFINE_SIMPLE_ATTRIBUTE(troutmmc_dbg_wifi_cd_fops, - troutmmc_dbg_wifi_cd_get, - troutmmc_dbg_wifi_cd_set, "%llu\n"); - -DEFINE_SIMPLE_ATTRIBUTE(troutmmc_dbg_wifi_pwr_fops, - troutmmc_dbg_wifi_pwr_get, - troutmmc_dbg_wifi_pwr_set, "%llu\n"); - -DEFINE_SIMPLE_ATTRIBUTE(troutmmc_dbg_sd_pwr_fops, - troutmmc_dbg_sd_pwr_get, - troutmmc_dbg_sd_pwr_set, "%llu\n"); - -DEFINE_SIMPLE_ATTRIBUTE(troutmmc_dbg_sd_cd_fops, - troutmmc_dbg_sd_cd_get, - troutmmc_dbg_sd_cd_set, "%llu\n"); - -static int __init troutmmc_dbg_init(void) -{ - struct dentry *dent; - - dent = debugfs_create_dir("troutmmc_dbg", 0); - if (IS_ERR(dent)) - return PTR_ERR(dent); - - debugfs_create_file("wifi_reset", 0644, dent, NULL, - &troutmmc_dbg_wifi_reset_fops); - debugfs_create_file("wifi_cd", 0644, dent, NULL, - &troutmmc_dbg_wifi_cd_fops); - debugfs_create_file("wifi_pwr", 0644, dent, NULL, - &troutmmc_dbg_wifi_pwr_fops); - - debugfs_create_file("sd_pwr", 0644, dent, NULL, - &troutmmc_dbg_sd_pwr_fops); - debugfs_create_file("sd_cd", 0644, dent, NULL, - &troutmmc_dbg_sd_cd_fops); - - return 0; -} - -device_initcall(troutmmc_dbg_init); - -#endif diff --git a/arch/arm/mach-msm/board-trout-panel.c b/arch/arm/mach-msm/board-trout-panel.c deleted file mode 100644 index f4bc83a8..00000000 --- a/arch/arm/mach-msm/board-trout-panel.c +++ /dev/null @@ -1,642 +0,0 @@ -/* linux/arch/arm/mach-msm/board-trout-mddi.c -** Author: Brian Swetland -*/ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "board-trout.h" -#include "proc_comm.h" -#include "devices.h" - -#define TROUT_DEFAULT_BACKLIGHT_BRIGHTNESS 255 - -static struct clk *gp_clk; -static int trout_backlight_off; -static int trout_backlight_brightness = TROUT_DEFAULT_BACKLIGHT_BRIGHTNESS; -static int trout_new_backlight = 1; -static uint8_t trout_backlight_last_level = 33; -static DEFINE_MUTEX(trout_backlight_lock); - -static void trout_set_backlight_level(uint8_t level) -{ - unsigned percent = ((int)level * 100) / 255; - - if (trout_new_backlight) { - unsigned long flags; - int i = 0; - level = (int)level * 34 / 256; - - if (trout_backlight_last_level == level) - return; - - if (level == 0) { - gpio_set_value(27, 0); - msleep(2); - } else { - local_irq_save(flags); - if (trout_backlight_last_level == 0) { - gpio_set_value(27, 1); - udelay(40); - trout_backlight_last_level = 33; - } - i = (trout_backlight_last_level - level + 33) % 33; - while (i-- > 0) { - gpio_set_value(27, 0); - udelay(1); - gpio_set_value(27, 1); - udelay(1); - } - local_irq_restore(flags); - } - trout_backlight_last_level = level; - } - else { - if(level) { - clk_enable(gp_clk); - writel((1U << 16) | (~level & 0xffff), - MSM_CLK_CTL_BASE + 0x58); - /* Going directly to a 100% duty cycle does not - * seem to work */ - if(level == 255) { - writel((~127 << 16) | 0xb20, - MSM_CLK_CTL_BASE + 0x5c); - udelay(1); - } - writel((~127 << 16) | 0xb58, MSM_CLK_CTL_BASE + 0x5c); - } - else { - writel(0x0, MSM_CLK_CTL_BASE + 0x5c); - clk_disable(gp_clk); - } - } - htc_pwrsink_set(PWRSINK_BACKLIGHT, percent); -} - -#define MDDI_CLIENT_CORE_BASE 0x108000 -#define LCD_CONTROL_BLOCK_BASE 0x110000 -#define SPI_BLOCK_BASE 0x120000 -#define I2C_BLOCK_BASE 0x130000 -#define PWM_BLOCK_BASE 0x140000 -#define GPIO_BLOCK_BASE 0x150000 -#define SYSTEM_BLOCK1_BASE 0x160000 -#define SYSTEM_BLOCK2_BASE 0x170000 - - -#define DPSUS (MDDI_CLIENT_CORE_BASE|0x24) -#define SYSCLKENA (MDDI_CLIENT_CORE_BASE|0x2C) -#define PWM0OFF (PWM_BLOCK_BASE|0x1C) - -#define V_VDDE2E_VDD2_GPIO 0 -#define MDDI_RST_N 82 - -#define MDDICAP0 (MDDI_CLIENT_CORE_BASE|0x00) -#define MDDICAP1 (MDDI_CLIENT_CORE_BASE|0x04) -#define MDDICAP2 (MDDI_CLIENT_CORE_BASE|0x08) -#define MDDICAP3 (MDDI_CLIENT_CORE_BASE|0x0C) -#define MDCAPCHG (MDDI_CLIENT_CORE_BASE|0x10) -#define MDCRCERC (MDDI_CLIENT_CORE_BASE|0x14) -#define TTBUSSEL (MDDI_CLIENT_CORE_BASE|0x18) -#define DPSET0 (MDDI_CLIENT_CORE_BASE|0x1C) -#define DPSET1 (MDDI_CLIENT_CORE_BASE|0x20) -#define DPSUS (MDDI_CLIENT_CORE_BASE|0x24) -#define DPRUN (MDDI_CLIENT_CORE_BASE|0x28) -#define SYSCKENA (MDDI_CLIENT_CORE_BASE|0x2C) -#define TESTMODE (MDDI_CLIENT_CORE_BASE|0x30) -#define FIFOMONI (MDDI_CLIENT_CORE_BASE|0x34) -#define INTMONI (MDDI_CLIENT_CORE_BASE|0x38) -#define MDIOBIST (MDDI_CLIENT_CORE_BASE|0x3C) -#define MDIOPSET (MDDI_CLIENT_CORE_BASE|0x40) -#define BITMAP0 (MDDI_CLIENT_CORE_BASE|0x44) -#define BITMAP1 (MDDI_CLIENT_CORE_BASE|0x48) -#define BITMAP2 (MDDI_CLIENT_CORE_BASE|0x4C) -#define BITMAP3 (MDDI_CLIENT_CORE_BASE|0x50) -#define BITMAP4 (MDDI_CLIENT_CORE_BASE|0x54) - -#define SRST (LCD_CONTROL_BLOCK_BASE|0x00) -#define PORT_ENB (LCD_CONTROL_BLOCK_BASE|0x04) -#define START (LCD_CONTROL_BLOCK_BASE|0x08) -#define PORT (LCD_CONTROL_BLOCK_BASE|0x0C) -#define CMN (LCD_CONTROL_BLOCK_BASE|0x10) -#define GAMMA (LCD_CONTROL_BLOCK_BASE|0x14) -#define INTFLG (LCD_CONTROL_BLOCK_BASE|0x18) -#define INTMSK (LCD_CONTROL_BLOCK_BASE|0x1C) -#define MPLFBUF (LCD_CONTROL_BLOCK_BASE|0x20) -#define HDE_LEFT (LCD_CONTROL_BLOCK_BASE|0x24) -#define VDE_TOP (LCD_CONTROL_BLOCK_BASE|0x28) -#define PXL (LCD_CONTROL_BLOCK_BASE|0x30) -#define HCYCLE (LCD_CONTROL_BLOCK_BASE|0x34) -#define HSW (LCD_CONTROL_BLOCK_BASE|0x38) -#define HDE_START (LCD_CONTROL_BLOCK_BASE|0x3C) -#define HDE_SIZE (LCD_CONTROL_BLOCK_BASE|0x40) -#define VCYCLE (LCD_CONTROL_BLOCK_BASE|0x44) -#define VSW (LCD_CONTROL_BLOCK_BASE|0x48) -#define VDE_START (LCD_CONTROL_BLOCK_BASE|0x4C) -#define VDE_SIZE (LCD_CONTROL_BLOCK_BASE|0x50) -#define WAKEUP (LCD_CONTROL_BLOCK_BASE|0x54) -#define WSYN_DLY (LCD_CONTROL_BLOCK_BASE|0x58) -#define REGENB (LCD_CONTROL_BLOCK_BASE|0x5C) -#define VSYNIF (LCD_CONTROL_BLOCK_BASE|0x60) -#define WRSTB (LCD_CONTROL_BLOCK_BASE|0x64) -#define RDSTB (LCD_CONTROL_BLOCK_BASE|0x68) -#define ASY_DATA (LCD_CONTROL_BLOCK_BASE|0x6C) -#define ASY_DATB (LCD_CONTROL_BLOCK_BASE|0x70) -#define ASY_DATC (LCD_CONTROL_BLOCK_BASE|0x74) -#define ASY_DATD (LCD_CONTROL_BLOCK_BASE|0x78) -#define ASY_DATE (LCD_CONTROL_BLOCK_BASE|0x7C) -#define ASY_DATF (LCD_CONTROL_BLOCK_BASE|0x80) -#define ASY_DATG (LCD_CONTROL_BLOCK_BASE|0x84) -#define ASY_DATH (LCD_CONTROL_BLOCK_BASE|0x88) -#define ASY_CMDSET (LCD_CONTROL_BLOCK_BASE|0x8C) - -#define SSICTL (SPI_BLOCK_BASE|0x00) -#define SSITIME (SPI_BLOCK_BASE|0x04) -#define SSITX (SPI_BLOCK_BASE|0x08) -#define SSIRX (SPI_BLOCK_BASE|0x0C) -#define SSIINTC (SPI_BLOCK_BASE|0x10) -#define SSIINTS (SPI_BLOCK_BASE|0x14) -#define SSIDBG1 (SPI_BLOCK_BASE|0x18) -#define SSIDBG2 (SPI_BLOCK_BASE|0x1C) -#define SSIID (SPI_BLOCK_BASE|0x20) - -#define WKREQ (SYSTEM_BLOCK1_BASE|0x00) -#define CLKENB (SYSTEM_BLOCK1_BASE|0x04) -#define DRAMPWR (SYSTEM_BLOCK1_BASE|0x08) -#define INTMASK (SYSTEM_BLOCK1_BASE|0x0C) -#define GPIOSEL (SYSTEM_BLOCK2_BASE|0x00) - -#define GPIODATA (GPIO_BLOCK_BASE|0x00) -#define GPIODIR (GPIO_BLOCK_BASE|0x04) -#define GPIOIS (GPIO_BLOCK_BASE|0x08) -#define GPIOIBE (GPIO_BLOCK_BASE|0x0C) -#define GPIOIEV (GPIO_BLOCK_BASE|0x10) -#define GPIOIE (GPIO_BLOCK_BASE|0x14) -#define GPIORIS (GPIO_BLOCK_BASE|0x18) -#define GPIOMIS (GPIO_BLOCK_BASE|0x1C) -#define GPIOIC (GPIO_BLOCK_BASE|0x20) -#define GPIOOMS (GPIO_BLOCK_BASE|0x24) -#define GPIOPC (GPIO_BLOCK_BASE|0x28) -#define GPIOID (GPIO_BLOCK_BASE|0x30) - -#define SPI_WRITE(reg, val) \ - { SSITX, 0x00010000 | (((reg) & 0xff) << 8) | ((val) & 0xff) }, \ - { 0, 5 }, - -#define SPI_WRITE1(reg) \ - { SSITX, (reg) & 0xff }, \ - { 0, 5 }, - -struct mddi_table { - uint32_t reg; - uint32_t value; -}; -static struct mddi_table mddi_toshiba_init_table[] = { - { DPSET0, 0x09e90046 }, - { DPSET1, 0x00000118 }, - { DPSUS, 0x00000000 }, - { DPRUN, 0x00000001 }, - { 1, 14 }, /* msleep 14 */ - { SYSCKENA, 0x00000001 }, - //{ CLKENB, 0x000000EF }, - { CLKENB, 0x0000A1EF }, /* # SYS.CLKENB # Enable clocks for each module (without DCLK , i2cCLK) */ - //{ CLKENB, 0x000025CB }, /* Clock enable register */ - - { GPIODATA, 0x02000200 }, /* # GPI .GPIODATA # GPIO2(RESET_LCD_N) set to 0 , GPIO3(eDRAM_Power) set to 0 */ - { GPIODIR, 0x000030D }, /* 24D # GPI .GPIODIR # Select direction of GPIO port (0,2,3,6,9 output) */ - { GPIOSEL, 0/*0x00000173*/}, /* # SYS.GPIOSEL # GPIO port multiplexing control */ - { GPIOPC, 0x03C300C0 }, /* # GPI .GPIOPC # GPIO2,3 PD cut */ - { WKREQ, 0x00000000 }, /* # SYS.WKREQ # Wake-up request event is VSYNC alignment */ - - { GPIOIBE, 0x000003FF }, - { GPIOIS, 0x00000000 }, - { GPIOIC, 0x000003FF }, - { GPIOIE, 0x00000000 }, - - { GPIODATA, 0x00040004 }, /* # GPI .GPIODATA # eDRAM VD supply */ - { 1, 1 }, /* msleep 1 */ - { GPIODATA, 0x02040004 }, /* # GPI .GPIODATA # eDRAM VD supply */ - { DRAMPWR, 0x00000001 }, /* eDRAM power */ -}; - -static struct mddi_table mddi_toshiba_panel_init_table[] = { - { SRST, 0x00000003 }, /* FIFO/LCDC not reset */ - { PORT_ENB, 0x00000001 }, /* Enable sync. Port */ - { START, 0x00000000 }, /* To stop operation */ - //{ START, 0x00000001 }, /* To start operation */ - { PORT, 0x00000004 }, /* Polarity of VS/HS/DE. */ - { CMN, 0x00000000 }, - { GAMMA, 0x00000000 }, /* No Gamma correction */ - { INTFLG, 0x00000000 }, /* VSYNC interrupt flag clear/status */ - { INTMSK, 0x00000000 }, /* VSYNC interrupt mask is off. */ - { MPLFBUF, 0x00000000 }, /* Select frame buffer's base address. */ - { HDE_LEFT, 0x00000000 }, /* The value of HDE_LEFT. */ - { VDE_TOP, 0x00000000 }, /* The value of VDE_TPO. */ - { PXL, 0x00000001 }, /* 1. RGB666 */ - /* 2. Data is valid from 1st frame of beginning. */ - { HDE_START, 0x00000006 }, /* HDE_START= 14 PCLK */ - { HDE_SIZE, 0x0000009F }, /* HDE_SIZE=320 PCLK */ - { HSW, 0x00000004 }, /* HSW= 10 PCLK */ - { VSW, 0x00000001 }, /* VSW=2 HCYCLE */ - { VDE_START, 0x00000003 }, /* VDE_START=4 HCYCLE */ - { VDE_SIZE, 0x000001DF }, /* VDE_SIZE=480 HCYCLE */ - { WAKEUP, 0x000001e2 }, /* Wakeup position in VSYNC mode. */ - { WSYN_DLY, 0x00000000 }, /* Wakeup position in VSIN mode. */ - { REGENB, 0x00000001 }, /* Set 1 to enable to change the value of registers. */ - { CLKENB, 0x000025CB }, /* Clock enable register */ - - { SSICTL, 0x00000170 }, /* SSI control register */ - { SSITIME, 0x00000250 }, /* SSI timing control register */ - { SSICTL, 0x00000172 }, /* SSI control register */ -}; - - -static struct mddi_table mddi_sharp_init_table[] = { - { VCYCLE, 0x000001eb }, - { HCYCLE, 0x000000ae }, - { REGENB, 0x00000001 }, /* Set 1 to enable to change the value of registers. */ - { GPIODATA, 0x00040000 }, /* GPIO2 low */ - { GPIODIR, 0x00000004 }, /* GPIO2 out */ - { 1, 1 }, /* msleep 1 */ - { GPIODATA, 0x00040004 }, /* GPIO2 high */ - { 1, 10 }, /* msleep 10 */ - SPI_WRITE(0x5f, 0x01) - SPI_WRITE1(0x11) - { 1, 200 }, /* msleep 200 */ - SPI_WRITE1(0x29) - SPI_WRITE1(0xde) - { START, 0x00000001 }, /* To start operation */ -}; - -static struct mddi_table mddi_sharp_deinit_table[] = { - { 1, 200 }, /* msleep 200 */ - SPI_WRITE(0x10, 0x1) - { 1, 100 }, /* msleep 100 */ - { GPIODATA, 0x00040004 }, /* GPIO2 high */ - { GPIODIR, 0x00000004 }, /* GPIO2 out */ - { GPIODATA, 0x00040000 }, /* GPIO2 low */ - { 1, 10 }, /* msleep 10 */ -}; - -static struct mddi_table mddi_tpo_init_table[] = { - { VCYCLE, 0x000001e5 }, - { HCYCLE, 0x000000ac }, - { REGENB, 0x00000001 }, /* Set 1 to enable to change the value of registers. */ - { 0, 20 }, /* udelay 20 */ - { GPIODATA, 0x00000004 }, /* GPIO2 high */ - { GPIODIR, 0x00000004 }, /* GPIO2 out */ - { 0, 20 }, /* udelay 20 */ - - SPI_WRITE(0x08, 0x01) - { 0, 500 }, /* udelay 500 */ - SPI_WRITE(0x08, 0x00) - SPI_WRITE(0x02, 0x00) - SPI_WRITE(0x03, 0x04) - SPI_WRITE(0x04, 0x0e) - SPI_WRITE(0x09, 0x02) - SPI_WRITE(0x0b, 0x08) - SPI_WRITE(0x0c, 0x53) - SPI_WRITE(0x0d, 0x01) - SPI_WRITE(0x0e, 0xe0) - SPI_WRITE(0x0f, 0x01) - SPI_WRITE(0x10, 0x58) - SPI_WRITE(0x20, 0x1e) - SPI_WRITE(0x21, 0x0a) - SPI_WRITE(0x22, 0x0a) - SPI_WRITE(0x23, 0x1e) - SPI_WRITE(0x25, 0x32) - SPI_WRITE(0x26, 0x00) - SPI_WRITE(0x27, 0xac) - SPI_WRITE(0x29, 0x06) - SPI_WRITE(0x2a, 0xa4) - SPI_WRITE(0x2b, 0x45) - SPI_WRITE(0x2c, 0x45) - SPI_WRITE(0x2d, 0x15) - SPI_WRITE(0x2e, 0x5a) - SPI_WRITE(0x2f, 0xff) - SPI_WRITE(0x30, 0x6b) - SPI_WRITE(0x31, 0x0d) - SPI_WRITE(0x32, 0x48) - SPI_WRITE(0x33, 0x82) - SPI_WRITE(0x34, 0xbd) - SPI_WRITE(0x35, 0xe7) - SPI_WRITE(0x36, 0x18) - SPI_WRITE(0x37, 0x94) - SPI_WRITE(0x38, 0x01) - SPI_WRITE(0x39, 0x5d) - SPI_WRITE(0x3a, 0xae) - SPI_WRITE(0x3b, 0xff) - SPI_WRITE(0x07, 0x09) - { 0, 10 }, /* udelay 10 */ - { START, 0x00000001 }, /* To start operation */ -}; - -static struct mddi_table mddi_tpo_deinit_table[] = { - SPI_WRITE(0x07, 0x19) - { START, 0x00000000 }, /* To stop operation */ - { GPIODATA, 0x00040004 }, /* GPIO2 high */ - { GPIODIR, 0x00000004 }, /* GPIO2 out */ - { GPIODATA, 0x00040000 }, /* GPIO2 low */ - { 0, 5 }, /* usleep 5 */ -}; - - -#define GPIOSEL_VWAKEINT (1U << 0) -#define INTMASK_VWAKEOUT (1U << 0) - -static void trout_process_mddi_table(struct msm_mddi_client_data *client_data, - struct mddi_table *table, size_t count) -{ - int i; - for(i = 0; i < count; i++) { - uint32_t reg = table[i].reg; - uint32_t value = table[i].value; - - if (reg == 0) - udelay(value); - else if (reg == 1) - msleep(value); - else - client_data->remote_write(client_data, value, reg); - } -} - -static struct vreg *vreg_mddi_1v5; -static struct vreg *vreg_lcm_2v85; - -static void trout_mddi_power_client(struct msm_mddi_client_data *client_data, - int on) -{ - unsigned id, on_off; - if(on) { - on_off = 0; - id = PM_VREG_PDOWN_MDDI_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_enable(vreg_mddi_1v5); - mdelay(5); // delay time >5ms and <10ms - gpio_set_value(V_VDDE2E_VDD2_GPIO, 1); - gpio_set_value(TROUT_GPIO_MDDI_32K_EN, 1); - msleep(3); - id = PM_VREG_PDOWN_AUX_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - vreg_enable(vreg_lcm_2v85); - msleep(3); - gpio_set_value(MDDI_RST_N, 1); - msleep(10); - } else { - gpio_set_value(TROUT_GPIO_MDDI_32K_EN, 0); - gpio_set_value(MDDI_RST_N, 0); - msleep(10); - vreg_disable(vreg_lcm_2v85); - on_off = 1; - id = PM_VREG_PDOWN_AUX_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - msleep(5); - gpio_set_value(V_VDDE2E_VDD2_GPIO, 0); - msleep(200); - vreg_disable(vreg_mddi_1v5); - id = PM_VREG_PDOWN_MDDI_ID; - msm_proc_comm(PCOM_VREG_PULLDOWN, &on_off, &id); - } -} - -static int trout_mddi_toshiba_client_init( - struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - int panel_id; - - client_data->auto_hibernate(client_data, 0); - trout_process_mddi_table(client_data, mddi_toshiba_init_table, - ARRAY_SIZE(mddi_toshiba_init_table)); - client_data->auto_hibernate(client_data, 1); - panel_id = (client_data->remote_read(client_data, GPIODATA) >> 4) & 3; - if (panel_id > 1) { - printk("unknown panel id at mddi_enable\n"); - return -1; - } - return 0; -} - -static int trout_mddi_toshiba_client_uninit( - struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - return 0; -} - -static int trout_mddi_panel_unblank( - struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - - int panel_id, ret = 0; - - trout_set_backlight_level(0); - client_data->auto_hibernate(client_data, 0); - trout_process_mddi_table(client_data, mddi_toshiba_panel_init_table, - ARRAY_SIZE(mddi_toshiba_panel_init_table)); - panel_id = (client_data->remote_read(client_data, GPIODATA) >> 4) & 3; - switch(panel_id) { - case 0: - printk("init sharp panel\n"); - trout_process_mddi_table(client_data, - mddi_sharp_init_table, - ARRAY_SIZE(mddi_sharp_init_table)); - break; - case 1: - printk("init tpo panel\n"); - trout_process_mddi_table(client_data, - mddi_tpo_init_table, - ARRAY_SIZE(mddi_tpo_init_table)); - break; - default: - printk("unknown panel_id: %d\n", panel_id); - ret = -1; - }; - mutex_lock(&trout_backlight_lock); - trout_set_backlight_level(trout_backlight_brightness); - trout_backlight_off = 0; - mutex_unlock(&trout_backlight_lock); - client_data->auto_hibernate(client_data, 1); - client_data->remote_write(client_data, GPIOSEL_VWAKEINT, GPIOSEL); - client_data->remote_write(client_data, INTMASK_VWAKEOUT, INTMASK); - return ret; - -} - -static int trout_mddi_panel_blank( - struct msm_mddi_bridge_platform_data *bridge_data, - struct msm_mddi_client_data *client_data) -{ - int panel_id, ret = 0; - - panel_id = (client_data->remote_read(client_data, GPIODATA) >> 4) & 3; - client_data->auto_hibernate(client_data, 0); - switch(panel_id) { - case 0: - printk("deinit sharp panel\n"); - trout_process_mddi_table(client_data, - mddi_sharp_deinit_table, - ARRAY_SIZE(mddi_sharp_deinit_table)); - break; - case 1: - printk("deinit tpo panel\n"); - trout_process_mddi_table(client_data, - mddi_tpo_deinit_table, - ARRAY_SIZE(mddi_tpo_deinit_table)); - break; - default: - printk("unknown panel_id: %d\n", panel_id); - ret = -1; - }; - client_data->auto_hibernate(client_data, 1); - mutex_lock(&trout_backlight_lock); - trout_set_backlight_level(0); - trout_backlight_off = 1; - mutex_unlock(&trout_backlight_lock); - client_data->remote_write(client_data, 0, SYSCLKENA); - client_data->remote_write(client_data, 1, DPSUS); - return ret; -} - -static void trout_brightness_set(struct led_classdev *led_cdev, enum led_brightness value) -{ - mutex_lock(&trout_backlight_lock); - trout_backlight_brightness = value; - if(!trout_backlight_off) - trout_set_backlight_level(trout_backlight_brightness); - mutex_unlock(&trout_backlight_lock); -} - -static struct led_classdev trout_backlight_led = { - .name = "lcd-backlight", - .brightness = TROUT_DEFAULT_BACKLIGHT_BRIGHTNESS, - .brightness_set = trout_brightness_set, -}; - -static int trout_backlight_probe(struct platform_device *pdev) -{ - led_classdev_register(&pdev->dev, &trout_backlight_led); - return 0; -} - -static int trout_backlight_remove(struct platform_device *pdev) -{ - led_classdev_unregister(&trout_backlight_led); - return 0; -} - -static struct platform_driver trout_backlight_driver = { - .probe = trout_backlight_probe, - .remove = trout_backlight_remove, - .driver = { - .name = "trout-backlight", - .owner = THIS_MODULE, - }, -}; - -static struct resource resources_msm_fb[] = { - { - .start = MSM_FB_BASE, - .end = MSM_FB_BASE + MSM_FB_SIZE, - .flags = IORESOURCE_MEM, - }, -}; - -struct msm_mddi_bridge_platform_data toshiba_client_data = { - .init = trout_mddi_toshiba_client_init, - .uninit = trout_mddi_toshiba_client_uninit, - .blank = trout_mddi_panel_blank, - .unblank = trout_mddi_panel_unblank, - .fb_data = { - .xres = 320, - .yres = 480, - .width = 45, - .height = 67, - .output_format = 0, - }, -}; - -static struct msm_mddi_platform_data mddi_pdata = { - .clk_rate = 122880000, - .power_client = trout_mddi_power_client, - .fb_resource = resources_msm_fb, - .num_clients = 1, - .client_platform_data = { - { - .product_id = (0xd263 << 16 | 0), - .name = "mddi_c_d263_0000", - //.name = "mddi_c_dummy", - .id = 0, - .client_data = &toshiba_client_data, - //.client_data = &toshiba_client_data.fb_data, - .clk_rate = 0, - }, - }, -}; - -static struct platform_device trout_backlight = { - .name = "trout-backlight", -}; - -int __init trout_init_panel(void) -{ - int rc; - - if (!machine_is_trout()) - return 0; - vreg_mddi_1v5 = vreg_get(0, "gp2"); - if (IS_ERR(vreg_mddi_1v5)) - return PTR_ERR(vreg_mddi_1v5); - vreg_lcm_2v85 = vreg_get(0, "gp4"); - if (IS_ERR(vreg_lcm_2v85)) - return PTR_ERR(vreg_lcm_2v85); - - trout_new_backlight = system_rev >= 5; - if (trout_new_backlight) { - uint32_t config = PCOM_GPIO_CFG(27, 0, GPIO_OUTPUT, - GPIO_NO_PULL, GPIO_8MA); - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); - } - else { - uint32_t config = PCOM_GPIO_CFG(27, 1, GPIO_OUTPUT, - GPIO_NO_PULL, GPIO_8MA); - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); - - gp_clk = clk_get(NULL, "gp_clk"); - if (IS_ERR(gp_clk)) { - printk(KERN_ERR "trout_init_panel: could not get gp" - "clock\n"); - gp_clk = NULL; - } - rc = clk_set_rate(gp_clk, 19200000); - if (rc) - printk(KERN_ERR "trout_init_panel: set clock rate " - "failed\n"); - } - - rc = platform_device_register(&msm_device_mdp); - if (rc) - return rc; - msm_device_mddi0.dev.platform_data = &mddi_pdata; - rc = platform_device_register(&msm_device_mddi0); - if (rc) - return rc; - platform_device_register(&trout_backlight); - return platform_driver_register(&trout_backlight_driver); -} - -device_initcall(trout_init_panel); diff --git a/arch/arm/mach-msm/board-trout-rfkill.c b/arch/arm/mach-msm/board-trout-rfkill.c deleted file mode 100644 index e68eb2ae..00000000 --- a/arch/arm/mach-msm/board-trout-rfkill.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2008 Google, Inc. - * Author: Nick Pelly - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -/* Control bluetooth power for trout platform */ - -#include -#include -#include -#include -#include -#include - -#include "board-trout.h" - -static struct rfkill *bt_rfk; -static const char bt_name[] = "brf6300"; - -static int bluetooth_set_power(void *data, bool blocked) -{ - if (!blocked) { - gpio_set_value(TROUT_GPIO_BT_32K_EN, 1); - udelay(10); - gpio_direction_output(101, 1); - } else { - gpio_direction_output(101, 0); - gpio_set_value(TROUT_GPIO_BT_32K_EN, 0); - } - return 0; -} - -static struct rfkill_ops trout_rfkill_ops = { - .set_block = bluetooth_set_power, -}; - -static int trout_rfkill_probe(struct platform_device *pdev) -{ - int rc = 0; - bool default_state = true; /* off */ - - bluetooth_set_power(NULL, default_state); - - bt_rfk = rfkill_alloc(bt_name, &pdev->dev, RFKILL_TYPE_BLUETOOTH, - &trout_rfkill_ops, NULL); - if (!bt_rfk) - return -ENOMEM; - - rfkill_set_states(bt_rfk, default_state, false); - - /* userspace cannot take exclusive control */ - - rc = rfkill_register(bt_rfk); - - if (rc) - rfkill_destroy(bt_rfk); - return rc; -} - -static int trout_rfkill_remove(struct platform_device *dev) -{ - rfkill_unregister(bt_rfk); - rfkill_destroy(bt_rfk); - - return 0; -} - -static struct platform_driver trout_rfkill_driver = { - .probe = trout_rfkill_probe, - .remove = trout_rfkill_remove, - .driver = { - .name = "trout_rfkill", - .owner = THIS_MODULE, - }, -}; - -static int __init trout_rfkill_init(void) -{ - return platform_driver_register(&trout_rfkill_driver); -} - -static void __exit trout_rfkill_exit(void) -{ - platform_driver_unregister(&trout_rfkill_driver); -} - -module_init(trout_rfkill_init); -module_exit(trout_rfkill_exit); -MODULE_DESCRIPTION("trout rfkill"); -MODULE_AUTHOR("Nick Pelly "); -MODULE_LICENSE("GPL"); diff --git a/arch/arm/mach-msm/board-trout-wifi.c b/arch/arm/mach-msm/board-trout-wifi.c deleted file mode 100644 index 51b26a40..00000000 --- a/arch/arm/mach-msm/board-trout-wifi.c +++ /dev/null @@ -1,74 +0,0 @@ -/* arch/arm/mach-msm/board-trout-wifi.c - * - * Copyright (C) 2008 Google, Inc. - * Author: Dmitry Shmidt - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#ifdef CONFIG_WIFI_CONTROL_FUNC -#include -#include -#include -#include -#include -#include - -extern int trout_wifi_set_carddetect(int val); -extern int trout_wifi_power(int on); -extern int trout_wifi_reset(int on); - -#ifdef CONFIG_WIFI_MEM_PREALLOC -typedef struct wifi_mem_prealloc_struct { - void *mem_ptr; - unsigned long size; -} wifi_mem_prealloc_t; - -static wifi_mem_prealloc_t wifi_mem_array[WMPA_NUMBER_OF_SECTIONS] = { - { NULL, (WMPA_SECTION_SIZE_0 + WMPA_SECTION_HEADER) }, - { NULL, (WMPA_SECTION_SIZE_1 + WMPA_SECTION_HEADER) }, - { NULL, (WMPA_SECTION_SIZE_2 + WMPA_SECTION_HEADER) } -}; - -static void *trout_wifi_mem_prealloc(int section, unsigned long size) -{ - if( (section < 0) || (section >= WMPA_NUMBER_OF_SECTIONS) ) - return NULL; - if( wifi_mem_array[section].size < size ) - return NULL; - return wifi_mem_array[section].mem_ptr; -} - -int __init trout_init_wifi_mem( void ) -{ - int i; - - for(i=0;( i < WMPA_NUMBER_OF_SECTIONS );i++) { - wifi_mem_array[i].mem_ptr = vmalloc(wifi_mem_array[i].size); - if( wifi_mem_array[i].mem_ptr == NULL ) - return -ENOMEM; - } - return 0; -} -#endif - -struct wifi_platform_data trout_wifi_control = { - .set_power = trout_wifi_power, - .set_reset = trout_wifi_reset, - .set_carddetect = trout_wifi_set_carddetect, -#ifdef CONFIG_WIFI_MEM_PREALLOC - .mem_prealloc = trout_wifi_mem_prealloc, -#else - .mem_prealloc = NULL, -#endif -}; - -#endif diff --git a/arch/arm/mach-msm/board-trout.c b/arch/arm/mach-msm/board-trout.c deleted file mode 100644 index a7b54584..00000000 --- a/arch/arm/mach-msm/board-trout.c +++ /dev/null @@ -1,869 +0,0 @@ -/* arch/arm/mach-msm/board-trout.c - * - * Copyright (C) 2008 Google, Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include <../../../drivers/staging/android/timed_gpio.h> -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "board-trout.h" - -#include "gpio_chip.h" - -#include -#include -#include -#include -#include -#ifdef CONFIG_HTC_HEADSET -#include -#endif -#ifdef CONFIG_WIFI_CONTROL_FUNC -#include -#endif - -#include "proc_comm.h" -#include "devices.h" - -void msm_init_irq(void); -void msm_init_gpio(void); - -extern int trout_init_mmc(unsigned int); -#ifdef CONFIG_WIFI_CONTROL_FUNC -#ifdef CONFIG_WIFI_MEM_PREALLOC -extern int trout_init_wifi_mem(void); -#endif -extern struct wifi_platform_data trout_wifi_control; -#endif - -struct trout_axis_info { - struct gpio_event_axis_info info; - uint16_t in_state; - uint16_t out_state; -}; -static bool nav_just_on; -static int nav_on_jiffies; - -uint16_t trout_axis_map(struct gpio_event_axis_info *info, uint16_t in) -{ - struct trout_axis_info *ai = container_of(info, struct trout_axis_info, info); - uint16_t out = ai->out_state; - - if (nav_just_on) { - if (jiffies == nav_on_jiffies || jiffies == nav_on_jiffies + 1) - goto ignore; - nav_just_on = 0; - } - if((ai->in_state ^ in) & 1) - out--; - if((ai->in_state ^ in) & 2) - out++; - ai->out_state = out; -ignore: - ai->in_state = in; - return out; -} - -int trout_nav_power(const struct gpio_event_platform_data *pdata, bool on) -{ - gpio_set_value(TROUT_GPIO_JOG_EN, on); - if (on) { - nav_just_on = 1; - nav_on_jiffies = jiffies; - } - return 0; -} - -static uint32_t trout_4_x_axis_gpios[] = { - TROUT_4_BALL_LEFT_0, TROUT_4_BALL_RIGHT_0 -}; -static uint32_t trout_5_x_axis_gpios[] = { - TROUT_5_BALL_LEFT_0, TROUT_5_BALL_RIGHT_0 -}; - -static struct trout_axis_info trout_x_axis = { - .info = { - .info.func = gpio_event_axis_func, - .count = ARRAY_SIZE(trout_5_x_axis_gpios), - .type = EV_REL, - .code = REL_X, - .decoded_size = 1U << ARRAY_SIZE(trout_5_x_axis_gpios), - .map = trout_axis_map, - .gpio = trout_5_x_axis_gpios, - .flags = GPIOEAF_PRINT_UNKNOWN_DIRECTION /*| GPIOEAF_PRINT_RAW | GPIOEAF_PRINT_EVENT */ - } -}; - -static uint32_t trout_4_y_axis_gpios[] = { - TROUT_4_BALL_UP_0, TROUT_4_BALL_DOWN_0 -}; -static uint32_t trout_5_y_axis_gpios[] = { - TROUT_5_BALL_UP_0, TROUT_5_BALL_DOWN_0 -}; - -static struct trout_axis_info trout_y_axis = { - .info = { - .info.func = gpio_event_axis_func, - .count = ARRAY_SIZE(trout_5_y_axis_gpios), - .type = EV_REL, - .code = REL_Y, - .decoded_size = 1U << ARRAY_SIZE(trout_5_y_axis_gpios), - .map = trout_axis_map, - .gpio = trout_5_y_axis_gpios, - .flags = GPIOEAF_PRINT_UNKNOWN_DIRECTION /*| GPIOEAF_PRINT_RAW | GPIOEAF_PRINT_EVENT */ - } -}; - -static struct gpio_event_direct_entry trout_nav_buttons[] = { - { TROUT_GPIO_NAVI_ACT_N, BTN_MOUSE } -}; - -static struct gpio_event_input_info trout_nav_button_info = { - .info.func = gpio_event_input_func, - .flags = 0, - .type = EV_KEY, - .keymap = trout_nav_buttons, - .keymap_size = ARRAY_SIZE(trout_nav_buttons) -}; - -static struct gpio_event_info *trout_nav_info[] = { - &trout_x_axis.info.info, - &trout_y_axis.info.info, - &trout_nav_button_info.info -}; - -static struct gpio_event_platform_data trout_nav_data = { - .name = "trout-nav", - .info = trout_nav_info, - .info_count = ARRAY_SIZE(trout_nav_info), - .power = trout_nav_power, -}; - -static struct platform_device trout_nav_device = { - .name = GPIO_EVENT_DEV_NAME, - .id = 2, - .dev = { - .platform_data = &trout_nav_data, - }, -}; - -static int trout_reset_keys_up[] = { - BTN_MOUSE, - 0 -}; - -static struct keyreset_platform_data trout_reset_keys_pdata = { - .keys_up = trout_reset_keys_up, - .keys_down = { - KEY_SEND, - KEY_MENU, - KEY_END, - 0 - }, -}; - -struct platform_device trout_reset_keys_device = { - .name = KEYRESET_NAME, - .dev.platform_data = &trout_reset_keys_pdata, -}; - -static int trout_ts_power(int on) -{ - int tp_ls_gpio = system_rev < 5 ? TROUT_4_TP_LS_EN : TROUT_5_TP_LS_EN; - if (on) { - gpio_set_value(TROUT_GPIO_TP_I2C_PULL, 1); - gpio_set_value(TROUT_GPIO_TP_EN, 1); - /* touchscreen must be powered before we enable i2c pullup */ - msleep(2); - /* enable touch panel level shift */ - gpio_set_value(tp_ls_gpio, 1); - msleep(2); - } - else { - gpio_set_value(tp_ls_gpio, 0); - udelay(50); - gpio_set_value(TROUT_GPIO_TP_EN, 0); - gpio_set_value(TROUT_GPIO_TP_I2C_PULL, 0); - } - return 0; -} - -static struct synaptics_i2c_rmi_platform_data trout_ts_data[] = { - { - .version = 0x010c, - .power = trout_ts_power, - .flags = SYNAPTICS_FLIP_Y | SYNAPTICS_SNAP_TO_INACTIVE_EDGE, - .inactive_left = -100 * 0x10000 / 4334, - .inactive_right = -100 * 0x10000 / 4334, - .inactive_top = -40 * 0x10000 / 6696, - .inactive_bottom = -40 * 0x10000 / 6696, - .snap_left_on = 300 * 0x10000 / 4334, - .snap_left_off = 310 * 0x10000 / 4334, - .snap_right_on = 300 * 0x10000 / 4334, - .snap_right_off = 310 * 0x10000 / 4334, - .snap_top_on = 100 * 0x10000 / 6696, - .snap_top_off = 110 * 0x10000 / 6696, - .snap_bottom_on = 100 * 0x10000 / 6696, - .snap_bottom_off = 110 * 0x10000 / 6696, - }, - { - .flags = SYNAPTICS_FLIP_Y | SYNAPTICS_SNAP_TO_INACTIVE_EDGE, - .inactive_left = ((4674 - 4334) / 2 + 200) * 0x10000 / 4334, - .inactive_right = ((4674 - 4334) / 2 + 200) * 0x10000 / 4334, - .inactive_top = ((6946 - 6696) / 2) * 0x10000 / 6696, - .inactive_bottom = ((6946 - 6696) / 2) * 0x10000 / 6696, - } -}; - -static struct akm8976_platform_data compass_platform_data = { - .reset = TROUT_GPIO_COMPASS_RST_N, - .clk_on = TROUT_GPIO_COMPASS_32K_EN, - .intr = TROUT_GPIO_COMPASS_IRQ, -}; - -static struct i2c_board_info i2c_devices[] = { - { - I2C_BOARD_INFO(SYNAPTICS_I2C_RMI_NAME, 0x20), - .platform_data = trout_ts_data, - .irq = TROUT_GPIO_TO_INT(TROUT_GPIO_TP_ATT_N) - }, - { - I2C_BOARD_INFO("elan-touch", 0x10), - .irq = TROUT_GPIO_TO_INT(TROUT_GPIO_TP_ATT_N), - }, - { - I2C_BOARD_INFO("akm8976", 0x1C), - .platform_data = &compass_platform_data, - .irq = TROUT_GPIO_TO_INT(TROUT_GPIO_COMPASS_IRQ), - }, - { - I2C_BOARD_INFO("pca963x", 0x62), - }, -#if defined(CONFIG_MSM_CAMERA) && defined(CONFIG_MT9T013) - { - I2C_BOARD_INFO("mt9t013", 0x6C), - }, -#endif -#ifdef CONFIG_SENSORS_MT9T013 - { - I2C_BOARD_INFO("mt9t013", 0x6C >> 1), - }, -#endif -}; - -static struct timed_gpio timed_gpios[] = { - { - .name = "vibrator", - .gpio = TROUT_GPIO_HAPTIC_PWM, - .max_timeout = 15000, - }, - { - .name = "flash", - .gpio = TROUT_GPIO_FLASH_EN, - .max_timeout = 400, - }, -}; - -static struct timed_gpio_platform_data timed_gpio_data = { - .num_gpios = ARRAY_SIZE(timed_gpios), - .gpios = timed_gpios, -}; - -static struct platform_device android_timed_gpios = { - .name = "timed-gpio", - .id = -1, - .dev = { - .platform_data = &timed_gpio_data, - }, -}; - -static struct gpio_led android_led_list[] = { - { - .name = "spotlight", - .gpio = TROUT_GPIO_SPOTLIGHT_EN, - }, - { - .name = "keyboard-backlight", - .gpio = TROUT_GPIO_QTKEY_LED_EN, - }, - { - .name = "button-backlight", - .gpio = TROUT_GPIO_UI_LED_EN, - }, -}; - -static struct gpio_led_platform_data android_leds_data = { - .num_leds = ARRAY_SIZE(android_led_list), - .leds = android_led_list, -}; - -static struct platform_device android_leds = { - .name = "leds-gpio", - .id = -1, - .dev = { - .platform_data = &android_leds_data, - }, -}; - -static struct gpio_switch_platform_data sd_door_switch_data = { - .name = "sd-door", - .gpio = TROUT_GPIO_SD_DOOR_N, - .state_on = "open", - .state_off = "closed", -}; - -static struct platform_device sd_door_switch = { - .name = "switch-gpio", - .id = -1, - .dev = { - .platform_data = &sd_door_switch_data, - }, -}; - -#ifdef CONFIG_HTC_HEADSET -static void h2w_config_cpld(int route) -{ - switch (route) { - case H2W_UART3: - gpio_set_value(TROUT_GPIO_H2W_SEL0, 0); - gpio_set_value(TROUT_GPIO_H2W_SEL1, 1); - break; - case H2W_GPIO: - gpio_set_value(TROUT_GPIO_H2W_SEL0, 0); - gpio_set_value(TROUT_GPIO_H2W_SEL1, 0); - break; - } -} - -static void h2w_init_cpld(void) -{ - h2w_config_cpld(H2W_UART3); - gpio_set_value(TROUT_GPIO_H2W_CLK_DIR, 0); - gpio_set_value(TROUT_GPIO_H2W_DAT_DIR, 0); -} - -static struct h2w_platform_data trout_h2w_data = { - .cable_in1 = TROUT_GPIO_CABLE_IN1, - .cable_in2 = TROUT_GPIO_CABLE_IN2, - .h2w_clk = TROUT_GPIO_H2W_CLK_GPI, - .h2w_data = TROUT_GPIO_H2W_DAT_GPI, - .debug_uart = H2W_UART3, - .config_cpld = h2w_config_cpld, - .init_cpld = h2w_init_cpld, -}; - -static struct platform_device trout_h2w = { - .name = "h2w", - .id = -1, - .dev = { - .platform_data = &trout_h2w_data, - }, -}; -#endif - -static void trout_phy_reset(void) -{ - gpio_set_value(TROUT_GPIO_USB_PHY_RST_N, 0); - mdelay(10); - gpio_set_value(TROUT_GPIO_USB_PHY_RST_N, 1); - mdelay(10); -} - -static void config_camera_on_gpios(void); -static void config_camera_off_gpios(void); - -#ifdef CONFIG_MSM_CAMERA -static struct msm_camera_device_platform_data msm_camera_device_data = { - .camera_gpio_on = config_camera_on_gpios, - .camera_gpio_off = config_camera_off_gpios, - .ioext.mdcphy = MSM_MDC_PHYS, - .ioext.mdcsz = MSM_MDC_SIZE, - .ioext.appphy = MSM_CLK_CTL_PHYS, - .ioext.appsz = MSM_CLK_CTL_SIZE, -}; - -#ifdef CONFIG_MT9T013 -static struct msm_camera_sensor_info msm_camera_sensor_mt9t013_data = { - .sensor_name = "mt9t013", - .sensor_reset = 108, - .sensor_pwd = 85, - .vcm_pwd = TROUT_GPIO_VCM_PWDN, - .pdata = &msm_camera_device_data, -}; - -static struct platform_device msm_camera_sensor_mt9t013 = { - .name = "msm_camera_mt9t013", - .dev = { - .platform_data = &msm_camera_sensor_mt9t013_data, - }, -}; -#endif -#endif - -#ifdef CONFIG_SENSORS_MT9T013 -static struct msm_camera_legacy_device_platform_data msm_camera_device_mt9t013 = { - .sensor_reset = 108, - .sensor_pwd = 85, - .vcm_pwd = TROUT_GPIO_VCM_PWDN, - .config_gpio_on = config_camera_on_gpios, - .config_gpio_off = config_camera_off_gpios, -}; - -static struct platform_device trout_camera = { - .name = "camera", - .dev = { - .platform_data = &msm_camera_device_mt9t013, - }, -}; -#endif - -static struct pwr_sink trout_pwrsink_table[] = { - { - .id = PWRSINK_AUDIO, - .ua_max = 90000, - }, - { - .id = PWRSINK_BACKLIGHT, - .ua_max = 128000, - }, - { - .id = PWRSINK_LED_BUTTON, - .ua_max = 17000, - }, - { - .id = PWRSINK_LED_KEYBOARD, - .ua_max = 22000, - }, - { - .id = PWRSINK_GP_CLK, - .ua_max = 30000, - }, - { - .id = PWRSINK_BLUETOOTH, - .ua_max = 15000, - }, - { - .id = PWRSINK_CAMERA, - .ua_max = 0, - }, - { - .id = PWRSINK_SDCARD, - .ua_max = 0, - }, - { - .id = PWRSINK_VIDEO, - .ua_max = 0, - }, - { - .id = PWRSINK_WIFI, - .ua_max = 200000, - }, - { - .id = PWRSINK_SYSTEM_LOAD, - .ua_max = 100000, - .percent_util = 38, - }, -}; - -static struct pwr_sink_platform_data trout_pwrsink_data = { - .num_sinks = ARRAY_SIZE(trout_pwrsink_table), - .sinks = trout_pwrsink_table, - .suspend_late = NULL, - .resume_early = NULL, - .suspend_early = NULL, - .resume_late = NULL, -}; - -static struct platform_device trout_pwr_sink = { - .name = "htc_pwrsink", - .id = -1, - .dev = { - .platform_data = &trout_pwrsink_data, - }, -}; - -static struct platform_device trout_rfkill = { - .name = "trout_rfkill", - .id = -1, -}; - -static struct msm_pmem_setting pmem_setting = { - .pmem_start = MSM_PMEM_MDP_BASE, - .pmem_size = MSM_PMEM_MDP_SIZE, - .pmem_adsp_start = MSM_PMEM_ADSP_BASE, - .pmem_adsp_size = MSM_PMEM_ADSP_SIZE, - .pmem_gpu0_start = MSM_PMEM_GPU0_BASE, - .pmem_gpu0_size = MSM_PMEM_GPU0_SIZE, - .pmem_gpu1_start = MSM_PMEM_GPU1_BASE, - .pmem_gpu1_size = MSM_PMEM_GPU1_SIZE, - .pmem_camera_start = MSM_PMEM_CAMERA_BASE, - .pmem_camera_size = MSM_PMEM_CAMERA_SIZE, - .ram_console_start = MSM_RAM_CONSOLE_BASE, - .ram_console_size = MSM_RAM_CONSOLE_SIZE, -}; - -#ifdef CONFIG_WIFI_CONTROL_FUNC -static struct platform_device trout_wifi = { - .name = "msm_wifi", - .id = 1, - .num_resources = 0, - .resource = NULL, - .dev = { - .platform_data = &trout_wifi_control, - }, -}; -#endif - -#define SND(num, desc) { .name = desc, .id = num } -static struct snd_endpoint snd_endpoints_list[] = { - SND(0, "HANDSET"), - SND(1, "SPEAKER"), - SND(2, "HEADSET"), - SND(3, "BT"), - SND(44, "BT_EC_OFF"), - SND(10, "HEADSET_AND_SPEAKER"), - SND(256, "CURRENT"), - - /* Bluetooth accessories. */ - - SND(12, "HTC BH S100"), - SND(13, "HTC BH M100"), - SND(14, "Motorola H500"), - SND(15, "Nokia HS-36W"), - SND(16, "PLT 510v.D"), - SND(17, "M2500 by Plantronics"), - SND(18, "Nokia HDW-3"), - SND(19, "HBH-608"), - SND(20, "HBH-DS970"), - SND(21, "i.Tech BlueBAND"), - SND(22, "Nokia BH-800"), - SND(23, "Motorola H700"), - SND(24, "HTC BH M200"), - SND(25, "Jabra JX10"), - SND(26, "320Plantronics"), - SND(27, "640Plantronics"), - SND(28, "Jabra BT500"), - SND(29, "Motorola HT820"), - SND(30, "HBH-IV840"), - SND(31, "6XXPlantronics"), - SND(32, "3XXPlantronics"), - SND(33, "HBH-PV710"), - SND(34, "Motorola H670"), - SND(35, "HBM-300"), - SND(36, "Nokia BH-208"), - SND(37, "Samsung WEP410"), - SND(38, "Jabra BT8010"), - SND(39, "Motorola S9"), - SND(40, "Jabra BT620s"), - SND(41, "Nokia BH-902"), - SND(42, "HBH-DS220"), - SND(43, "HBH-DS980"), -}; -#undef SND - -static struct msm_snd_endpoints trout_snd_endpoints = { - .endpoints = snd_endpoints_list, - .num = ARRAY_SIZE(snd_endpoints_list), -}; - -static struct platform_device trout_snd = { - .name = "msm_snd", - .id = -1, - .dev = { - .platform_data = &trout_snd_endpoints, - }, -}; - -static struct platform_device *devices[] __initdata = { - &msm_device_smd, - &msm_device_nand, - &msm_device_i2c, - &msm_device_uart1, -#if !defined(CONFIG_MSM_SERIAL_DEBUGGER) && !defined(CONFIG_TROUT_H2W) - &msm_device_uart3, -#endif -#ifdef CONFIG_SERIAL_MSM_HS - &msm_device_uart_dm1, -#endif - &trout_nav_device, - &trout_reset_keys_device, - &android_leds, - &sd_door_switch, - &android_timed_gpios, -#ifdef CONFIG_MT9T013 - &msm_camera_sensor_mt9t013, -#endif -#ifdef CONFIG_SENSORS_MT9T013 - &trout_camera, -#endif - &trout_rfkill, -#ifdef CONFIG_WIFI_CONTROL_FUNC - &trout_wifi, -#endif -#ifdef CONFIG_HTC_HEADSET - &trout_h2w, -#endif -#ifdef CONFIG_HTC_PWRSINK - &trout_pwr_sink, -#endif - &trout_snd, -}; - -extern struct sys_timer msm_timer; - -static void __init trout_init_irq(void) -{ - printk("trout_init_irq()\n"); - msm_init_irq(); -} - -static uint opt_disable_uart3; - -module_param_named(disable_uart3, opt_disable_uart3, uint, 0); - -static void trout_reset(void) -{ - gpio_set_value(TROUT_GPIO_PS_HOLD, 0); -} - -static uint32_t gpio_table[] = { - /* BLUETOOTH */ -#ifdef CONFIG_SERIAL_MSM_HS - PCOM_GPIO_CFG(43, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* RTS */ - PCOM_GPIO_CFG(44, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* CTS */ - PCOM_GPIO_CFG(45, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* RX */ - PCOM_GPIO_CFG(46, 3, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* TX */ -#else - PCOM_GPIO_CFG(43, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* RTS */ - PCOM_GPIO_CFG(44, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* CTS */ - PCOM_GPIO_CFG(45, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* RX */ - PCOM_GPIO_CFG(46, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* TX */ -#endif -}; - - -static uint32_t camera_off_gpio_table[] = { - /* CAMERA */ - PCOM_GPIO_CFG(2, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ - PCOM_GPIO_CFG(3, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ - PCOM_GPIO_CFG(4, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT4 */ - PCOM_GPIO_CFG(5, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT5 */ - PCOM_GPIO_CFG(6, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT6 */ - PCOM_GPIO_CFG(7, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT7 */ - PCOM_GPIO_CFG(8, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT8 */ - PCOM_GPIO_CFG(9, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT9 */ - PCOM_GPIO_CFG(10, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT10 */ - PCOM_GPIO_CFG(11, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT11 */ - PCOM_GPIO_CFG(12, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* PCLK */ - PCOM_GPIO_CFG(13, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* HSYNC_IN */ - PCOM_GPIO_CFG(14, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* VSYNC_IN */ - PCOM_GPIO_CFG(15, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* MCLK */ -}; - -static uint32_t camera_on_gpio_table[] = { - /* CAMERA */ - PCOM_GPIO_CFG(2, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT2 */ - PCOM_GPIO_CFG(3, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT3 */ - PCOM_GPIO_CFG(4, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT4 */ - PCOM_GPIO_CFG(5, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */ - PCOM_GPIO_CFG(6, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */ - PCOM_GPIO_CFG(7, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */ - PCOM_GPIO_CFG(8, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT8 */ - PCOM_GPIO_CFG(9, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT9 */ - PCOM_GPIO_CFG(10, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT10 */ - PCOM_GPIO_CFG(11, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT11 */ - PCOM_GPIO_CFG(12, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_16MA), /* PCLK */ - PCOM_GPIO_CFG(13, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */ - PCOM_GPIO_CFG(14, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */ - PCOM_GPIO_CFG(15, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), /* MCLK */ -}; - -static void config_gpio_table(uint32_t *table, int len) -{ - int n; - unsigned id; - for(n = 0; n < len; n++) { - id = table[n]; - msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); - } -} - -static void config_camera_on_gpios(void) -{ - config_gpio_table(camera_on_gpio_table, - ARRAY_SIZE(camera_on_gpio_table)); -} - -static void config_camera_off_gpios(void) -{ - config_gpio_table(camera_off_gpio_table, - ARRAY_SIZE(camera_off_gpio_table)); -} - -static void __init config_gpios(void) -{ - config_gpio_table(gpio_table, ARRAY_SIZE(gpio_table)); - config_camera_off_gpios(); -} - -static struct msm_acpu_clock_platform_data trout_clock_data = { - .acpu_switch_time_us = 20, - .max_speed_delta_khz = 256000, - .vdd_switch_time_us = 62, - .power_collapse_khz = 19200000, - .wait_for_irq_khz = 128000000, -}; - -#ifdef CONFIG_SERIAL_MSM_HS -static struct msm_serial_hs_platform_data msm_uart_dm1_pdata = { - .rx_wakeup_irq = MSM_GPIO_TO_INT(45), - .inject_rx_on_wakeup = 1, - .rx_to_inject = 0x32, -}; -#endif - -static void __init trout_init(void) -{ - int rc; - - printk("trout_init() revision=%d\n", system_rev); - - /* - * Setup common MSM GPIOS - */ - config_gpios(); - - msm_hw_reset_hook = trout_reset; - - gpio_direction_output(system_rev < 5 ? - TROUT_4_TP_LS_EN : TROUT_5_TP_LS_EN, 0); - - msm_acpu_clock_init(&trout_clock_data); - -#if defined(CONFIG_MSM_SERIAL_DEBUGGER) - if (!opt_disable_uart3) - msm_serial_debug_init(MSM_UART3_PHYS, INT_UART3, - &msm_device_uart3.dev, 1, - MSM_GPIO_TO_INT(86)); -#endif - - /* gpio_configure(108, IRQF_TRIGGER_LOW); */ - - /* put the AF VCM in powerdown mode to avoid noise */ - gpio_set_value(TROUT_GPIO_VCM_PWDN, 1); - mdelay(100); - - if (system_rev < 5) { - trout_x_axis.info.gpio = trout_4_x_axis_gpios; - trout_y_axis.info.gpio = trout_4_y_axis_gpios; - } - -#ifdef CONFIG_SERIAL_MSM_HS - msm_device_uart_dm1.dev.platform_data = &msm_uart_dm1_pdata; -#endif - msm_add_usb_devices(trout_phy_reset); - - msm_add_mem_devices(&pmem_setting); - - rc = trout_init_mmc(system_rev); - if (rc) - printk(KERN_CRIT "%s: MMC init failure (%d)\n", __func__, rc); - -#ifdef CONFIG_WIFI_MEM_PREALLOC - rc = trout_init_wifi_mem(); - if (rc) - printk(KERN_CRIT "%s: WiFi Memory init failure (%d)\n", __func__, rc); -#endif - - platform_add_devices(devices, ARRAY_SIZE(devices)); - i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices)); - - /* SD card door should wake the device */ - set_irq_wake(TROUT_GPIO_TO_INT(TROUT_GPIO_SD_DOOR_N), 1); -} - -static struct map_desc trout_io_desc[] __initdata = { - { - .virtual = TROUT_CPLD_BASE, - .pfn = __phys_to_pfn(TROUT_CPLD_START), - .length = TROUT_CPLD_SIZE, - .type = MT_DEVICE_NONSHARED - } -}; - -static void __init trout_fixup(struct machine_desc *desc, struct tag *tags, - char **cmdline, struct meminfo *mi) -{ - mi->nr_banks=1; - mi->bank[0].start = PHYS_OFFSET; - mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET); - mi->bank[0].size = (101*1024*1024); -} - -static void __init trout_map_io(void) -{ - msm_map_common_io(); - iotable_init(trout_io_desc, ARRAY_SIZE(trout_io_desc)); - msm_clock_init(); -} - -MACHINE_START(TROUT, "trout") -/* Maintainer: Brian Swetland */ -#ifdef CONFIG_MSM_DEBUG_UART - .phys_io = MSM_DEBUG_UART_PHYS, - .io_pg_offst = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc, -#endif - .boot_params = 0x10000100, - .fixup = trout_fixup, - .map_io = trout_map_io, - .init_irq = trout_init_irq, - .init_machine = trout_init, - .timer = &msm_timer, -MACHINE_END diff --git a/arch/arm/mach-msm/board-trout.h b/arch/arm/mach-msm/board-trout.h deleted file mode 100644 index 0a7d274c..00000000 --- a/arch/arm/mach-msm/board-trout.h +++ /dev/null @@ -1,162 +0,0 @@ -/* linux/arch/arm/mach-msm/board-trout.h -** Author: Brian Swetland -*/ -#ifndef __ARCH_ARM_MACH_MSM_BOARD_TROUT_H -#define __ARCH_ARM_MACH_MSM_BOARD_TROUT_H - -#include - -#define MSM_SMI_BASE 0x00000000 -#define MSM_SMI_SIZE 0x00800000 - -#define MSM_EBI_BASE 0x10000000 -#define MSM_EBI_SIZE 0x06e00000 - -#define MSM_PMEM_GPU0_BASE 0x00000000 -#define MSM_PMEM_GPU0_SIZE 0x00700000 - -#define MSM_PMEM_MDP_BASE 0x02000000 -#define MSM_PMEM_MDP_SIZE 0x00800000 - -#define MSM_PMEM_ADSP_BASE 0x02800000 -#define MSM_PMEM_ADSP_SIZE 0x00800000 - -#define MSM_PMEM_CAMERA_BASE 0x03000000 -#define MSM_PMEM_CAMERA_SIZE 0x00800000 - -#define MSM_FB_BASE 0x03800000 -#define MSM_FB_SIZE 0x00100000 - -#define MSM_LINUX_BASE MSM_EBI_BASE -#define MSM_LINUX_SIZE 0x06500000 - -#define MSM_PMEM_GPU1_SIZE 0x800000 -#define MSM_PMEM_GPU1_BASE MSM_RAM_CONSOLE_BASE - MSM_PMEM_GPU1_SIZE - -#define MSM_RAM_CONSOLE_BASE MSM_EBI_BASE + 0x6d00000 -#define MSM_RAM_CONSOLE_SIZE 128 * SZ_1K - -#if (MSM_FB_BASE + MSM_FB_SIZE) >= (MSM_PMEM_GPU1_BASE) -#error invalid memory map -#endif - -#define DECLARE_MSM_IOMAP -#include - -#define TROUT_4_BALL_UP_0 1 -#define TROUT_4_BALL_LEFT_0 18 -#define TROUT_4_BALL_DOWN_0 57 -#define TROUT_4_BALL_RIGHT_0 91 - -#define TROUT_5_BALL_UP_0 94 -#define TROUT_5_BALL_LEFT_0 18 -#define TROUT_5_BALL_DOWN_0 90 -#define TROUT_5_BALL_RIGHT_0 19 - -#define TROUT_POWER_KEY 20 - -#define TROUT_4_TP_LS_EN 19 -#define TROUT_5_TP_LS_EN 1 - -#define TROUT_CPLD_BASE 0xFA000000 -#define TROUT_CPLD_START 0x98000000 -#define TROUT_CPLD_SIZE SZ_4K - -#define TROUT_GPIO_CABLE_IN1 (83) -#define TROUT_GPIO_CABLE_IN2 (49) - -#define TROUT_GPIO_START (128) - -#define TROUT_GPIO_INT_MASK0_REG (0x0c) -#define TROUT_GPIO_INT_STAT0_REG (0x0e) -#define TROUT_GPIO_INT_MASK1_REG (0x14) -#define TROUT_GPIO_INT_STAT1_REG (0x10) - -#define TROUT_GPIO_HAPTIC_PWM (28) -#define TROUT_GPIO_PS_HOLD (25) - -#define TROUT_GPIO_MISC2_BASE (TROUT_GPIO_START + 0x00) -#define TROUT_GPIO_MISC3_BASE (TROUT_GPIO_START + 0x08) -#define TROUT_GPIO_MISC4_BASE (TROUT_GPIO_START + 0x10) -#define TROUT_GPIO_MISC5_BASE (TROUT_GPIO_START + 0x18) -#define TROUT_GPIO_INT2_BASE (TROUT_GPIO_START + 0x20) -#define TROUT_GPIO_MISC1_BASE (TROUT_GPIO_START + 0x28) -#define TROUT_GPIO_VIRTUAL_BASE (TROUT_GPIO_START + 0x30) -#define TROUT_GPIO_INT5_BASE (TROUT_GPIO_START + 0x48) - -#define TROUT_GPIO_CHARGER_EN (TROUT_GPIO_MISC2_BASE + 0) -#define TROUT_GPIO_ISET (TROUT_GPIO_MISC2_BASE + 1) -#define TROUT_GPIO_H2W_DAT_DIR (TROUT_GPIO_MISC2_BASE + 2) -#define TROUT_GPIO_H2W_CLK_DIR (TROUT_GPIO_MISC2_BASE + 3) -#define TROUT_GPIO_H2W_DAT_GPO (TROUT_GPIO_MISC2_BASE + 4) -#define TROUT_GPIO_H2W_CLK_GPO (TROUT_GPIO_MISC2_BASE + 5) -#define TROUT_GPIO_H2W_SEL0 (TROUT_GPIO_MISC2_BASE + 6) -#define TROUT_GPIO_H2W_SEL1 (TROUT_GPIO_MISC2_BASE + 7) - -#define TROUT_GPIO_SPOTLIGHT_EN (TROUT_GPIO_MISC3_BASE + 0) -#define TROUT_GPIO_FLASH_EN (TROUT_GPIO_MISC3_BASE + 1) -#define TROUT_GPIO_I2C_PULL (TROUT_GPIO_MISC3_BASE + 2) -#define TROUT_GPIO_TP_I2C_PULL (TROUT_GPIO_MISC3_BASE + 3) -#define TROUT_GPIO_TP_EN (TROUT_GPIO_MISC3_BASE + 4) -#define TROUT_GPIO_JOG_EN (TROUT_GPIO_MISC3_BASE + 5) -#define TROUT_GPIO_UI_LED_EN (TROUT_GPIO_MISC3_BASE + 6) -#define TROUT_GPIO_QTKEY_LED_EN (TROUT_GPIO_MISC3_BASE + 7) - -#define TROUT_GPIO_VCM_PWDN (TROUT_GPIO_MISC4_BASE + 0) -#define TROUT_GPIO_USB_H2W_SW (TROUT_GPIO_MISC4_BASE + 1) -#define TROUT_GPIO_COMPASS_RST_N (TROUT_GPIO_MISC4_BASE + 2) -#define TROUT_GPIO_HAPTIC_EN_UP (TROUT_GPIO_MISC4_BASE + 3) -#define TROUT_GPIO_HAPTIC_EN_MAIN (TROUT_GPIO_MISC4_BASE + 4) -#define TROUT_GPIO_USB_PHY_RST_N (TROUT_GPIO_MISC4_BASE + 5) -#define TROUT_GPIO_WIFI_PA_RESETX (TROUT_GPIO_MISC4_BASE + 6) -#define TROUT_GPIO_WIFI_EN (TROUT_GPIO_MISC4_BASE + 7) - -#define TROUT_GPIO_BT_32K_EN (TROUT_GPIO_MISC5_BASE + 0) -#define TROUT_GPIO_MAC_32K_EN (TROUT_GPIO_MISC5_BASE + 1) -#define TROUT_GPIO_MDDI_32K_EN (TROUT_GPIO_MISC5_BASE + 2) -#define TROUT_GPIO_COMPASS_32K_EN (TROUT_GPIO_MISC5_BASE + 3) - -#define TROUT_GPIO_NAVI_ACT_N (TROUT_GPIO_INT2_BASE + 0) -#define TROUT_GPIO_COMPASS_IRQ (TROUT_GPIO_INT2_BASE + 1) -#define TROUT_GPIO_SLIDING_DET (TROUT_GPIO_INT2_BASE + 2) -#define TROUT_GPIO_AUD_HSMIC_DET_N (TROUT_GPIO_INT2_BASE + 3) -#define TROUT_GPIO_SD_DOOR_N (TROUT_GPIO_INT2_BASE + 4) -#define TROUT_GPIO_CAM_BTN_STEP1_N (TROUT_GPIO_INT2_BASE + 5) -#define TROUT_GPIO_CAM_BTN_STEP2_N (TROUT_GPIO_INT2_BASE + 6) -#define TROUT_GPIO_TP_ATT_N (TROUT_GPIO_INT2_BASE + 7) -#define TROUT_GPIO_BANK0_FIRST_INT_SOURCE (TROUT_GPIO_NAVI_ACT_N) -#define TROUT_GPIO_BANK0_LAST_INT_SOURCE (TROUT_GPIO_TP_ATT_N) - -#define TROUT_GPIO_H2W_DAT_GPI (TROUT_GPIO_MISC1_BASE + 0) -#define TROUT_GPIO_H2W_CLK_GPI (TROUT_GPIO_MISC1_BASE + 1) -#define TROUT_GPIO_CPLD128_VER_0 (TROUT_GPIO_MISC1_BASE + 4) -#define TROUT_GPIO_CPLD128_VER_1 (TROUT_GPIO_MISC1_BASE + 5) -#define TROUT_GPIO_CPLD128_VER_2 (TROUT_GPIO_MISC1_BASE + 6) -#define TROUT_GPIO_CPLD128_VER_3 (TROUT_GPIO_MISC1_BASE + 7) - -#define TROUT_GPIO_SDMC_CD_N (TROUT_GPIO_VIRTUAL_BASE + 0) -#define TROUT_GPIO_END (TROUT_GPIO_SDMC_CD_N) -#define TROUT_GPIO_BANK1_FIRST_INT_SOURCE (TROUT_GPIO_SDMC_CD_N) -#define TROUT_GPIO_BANK1_LAST_INT_SOURCE (TROUT_GPIO_SDMC_CD_N) - -#define TROUT_GPIO_VIRTUAL_TO_REAL_OFFSET \ - (TROUT_GPIO_INT5_BASE - TROUT_GPIO_VIRTUAL_BASE) - -#define TROUT_INT_START (NR_MSM_IRQS + NR_GPIO_IRQS) -#define TROUT_INT_BANK0_COUNT (8) -#define TROUT_INT_BANK1_START (TROUT_INT_START + TROUT_INT_BANK0_COUNT) -#define TROUT_INT_BANK1_COUNT (1) -#define TROUT_INT_END (TROUT_INT_START + TROUT_INT_BANK0_COUNT + \ - TROUT_INT_BANK1_COUNT - 1) -#define TROUT_GPIO_TO_INT(n) (((n) <= TROUT_GPIO_BANK0_LAST_INT_SOURCE) ? \ - (TROUT_INT_START - TROUT_GPIO_BANK0_FIRST_INT_SOURCE + (n)) : \ - (TROUT_INT_BANK1_START - TROUT_GPIO_BANK1_FIRST_INT_SOURCE + (n))) - -#define TROUT_INT_TO_BANK(n) ((n - TROUT_INT_START) / TROUT_INT_BANK0_COUNT) -#define TROUT_INT_TO_MASK(n) (1U << ((n - TROUT_INT_START) & 7)) -#define TROUT_BANK_TO_MASK_REG(bank) \ - (bank ? TROUT_GPIO_INT_MASK1_REG : TROUT_GPIO_INT_MASK0_REG) -#define TROUT_BANK_TO_STAT_REG(bank) \ - (bank ? TROUT_GPIO_INT_STAT1_REG : TROUT_GPIO_INT_STAT0_REG) - -#endif /* GUARD */ diff --git a/arch/arm/mach-msm/devices_htc.c b/arch/arm/mach-msm/devices_htc.c deleted file mode 100644 index 6839c0d2..00000000 --- a/arch/arm/mach-msm/devices_htc.c +++ /dev/null @@ -1,504 +0,0 @@ -/* linux/arch/arm/mach-msm/devices.c - * - * Copyright (C) 2008 Google, Inc. - * Copyright (C) 2007-2009 HTC Corporation. - * Author: Thomas Tsai - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include - -#include -#include -#include -#include "gpio_chip.h" -#include "devices.h" -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static char *df_serialno = "000000000000"; - -#if 0 -struct platform_device *devices[] __initdata = { - &msm_device_nand, - &msm_device_smd, - &msm_device_i2c, -}; - -void __init msm_add_devices(void) -{ - platform_add_devices(devices, ARRAY_SIZE(devices)); -} -#endif - -#define HSUSB_API_INIT_PHY_PROC 2 -#define HSUSB_API_PROG 0x30000064 -#define HSUSB_API_VERS MSM_RPC_VERS(1,1) - -static void internal_phy_reset(void) -{ - struct msm_rpc_endpoint *usb_ep; - int rc; - struct hsusb_phy_start_req { - struct rpc_request_hdr hdr; - } req; - - printk(KERN_INFO "msm_hsusb_phy_reset\n"); - - usb_ep = msm_rpc_connect(HSUSB_API_PROG, HSUSB_API_VERS, 0); - if (IS_ERR(usb_ep)) { - printk(KERN_ERR "%s: init rpc failed! error: %ld\n", - __func__, PTR_ERR(usb_ep)); - goto close; - } - rc = msm_rpc_call(usb_ep, HSUSB_API_INIT_PHY_PROC, - &req, sizeof(req), 5 * HZ); - if (rc < 0) - printk(KERN_ERR "%s: rpc call failed! (%d)\n", __func__, rc); - -close: - msm_rpc_close(usb_ep); -} - -/* adjust eye diagram, disable vbusvalid interrupts */ -static int hsusb_phy_init_seq[] = { 0x40, 0x31, 0x1D, 0x0D, 0x1D, 0x10, -1 }; - -struct msm_hsusb_platform_data msm_hsusb_pdata = { - .phy_reset = internal_phy_reset, - .phy_init_seq = hsusb_phy_init_seq, - .usb_connected = notify_usb_connected, -}; - -static struct usb_mass_storage_platform_data mass_storage_pdata = { - .nluns = 1, - .vendor = "HTC ", - .product = "Android Phone ", - .release = 0x0100, -}; - -static struct platform_device usb_mass_storage_device = { - .name = "usb_mass_storage", - .id = -1, - .dev = { - .platform_data = &mass_storage_pdata, - }, -}; - -#ifdef CONFIG_USB_ANDROID_RNDIS -static struct usb_ether_platform_data rndis_pdata = { - /* ethaddr is filled by board_serialno_setup */ - .vendorID = 0x0bb4, - .vendorDescr = "HTC", -}; - -static struct platform_device rndis_device = { - .name = "rndis", - .id = -1, - .dev = { - .platform_data = &rndis_pdata, - }, -}; -#endif - -static char *usb_functions_ums[] = { - "usb_mass_storage", -}; - -static char *usb_functions_ums_adb[] = { - "usb_mass_storage", - "adb", -}; - -static char *usb_functions_rndis[] = { - "rndis", -}; - -static char *usb_functions_rndis_adb[] = { - "rndis", - "adb", -}; - -static char *usb_functions_all[] = { -#ifdef CONFIG_USB_ANDROID_RNDIS - "rndis", -#endif - "usb_mass_storage", - "adb", -#ifdef CONFIG_USB_ANDROID_ACM - "acm", -#endif -}; - -static struct android_usb_product usb_products[] = { - { - .product_id = 0x0c01, - .num_functions = ARRAY_SIZE(usb_functions_ums), - .functions = usb_functions_ums, - }, - { - .product_id = 0x0c02, - .num_functions = ARRAY_SIZE(usb_functions_ums_adb), - .functions = usb_functions_ums_adb, - }, - { - .product_id = 0x0ffe, - .num_functions = ARRAY_SIZE(usb_functions_rndis), - .functions = usb_functions_rndis, - }, - { - .product_id = 0x0ffc, - .num_functions = ARRAY_SIZE(usb_functions_rndis_adb), - .functions = usb_functions_rndis_adb, - }, -}; - -static struct android_usb_platform_data android_usb_pdata = { - .vendor_id = 0x0bb4, - .product_id = 0x0c01, - .version = 0x0100, - .product_name = "Android Phone", - .manufacturer_name = "HTC", - .num_products = ARRAY_SIZE(usb_products), - .products = usb_products, - .num_functions = ARRAY_SIZE(usb_functions_all), - .functions = usb_functions_all, -}; - -static struct platform_device android_usb_device = { - .name = "android_usb", - .id = -1, - .dev = { - .platform_data = &android_usb_pdata, - }, -}; - -void __init msm_add_usb_devices(void (*phy_reset) (void)) -{ - /* setup */ - if (phy_reset) - msm_hsusb_pdata.phy_reset = phy_reset; - msm_device_hsusb.dev.platform_data = &msm_hsusb_pdata; - platform_device_register(&msm_device_hsusb); -#ifdef CONFIG_USB_ANDROID_RNDIS - platform_device_register(&rndis_device); -#endif - platform_device_register(&usb_mass_storage_device); - platform_device_register(&android_usb_device); -} - -static struct android_pmem_platform_data pmem_pdata = { - .name = "pmem", - .no_allocator = 1, - .cached = 1, -}; - -static struct android_pmem_platform_data pmem_adsp_pdata = { - .name = "pmem_adsp", - .no_allocator = 0, - .cached = 0, -}; - -static struct android_pmem_platform_data pmem_camera_pdata = { - .name = "pmem_camera", - .no_allocator = 1, - .cached = 0, -}; - -static struct platform_device pmem_device = { - .name = "android_pmem", - .id = 0, - .dev = { .platform_data = &pmem_pdata }, -}; - -static struct platform_device pmem_adsp_device = { - .name = "android_pmem", - .id = 1, - .dev = { .platform_data = &pmem_adsp_pdata }, -}; - -static struct platform_device pmem_camera_device = { - .name = "android_pmem", - .id = 2, - .dev = { .platform_data = &pmem_camera_pdata }, -}; - -static struct resource ram_console_resource[] = { - { - .flags = IORESOURCE_MEM, - } -}; - -static struct platform_device ram_console_device = { - .name = "ram_console", - .id = -1, - .num_resources = ARRAY_SIZE(ram_console_resource), - .resource = ram_console_resource, -}; - -static struct resource resources_hw3d[] = { - { - .start = 0xA0000000, - .end = 0xA00fffff, - .flags = IORESOURCE_MEM, - .name = "regs", - }, - { - .flags = IORESOURCE_MEM, - .name = "smi", - }, - { - .flags = IORESOURCE_MEM, - .name = "ebi", - }, - { - .start = INT_GRAPHICS, - .end = INT_GRAPHICS, - .flags = IORESOURCE_IRQ, - .name = "gfx", - }, -}; - -static struct platform_device hw3d_device = { - .name = "msm_hw3d", - .id = 0, - .num_resources = ARRAY_SIZE(resources_hw3d), - .resource = resources_hw3d, -}; - -void __init msm_add_mem_devices(struct msm_pmem_setting *setting) -{ - if (setting->pmem_size) { - pmem_pdata.start = setting->pmem_start; - pmem_pdata.size = setting->pmem_size; - platform_device_register(&pmem_device); - } - - if (setting->pmem_adsp_size) { - pmem_adsp_pdata.start = setting->pmem_adsp_start; - pmem_adsp_pdata.size = setting->pmem_adsp_size; - platform_device_register(&pmem_adsp_device); - } - - if (setting->pmem_gpu0_size && setting->pmem_gpu1_size) { - struct resource *res; - - res = platform_get_resource_byname(&hw3d_device, IORESOURCE_MEM, - "smi"); - res->start = setting->pmem_gpu0_start; - res->end = res->start + setting->pmem_gpu0_size - 1; - - res = platform_get_resource_byname(&hw3d_device, IORESOURCE_MEM, - "ebi"); - res->start = setting->pmem_gpu1_start; - res->end = res->start + setting->pmem_gpu1_size - 1; - platform_device_register(&hw3d_device); - } - - if (setting->pmem_camera_size) { - pmem_camera_pdata.start = setting->pmem_camera_start; - pmem_camera_pdata.size = setting->pmem_camera_size; - platform_device_register(&pmem_camera_device); - } - - if (setting->ram_console_size) { - ram_console_resource[0].start = setting->ram_console_start; - ram_console_resource[0].end = setting->ram_console_start - + setting->ram_console_size - 1; - platform_device_register(&ram_console_device); - } -} - -#define PM_LIBPROG 0x30000061 -#if (CONFIG_MSM_AMSS_VERSION == 6220) || (CONFIG_MSM_AMSS_VERSION == 6225) -#define PM_LIBVERS 0xfb837d0b -#else -#define PM_LIBVERS 0x10001 -#endif - -#if 0 -static struct platform_device *msm_serial_devices[] __initdata = { - &msm_device_uart1, - &msm_device_uart2, - &msm_device_uart3, - #ifdef CONFIG_SERIAL_MSM_HS - &msm_device_uart_dm1, - &msm_device_uart_dm2, - #endif -}; - -int __init msm_add_serial_devices(unsigned num) -{ - if (num > MSM_SERIAL_NUM) - return -EINVAL; - - return platform_device_register(msm_serial_devices[num]); -} -#endif - -#define ATAG_SMI 0x4d534D71 -/* setup calls mach->fixup, then parse_tags, parse_cmdline - * We need to setup meminfo in mach->fixup, so this function - * will need to traverse each tag to find smi tag. - */ -int __init parse_tag_smi(const struct tag *tags) -{ - int smi_sz = 0, find = 0; - struct tag *t = (struct tag *)tags; - - for (; t->hdr.size; t = tag_next(t)) { - if (t->hdr.tag == ATAG_SMI) { - printk(KERN_DEBUG "find the smi tag\n"); - find = 1; - break; - } - } - if (!find) - return -1; - - printk(KERN_DEBUG "parse_tag_smi: smi size = %d\n", t->u.mem.size); - smi_sz = t->u.mem.size; - return smi_sz; -} -__tagtable(ATAG_SMI, parse_tag_smi); - - -#define ATAG_HWID 0x4d534D72 -int __init parse_tag_hwid(const struct tag *tags) -{ - int hwid = 0, find = 0; - struct tag *t = (struct tag *)tags; - - for (; t->hdr.size; t = tag_next(t)) { - if (t->hdr.tag == ATAG_HWID) { - printk(KERN_DEBUG "find the hwid tag\n"); - find = 1; - break; - } - } - - if (find) - hwid = t->u.revision.rev; - printk(KERN_DEBUG "parse_tag_hwid: hwid = 0x%x\n", hwid); - return hwid; -} -__tagtable(ATAG_HWID, parse_tag_hwid); - -#define ATAG_SKUID 0x4d534D73 -int __init parse_tag_skuid(const struct tag *tags) -{ - int skuid = 0, find = 0; - struct tag *t = (struct tag *)tags; - - for (; t->hdr.size; t = tag_next(t)) { - if (t->hdr.tag == ATAG_SKUID) { - printk(KERN_DEBUG "find the skuid tag\n"); - find = 1; - break; - } - } - - if (find) - skuid = t->u.revision.rev; - printk(KERN_DEBUG "parse_tag_skuid: hwid = 0x%x\n", skuid); - return skuid; -} -__tagtable(ATAG_SKUID, parse_tag_skuid); - -#define ATAG_ENGINEERID 0x4d534D75 -int __init parse_tag_engineerid(const struct tag *tags) -{ - int engineerid = 0, find = 0; - struct tag *t = (struct tag *)tags; - - for (; t->hdr.size; t = tag_next(t)) { - if (t->hdr.tag == ATAG_ENGINEERID) { - printk(KERN_DEBUG "find the engineer tag\n"); - find = 1; - break; - } - } - - if (find) - engineerid = t->u.revision.rev; - printk(KERN_DEBUG "parse_tag_engineerid: hwid = 0x%x\n", engineerid); - return engineerid; -} -__tagtable(ATAG_ENGINEERID, parse_tag_engineerid); - -static int mfg_mode; -int __init board_mfg_mode_init(char *s) -{ - if (!strcmp(s, "normal")) - mfg_mode = 0; - else if (!strcmp(s, "factory2")) - mfg_mode = 1; - else if (!strcmp(s, "recovery")) - mfg_mode = 2; - else if (!strcmp(s, "charge")) - mfg_mode = 3; - else if (!strcmp(s, "power_test")) - mfg_mode = 4; - else if (!strcmp(s, "offmode_charging")) - mfg_mode = 5; - - return 1; -} -__setup("androidboot.mode=", board_mfg_mode_init); - - -int board_mfg_mode(void) -{ - return mfg_mode; -} - -static int __init board_serialno_setup(char *serialno) -{ -#ifdef CONFIG_USB_ANDROID_RNDIS - int i; - char *src; -#endif - char *str; - - /* use default serial number when mode is factory2 */ - if (mfg_mode == 1 || !strlen(serialno)) - str = df_serialno; - else - str = serialno; - -#ifdef CONFIG_USB_ANDROID_RNDIS - /* create a fake MAC address from our serial number. - * first byte is 0x02 to signify locally administered. - */ - rndis_pdata.ethaddr[0] = 0x02; - src = str; - for (i = 0; *src; i++) { - /* XOR the USB serial across the remaining bytes */ - rndis_pdata.ethaddr[i % (ETH_ALEN - 1) + 1] ^= *src++; - } -#endif - android_usb_pdata.serial_number = str; - return 1; -} - -__setup("androidboot.serialno=", board_serialno_setup); diff --git a/arch/arm/mach-msm/fish_battery.c b/arch/arm/mach-msm/fish_battery.c deleted file mode 100644 index 19fbb91f..00000000 --- a/arch/arm/mach-msm/fish_battery.c +++ /dev/null @@ -1,145 +0,0 @@ -/* arch/arm/mach-msm/fish_battery.c - * - * Copyright (C) 2008 Google, Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * based on: arch/arm/mach-msm/htc_battery.c - */ - -#include -#include -#include -#include -#include -#include - -static enum power_supply_property fish_battery_properties[] = { - POWER_SUPPLY_PROP_STATUS, - POWER_SUPPLY_PROP_HEALTH, - POWER_SUPPLY_PROP_PRESENT, - POWER_SUPPLY_PROP_TECHNOLOGY, - POWER_SUPPLY_PROP_CAPACITY, -}; - -static enum power_supply_property fish_power_properties[] = { - POWER_SUPPLY_PROP_ONLINE, -}; - -static char *supply_list[] = { - "battery", -}; - -static int fish_power_get_property(struct power_supply *psy, - enum power_supply_property psp, - union power_supply_propval *val); - -static int fish_battery_get_property(struct power_supply *psy, - enum power_supply_property psp, - union power_supply_propval *val); - -static struct power_supply fish_power_supplies[] = { - { - .name = "battery", - .type = POWER_SUPPLY_TYPE_BATTERY, - .properties = fish_battery_properties, - .num_properties = ARRAY_SIZE(fish_battery_properties), - .get_property = fish_battery_get_property, - }, - { - .name = "ac", - .type = POWER_SUPPLY_TYPE_MAINS, - .supplied_to = supply_list, - .num_supplicants = ARRAY_SIZE(supply_list), - .properties = fish_power_properties, - .num_properties = ARRAY_SIZE(fish_power_properties), - .get_property = fish_power_get_property, - }, -}; - -static int fish_power_get_property(struct power_supply *psy, - enum power_supply_property psp, - union power_supply_propval *val) -{ - switch (psp) { - case POWER_SUPPLY_PROP_ONLINE: - if (psy->type == POWER_SUPPLY_TYPE_MAINS) - val->intval = 1; - else - val->intval = 0; - break; - default: - return -EINVAL; - } - - return 0; -} - -static int fish_battery_get_property(struct power_supply *psy, - enum power_supply_property psp, - union power_supply_propval *val) -{ - switch (psp) { - case POWER_SUPPLY_PROP_STATUS: - val->intval = POWER_SUPPLY_STATUS_FULL; - break; - case POWER_SUPPLY_PROP_HEALTH: - val->intval = POWER_SUPPLY_HEALTH_GOOD; - break; - case POWER_SUPPLY_PROP_PRESENT: - val->intval = 1; - break; - case POWER_SUPPLY_PROP_TECHNOLOGY: - val->intval = POWER_SUPPLY_TECHNOLOGY_UNKNOWN; - break; - case POWER_SUPPLY_PROP_CAPACITY: - val->intval = 100; - break; - default: - return -EINVAL; - } - - return 0; -} - -static int fish_battery_probe(struct platform_device *pdev) -{ - int i; - int rc; - - /* init power supplier framework */ - for (i = 0; i < ARRAY_SIZE(fish_power_supplies); i++) { - rc = power_supply_register(&pdev->dev, &fish_power_supplies[i]); - if (rc) - pr_err("%s: Failed to register power supply (%d)\n", - __func__, rc); - } - - return 0; -} - -static struct platform_driver fish_battery_driver = { - .probe = fish_battery_probe, - .driver = { - .name = "fish_battery", - .owner = THIS_MODULE, - }, -}; - -static int __init fish_battery_init(void) -{ - platform_driver_register(&fish_battery_driver); - return 0; -} - -module_init(fish_battery_init); -MODULE_DESCRIPTION("Qualcomm fish battery driver"); -MODULE_LICENSE("GPL"); -