summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkyoungheon <kyoungheon@samsung.com>2010-08-18 15:07:38 -0700
committerkyoungheon <kyoungheon@samsung.com>2010-08-18 15:07:38 -0700
commitc46b48b83111bb9ca7601ea13b08fae063775b4b (patch)
treef3fbf580482e7dbf9e5a0b5e3e5de5b04adc9784
parent0600d5a2e2912b4174f0ebf27f0c19ef6b2412a7 (diff)
downloaddevice_samsung_crespo-c46b48b83111bb9ca7601ea13b08fae063775b4b.zip
device_samsung_crespo-c46b48b83111bb9ca7601ea13b08fae063775b4b.tar.gz
device_samsung_crespo-c46b48b83111bb9ca7601ea13b08fae063775b4b.tar.bz2
Initial import of crespo device specific files for platform build
Change-Id: I839734650a3f82a8fc735a91c9add6e1881d567f
-rwxr-xr-xAndroid.mk1
-rwxr-xr-xAndroidBoard.mk58
-rwxr-xr-xAndroidProducts.mk29
-rwxr-xr-xBoardConfig.mk53
-rw-r--r--asound.conf705
-rw-r--r--crespo.mk33
-rw-r--r--egl.cfg1
-rw-r--r--init.lowmem.rc19
-rwxr-xr-xinit.rc413
-rwxr-xr-xinit.smdkc110.rc13
-rwxr-xr-xmelfas-touchkey.kcm64
-rwxr-xr-xmelfas-touchkey.kl4
-rw-r--r--qwerty.kl90
-rw-r--r--s3c-keypad.kcm64
-rw-r--r--s3c-keypad.kl11
-rw-r--r--system.prop7
-rw-r--r--vold.conf10
-rw-r--r--vold.fstab24
18 files changed, 1599 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk
new file mode 100755
index 0000000..5053e7d
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1 @@
+include $(call all-subdir-makefiles)
diff --git a/AndroidBoard.mk b/AndroidBoard.mk
new file mode 100755
index 0000000..8240cbb
--- /dev/null
+++ b/AndroidBoard.mk
@@ -0,0 +1,58 @@
+# Copyright (C) 2007 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+target_init_rc_file := $(TARGET_ROOT_OUT)/init.rc
+$(target_init_rc_file) : $(LOCAL_PATH)/init.rc | $(ACP)
+ $(transform-prebuilt-to-target)
+ALL_PREBUILT += $(target_init_rc_file)
+
+target_hw_init_rc_file := $(TARGET_ROOT_OUT)/init.smdkc110.rc
+$(target_hw_init_rc_file) : $(LOCAL_PATH)/init.smdkc110.rc | $(ACP)
+ $(transform-prebuilt-to-target)
+ALL_PREBUILT += $(target_hw_init_rc_file)
+
+$(INSTALLED_RAMDISK_TARGET): $(target_init_rc_file) $(target_hw_init_rc_file)
+
+PRODUCT_COPY_FILES += \
+ device/samsung/crespo/asound.conf:system/etc/asound.conf \
+ device/samsung/crespo/vold.conf:system/etc/vold.conf \
+ device/samsung/crespo/vold.fstab:system/etc/vold.fstab
+
+ifeq ($(BOARD_USES_HGL),true)
+PRODUCT_COPY_FILES += \
+ device/samsung/crespo/egl.cfg:system/lib/egl/egl.cfg \
+ vendor/samsung/crespo/pvrsrvkm.ko:root/modules/pvrsrvkm.ko \
+ vendor/samsung/crespo/s3c_lcd.ko:root/modules/s3c_lcd.ko \
+ vendor/samsung/crespo/s3c_bc.ko:root/modules/s3c_bc.ko \
+ vendor/samsung/crespo/gralloc.s5pc110.so:system/lib/hw/gralloc.s5pc110.so \
+ vendor/samsung/crespo/libEGL_POWERVR_SGX540_120.so:system/lib/egl/libEGL_POWERVR_SGX540_120.so \
+ vendor/samsung/crespo/libGLESv1_CM_POWERVR_SGX540_120.so:system/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so \
+ vendor/samsung/crespo/libGLESv2_POWERVR_SGX540_120.so:system/lib/egl/libGLESv2_POWERVR_SGX540_120.so \
+ vendor/samsung/crespo/libsrv_um.so:system/lib/libsrv_um.so \
+ vendor/samsung/crespo/libusc.so:system/lib/libusc.so \
+ vendor/samsung/crespo/libsrv_init.so:system/lib/libsrv_init.so \
+ vendor/samsung/crespo/libIMGegl.so:system/lib/libIMGegl.so \
+ vendor/samsung/crespo/libpvr2d.so:system/lib/libpvr2d.so \
+ vendor/samsung/crespo/libPVRScopeServices.so:system/lib/libPVRScopeServices.so \
+ vendor/samsung/crespo/libglslcompiler.so:system/lib/libglslcompiler.so \
+ vendor/samsung/crespo/libpvrANDROID_WSEGL.so:system/lib/libpvrANDROID_WSEGL.so \
+ vendor/samsung/crespo/pvrsrvinit:system/bin/pvrsrvinit
+endif
+
+# to build the bootloader you need the common boot stuff,
+# the architecture specific stuff, and the board specific stuff
+# include bootloader/legacy/Android.mk
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100755
index 0000000..0d43a56
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,29 @@
+#
+# Copyright (C) 2008 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# This file should set PRODUCT_MAKEFILES to a list of product makefiles
+# to expose to the build system. LOCAL_DIR will already be set to
+# the directory containing this file.
+#
+# This file may not rely on the value of any variable other than
+# LOCAL_DIR; do not use any conditionals, and do not look up the
+# value of any variable that isn't set in this file or in a file that
+# it includes.
+#
+
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/crespo.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100755
index 0000000..c33496c
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,53 @@
+# Copyright (C) 2007 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# config.mk
+#
+# Product-specific compile-time definitions.
+#
+
+TARGET_CPU_ABI := armeabi-v7a
+TARGET_CPU_ABI2 := armeabi
+
+TARGET_NO_BOOTLOADER := true
+TARGET_NO_KERNEL := true
+TARGET_NO_RADIOIMAGE := true
+TARGET_PROVIDES_INIT_RC := true
+TARGET_PROVIDES_INIT_TARGET_RC := true
+TARGET_BOARD_PLATFORM := s5pc110
+TARGET_BOOTLOADER_BOARD_NAME := smdkc110
+
+TARGET_SEC_INTERNAL_STORAGE := false
+
+# Enable NEON feature
+TARGET_ARCH_VARIANT := armv7-a-neon
+ARCH_ARM_HAVE_TLS_REGISTER := true
+
+# Enable JIT
+WITH_JIT := true
+
+BOARD_USES_GENERIC_AUDIO := true
+ifeq ($(BOARD_USES_GENERIC_AUDIO),false)
+BOARD_USES_ALSA_AUDIO := true
+BUILD_WITH_ALSA_UTILS := true
+endif
+
+USE_CAMERA_STUB := true
+ifeq ($(USE_CAMERA_STUB),false)
+BOARD_CAMERA_LIBRARIES := libcamera
+endif
+
+BOARD_USES_HGL := true
+
+BOARD_NAND_PAGE_SIZE := 4096 -s 128
diff --git a/asound.conf b/asound.conf
new file mode 100644
index 0000000..4213f31
--- /dev/null
+++ b/asound.conf
@@ -0,0 +1,705 @@
+# Android ALSA configuration file for the AK4671 audio.
+
+
+########################################################################
+# {name "Playback Path" value 2} # 0:OFF 1:RCV 2:SPK
+# # 3:HP 4:BT
+# {name "Output Volume" value 30} # min:0 max:48
+# {name "Output Volume - RCV" value 2}# min:0 max:7
+# {name "Output Volume - SPK/EAR" value 8} # min:0 max:15
+# {name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+# {name "Voice Call Path" value 1} # 0:OFF 1:RCV 2:SPK
+# # 3:HP 4:BT
+# {name "Voice Memo Path" value 1} # 0:OFF 1:MAIN 2:SUB
+# # 3:EAR 4:BT
+# {name "MIC Gain" value 5,5} # min:0 max:15
+# {name "FM Radio Path" value 1} # 0:off 1:RCV 2:SPK
+# # 3:HP 4:BT
+# {name "Idle Mode" value 1} # 0:off 1:on
+#########################################################################
+
+
+##
+## Mixer Devices
+##
+
+ctl.AndroidPlayback {
+ type hw
+ card 0
+}
+
+ctl.AndroidRecord {
+ type hw
+ card 0
+}
+
+
+##
+## Playback Devices
+##
+
+pcm.AndroidPlayback {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Earpiece {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 0} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 1} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Bluetooth {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 4} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Headset {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Earpiece_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 0} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 1} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker_Headset_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 5} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT 5:SPKHP
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Bluetooth_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 4} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Headset_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Earpiece_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker_Headset_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 6} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT 5:SPKHP
+ # 6:R_SPKHP
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Bluetooth_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 4} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Headset_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Playback Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Earpiece_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 0} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 1} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Speaker_Headset_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Bluetooth_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Voice Call Path" value 4} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Headset_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Voice Call Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+
+##
+## Idle control device
+##
+
+pcm.AndroidPlayback_On_idle {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Idle Mode" value 1} # off:0 on:1
+ ]
+ }
+}
+
+pcm.AndroidPlayback_Off_idle {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Idle Mode" value 0} # off:0 on:1
+ ]
+ }
+}
+
+pcm.AndroidRecord_On_idle {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Idle Mode" value 1} # off:0 on:1
+ ]
+ }
+}
+
+pcm.AndroidRecord_Off_idle {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "Idle Mode" value 0} # off:0 on:1
+ ]
+ }
+}
+
+
+##
+## Recording device
+##
+
+pcm.AndroidRecord {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "MIC Path" value 0} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Microphone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "MIC Path" value 0} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Earpiece_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "Playback Path" value 1} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ {name "Voice Memo Path" value 1} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Speaker_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "Voice Memo Path" value 2} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Speaker_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "Playback Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Headset_ringtone {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "Playback Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Speaker_Headset_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "Voice Memo Path" value 3} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Bluetooth_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "Voice Memo Path" value 4} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Headset_normal {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio capture"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {name "MIC Path" value 0} # 0:MAIN 1:SUB
+# {name "Voice Memo Path" value 3} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Earpiece_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 0} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 1} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ {name "Voice Memo Path" value 1} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Speaker_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ {name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 2} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ {name "Voice Memo Path" value 2} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Speaker_Headset_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ #{name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ {name "Voice Memo Path" value 3} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Bluetooth_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ #{name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 4} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ {name "Voice Memo Path" value 4} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
+pcm.AndroidRecord_Headset_incall {
+ type hooks
+ slave.pcm {
+ type hw
+ card 0
+ device 0 # Must be of type "digital audio playback"
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # Enable audio output from the DSP
+ #{name "MIC Path" value 1} # 0:Main Mic 1:Sub MIC
+ {name "Voice Call Path" value 3} # 0:OFF 1:RCV 2:SPK
+ # 3:HP 4:BT
+ {name "Voice Memo Path" value 3} # 0:OFF 1:MAIN 2:SUB
+ # 3:EAR 4:BT
+ ]
+ }
+}
+
diff --git a/crespo.mk b/crespo.mk
new file mode 100644
index 0000000..fc07081
--- /dev/null
+++ b/crespo.mk
@@ -0,0 +1,33 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# This file is the build configuration for a full Android
+# build for dream hardware. This cleanly combines a set of
+# device-specific aspects (drivers) with a device-agnostic
+# product configuration (apps).
+#
+
+$(call inherit-product, build/target/product/generic.mk)
+
+
+# Overrides
+PRODUCT_MANUFACTURER := samsung
+PRODUCT_NAME := crespo
+PRODUCT_DEVICE := crespo
+PRODUCT_MODEL := Andorid on Crespo
+PRODUCT_LOCALES += en_US hdpi
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ keyguard.no_require_sim=true
diff --git a/egl.cfg b/egl.cfg
new file mode 100644
index 0000000..3e1a8c6
--- /dev/null
+++ b/egl.cfg
@@ -0,0 +1 @@
+0 1 POWERVR_SGX540_120
diff --git a/init.lowmem.rc b/init.lowmem.rc
new file mode 100644
index 0000000..7c08054
--- /dev/null
+++ b/init.lowmem.rc
@@ -0,0 +1,19 @@
+# Adjustments to the out-of-memory killer, for devices that are
+# tight on memory. These should not be used if not needed, as they
+# can result in more paging.
+
+on early-boot
+
+ setprop ro.FOREGROUND_APP_MEM 1536
+ setprop ro.VISIBLE_APP_MEM 2048
+ setprop ro.PERCEPTIBLE_APP_MEM 2048
+ setprop ro.HEAVY_WEIGHT_APP_MEM 2048
+ setprop ro.SECONDARY_SERVER_MEM 4096
+ setprop ro.BACKUP_APP_MEM 4096
+ setprop ro.HOME_APP_MEM 4096
+ setprop ro.HIDDEN_APP_MEM 5120
+ setprop ro.EMPTY_APP_MEM 6144
+
+on boot
+
+ write /sys/module/lowmemorykiller/parameters/minfree 1536,2048,3072,4096,5120,6144
diff --git a/init.rc b/init.rc
new file mode 100755
index 0000000..367d00d
--- /dev/null
+++ b/init.rc
@@ -0,0 +1,413 @@
+on early-init
+ start ueventd
+
+on init
+
+sysclktz 0
+
+loglevel 3
+
+# setup the global environment
+ export PATH /sbin:/system/sbin:/system/bin:/system/xbin
+ export LD_LIBRARY_PATH /system/lib
+ export ANDROID_BOOTLOGO 1
+ export ANDROID_ROOT /system
+ export ANDROID_ASSETS /system/app
+ export ANDROID_DATA /data
+ export EXTERNAL_STORAGE /mnt/sdcard
+ export ASEC_MOUNTPOINT /mnt/asec
+ export LOOP_MOUNTPOINT /mnt/obb
+ export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
+
+ # ko files for 3D
+ insmod /modules/pvrsrvkm.ko
+ insmod /modules/s3c_lcd.ko
+ insmod /modules/s3c_bc.ko
+
+# Backward compatibility
+ symlink /system/etc /etc
+ symlink /sys/kernel/debug /d
+
+# create mountpoints
+ mkdir /mnt 0775 root system
+ mkdir /mnt/sdcard 0000 system system
+
+# Create cgroup mount point for cpu accounting
+ mkdir /acct
+ mount cgroup none /acct cpuacct
+ mkdir /acct/uid
+
+# Backwards Compat - XXX: Going away in G*
+ symlink /mnt/sdcard /sdcard
+
+ mkdir /system
+ mkdir /data 0771 system system
+ mkdir /cache 0770 system cache
+ mkdir /config 0500 root root
+
+ # Directory for putting things only root should see.
+ mkdir /mnt/secure 0700 root root
+
+ # Directory for staging bindmounts
+ mkdir /mnt/secure/staging 0700 root root
+
+ # Directory-target for where the secure container
+ # imagefile directory will be bind-mounted
+ mkdir /mnt/secure/asec 0700 root root
+
+ # Secure container public mount points.
+ mkdir /mnt/asec 0700 root system
+ mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
+
+ # Filesystem image public mount points.
+ mkdir /mnt/obb 0700 root system
+ mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
+
+ mount rootfs rootfs / ro remount
+
+ write /proc/sys/kernel/panic_on_oops 1
+ write /proc/sys/kernel/hung_task_timeout_secs 0
+ write /proc/cpu/alignment 4
+ write /proc/sys/kernel/sched_latency_ns 10000000
+ write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
+ write /proc/sys/kernel/sched_compat_yield 1
+ write /proc/sys/kernel/sched_child_runs_first 0
+
+# Create cgroup mount points for process groups
+ mkdir /dev/cpuctl
+ mount cgroup none /dev/cpuctl cpu
+ chown system system /dev/cpuctl
+ chown system system /dev/cpuctl/tasks
+ chmod 0777 /dev/cpuctl/tasks
+ write /dev/cpuctl/cpu.shares 1024
+
+ mkdir /dev/cpuctl/fg_boost
+ chown system system /dev/cpuctl/fg_boost/tasks
+ chmod 0777 /dev/cpuctl/fg_boost/tasks
+ write /dev/cpuctl/fg_boost/cpu.shares 1024
+
+ mkdir /dev/cpuctl/bg_non_interactive
+ chown system system /dev/cpuctl/bg_non_interactive/tasks
+ chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
+ # 5.0 %
+ write /dev/cpuctl/bg_non_interactive/cpu.shares 52
+
+on fs
+# mount mtd partitions
+ # Mount /system rw first to give the filesystem a chance to save a checkpoint
+ mount yaffs2 mtd@system /system
+ mount yaffs2 mtd@system /system ro remount
+ mount yaffs2 mtd@userdata /data nosuid nodev
+ mount yaffs2 mtd@cache /cache nosuid nodev
+
+on post-fs
+ # We chown/chmod /data again so because mount is run as root + defaults
+ chown system system /data
+ chmod 0771 /data
+
+ # Create dump dir and collect dumps.
+ # Do this before we mount cache so eventually we can use cache for
+ # storing dumps on platforms which do not have a dedicated dump partition.
+
+ mkdir /data/dontpanic
+ chown root log /data/dontpanic
+ chmod 0750 /data/dontpanic
+
+ # Collect apanic data, free resources and re-arm trigger
+ copy /proc/apanic_console /data/dontpanic/apanic_console
+ chown root log /data/dontpanic/apanic_console
+ chmod 0640 /data/dontpanic/apanic_console
+
+ copy /proc/apanic_threads /data/dontpanic/apanic_threads
+ chown root log /data/dontpanic/apanic_threads
+ chmod 0640 /data/dontpanic/apanic_threads
+
+ write /proc/apanic_console 1
+
+ # Same reason as /data above
+ chown system cache /cache
+ chmod 0770 /cache
+
+ # This may have been created by the recovery system with odd permissions
+ chown system cache /cache/recovery
+ chmod 0770 /cache/recovery
+
+ #change permissions on vmallocinfo so we can grab it from bugreports
+ chown root log /proc/vmallocinfo
+ chmod 0440 /proc/vmallocinfo
+
+ #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
+ chown root system /proc/kmsg
+ chmod 0440 /proc/kmsg
+ chown root system /proc/sysrq-trigger
+ chmod 0220 /proc/sysrq-trigger
+
+# create basic filesystem structure
+ mkdir /data/misc 01771 system misc
+ mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
+ mkdir /data/misc/bluetooth 0770 system system
+ mkdir /data/misc/keystore 0700 keystore keystore
+ mkdir /data/misc/vpn 0770 system system
+ mkdir /data/misc/systemkeys 0700 system system
+ mkdir /data/misc/vpn/profiles 0770 system system
+ # give system access to wpa_supplicant.conf for backup and restore
+ mkdir /data/misc/wifi 0770 wifi wifi
+ chmod 0770 /data/misc/wifi
+ chmod 0660 /data/misc/wifi/wpa_supplicant.conf
+ mkdir /data/local 0771 shell shell
+ mkdir /data/local/tmp 0771 shell shell
+ mkdir /data/data 0771 system system
+ mkdir /data/app-private 0771 system system
+ mkdir /data/app 0771 system system
+ mkdir /data/property 0700 root root
+
+ # create dalvik-cache and double-check the perms
+ mkdir /data/dalvik-cache 0771 system system
+ chown system system /data/dalvik-cache
+ chmod 0771 /data/dalvik-cache
+
+ # create the lost+found directories, so as to enforce our permissions
+ mkdir /data/lost+found 0770
+ mkdir /cache/lost+found 0770
+
+ # double check the perms, in case lost+found already exists, and set owner
+ chown root root /data/lost+found
+ chmod 0770 /data/lost+found
+ chown root root /cache/lost+found
+ chmod 0770 /cache/lost+found
+
+on boot
+# basic network init
+ ifup lo
+ hostname localhost
+ domainname localdomain
+
+# set RLIMIT_NICE to allow priorities from 19 to -20
+ setrlimit 13 40 40
+
+# Define the oom_adj values for the classes of processes that can be
+# killed by the kernel. These are used in ActivityManagerService.
+ setprop ro.FOREGROUND_APP_ADJ 0
+ setprop ro.VISIBLE_APP_ADJ 1
+ setprop ro.PERCEPTIBLE_APP_ADJ 2
+ setprop ro.HEAVY_WEIGHT_APP_ADJ 3
+ setprop ro.SECONDARY_SERVER_ADJ 4
+ setprop ro.BACKUP_APP_ADJ 5
+ setprop ro.HOME_APP_ADJ 6
+ setprop ro.HIDDEN_APP_MIN_ADJ 7
+ setprop ro.EMPTY_APP_ADJ 15
+
+# Define the memory thresholds at which the above process classes will
+# be killed. These numbers are in pages (4k).
+ setprop ro.FOREGROUND_APP_MEM 2048
+ setprop ro.VISIBLE_APP_MEM 3072
+ setprop ro.PERCEPTIBLE_APP_MEM 4096
+ setprop ro.HEAVY_WEIGHT_APP_MEM 4096
+ setprop ro.SECONDARY_SERVER_MEM 6144
+ setprop ro.BACKUP_APP_MEM 6144
+ setprop ro.HOME_APP_MEM 6144
+ setprop ro.HIDDEN_APP_MEM 7168
+ setprop ro.EMPTY_APP_MEM 8192
+
+# Write value must be consistent with the above properties.
+# Note that the driver only supports 6 slots, so we have combined some of
+# the classes into the same memory level; the associated processes of higher
+# classes will still be killed first.
+ write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
+
+ write /proc/sys/vm/overcommit_memory 1
+ write /proc/sys/vm/min_free_order_shift 4
+ write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
+
+ # Set init its forked children's oom_adj.
+ write /proc/1/oom_adj -16
+
+ # Tweak background writeout
+ write /proc/sys/vm/dirty_expire_centisecs 200
+ write /proc/sys/vm/dirty_background_ratio 5
+
+ # Permissions for System Server and daemons.
+ chown radio system /sys/android_power/state
+ chown radio system /sys/android_power/request_state
+ chown radio system /sys/android_power/acquire_full_wake_lock
+ chown radio system /sys/android_power/acquire_partial_wake_lock
+ chown radio system /sys/android_power/release_wake_lock
+ chown radio system /sys/power/state
+ chown radio system /sys/power/wake_lock
+ chown radio system /sys/power/wake_unlock
+ chmod 0660 /sys/power/state
+ chmod 0660 /sys/power/wake_lock
+ chmod 0660 /sys/power/wake_unlock
+ chown system system /sys/class/timed_output/vibrator/enable
+ chown system system /sys/class/leds/keyboard-backlight/brightness
+ chown system system /sys/class/leds/lcd-backlight/brightness
+ chown system system /sys/class/leds/button-backlight/brightness
+ chown system system /sys/class/leds/jogball-backlight/brightness
+ chown system system /sys/class/leds/red/brightness
+ chown system system /sys/class/leds/green/brightness
+ chown system system /sys/class/leds/blue/brightness
+ chown system system /sys/class/leds/red/device/grpfreq
+ chown system system /sys/class/leds/red/device/grppwm
+ chown system system /sys/class/leds/red/device/blink
+ chown system system /sys/class/leds/red/brightness
+ chown system system /sys/class/leds/green/brightness
+ chown system system /sys/class/leds/blue/brightness
+ chown system system /sys/class/leds/red/device/grpfreq
+ chown system system /sys/class/leds/red/device/grppwm
+ chown system system /sys/class/leds/red/device/blink
+ chown system system /sys/class/timed_output/vibrator/enable
+ chown system system /sys/module/sco/parameters/disable_esco
+ chown system system /sys/kernel/ipv4/tcp_wmem_min
+ chown system system /sys/kernel/ipv4/tcp_wmem_def
+ chown system system /sys/kernel/ipv4/tcp_wmem_max
+ chown system system /sys/kernel/ipv4/tcp_rmem_min
+ chown system system /sys/kernel/ipv4/tcp_rmem_def
+ chown system system /sys/kernel/ipv4/tcp_rmem_max
+ chown root radio /proc/cmdline
+
+ # dev files for 3D
+ chmod 0666 /dev/pvrsrvkm
+
+
+# Define TCP buffer sizes for various networks
+# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
+ setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
+ setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
+
+ class_start default
+
+## Daemon processes to be run by init.
+##
+service console /system/bin/sh
+ console
+
+service ueventd /sbin/ueventd
+ critical
+
+# adbd is controlled by the persist.service.adb.enable system property
+service adbd /sbin/adbd
+ disabled
+
+# adbd on at boot in emulator
+on property:ro.kernel.qemu=1
+ start adbd
+
+on property:persist.service.adb.enable=1
+ start adbd
+
+on property:persist.service.adb.enable=0
+ stop adbd
+
+# 3D init
+service pvrsrvinit /system/bin/pvrsrvinit
+ user root
+ group root
+ oneshot
+
+service servicemanager /system/bin/servicemanager
+ user system
+ critical
+ onrestart restart zygote
+ onrestart restart media
+
+service vold /system/bin/vold
+ socket vold stream 0660 root mount
+ ioprio be 2
+
+service netd /system/bin/netd
+ socket netd stream 0660 root system
+
+service debuggerd /system/bin/debuggerd
+
+service ril-daemon /system/bin/rild
+ socket rild stream 660 root radio
+ socket rild-debug stream 660 radio system
+ user root
+ group radio cache inet misc audio
+
+service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
+ socket zygote stream 666
+ onrestart write /sys/android_power/request_state wake
+ onrestart write /sys/power/state on
+ onrestart restart media
+
+service media /system/bin/mediaserver
+ user media
+ group system audio camera graphics inet net_bt net_bt_admin net_raw
+ ioprio rt 4
+
+service bootanim /system/bin/bootanimation
+ user graphics
+ group graphics
+ disabled
+ oneshot
+
+service dbus /system/bin/dbus-daemon --system --nofork
+ socket dbus stream 660 bluetooth bluetooth
+ user bluetooth
+ group bluetooth net_bt_admin
+
+service bluetoothd /system/bin/bluetoothd -n
+ socket bluetooth stream 660 bluetooth bluetooth
+ socket dbus_bluetooth stream 660 bluetooth bluetooth
+ # init.rc does not yet support applying capabilities, so run as root and
+ # let bluetoothd drop uid to bluetooth with the right linux capabilities
+ group bluetooth net_bt_admin misc
+ disabled
+
+service hfag /system/bin/sdptool add --channel=10 HFAG
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service hsag /system/bin/sdptool add --channel=11 HSAG
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service opush /system/bin/sdptool add --channel=12 OPUSH
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service pbap /system/bin/sdptool add --channel=19 PBAP
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service installd /system/bin/installd
+ socket installd stream 600 system system
+
+service flash_recovery /system/etc/install-recovery.sh
+ oneshot
+
+service racoon /system/bin/racoon
+ socket racoon stream 600 system system
+ # racoon will setuid to vpn after getting necessary resources.
+ group net_admin
+ disabled
+ oneshot
+
+service mtpd /system/bin/mtpd
+ socket mtpd stream 600 system system
+ user vpn
+ group vpn net_admin net_raw
+ disabled
+ oneshot
+
+service keystore /system/bin/keystore /data/misc/keystore
+ user keystore
+ group keystore
+ socket keystore stream 666
+
+service dumpstate /system/bin/dumpstate -s
+ socket dumpstate stream 0660 shell log
+ disabled
+ oneshot
diff --git a/init.smdkc110.rc b/init.smdkc110.rc
new file mode 100755
index 0000000..bc8b520
--- /dev/null
+++ b/init.smdkc110.rc
@@ -0,0 +1,13 @@
+on boot
+# setprop net.eth0.dns1 10.32.192.11
+# setprop net.eth0.dns2 10.32.193.11
+ setprop ro.build.product smdkc110
+ setprop ro.product.device smdkc110
+ setprop ro.radio.noril yes
+
+# fake some battery state
+ setprop status.battery.state Slow
+ setprop status.battery.level 5
+ setprop status.battery.level_raw 50
+ setprop status.battery.level_scale 9
+
diff --git a/melfas-touchkey.kcm b/melfas-touchkey.kcm
new file mode 100755
index 0000000..8056364
--- /dev/null
+++ b/melfas-touchkey.kcm
@@ -0,0 +1,64 @@
+[type=QWERTY]
+
+# keycode display number base caps fn caps_fn
+
+A 'A' '2' 'a' 'A' '#' 0x00
+B 'B' '2' 'b' 'B' '<' 0x00
+C 'C' '2' 'c' 'C' '9' 0x00E7
+D 'D' '3' 'd' 'D' '5' 0x00
+E 'E' '3' 'e' 'E' '2' 0x0301
+F 'F' '3' 'f' 'F' '6' 0x00A5
+G 'G' '4' 'g' 'G' '-' '_'
+H 'H' '4' 'h' 'H' '[' '{'
+I 'I' '4' 'i' 'I' '$' 0x0302
+J 'J' '5' 'j' 'J' ']' '}'
+K 'K' '5' 'k' 'K' '"' '~'
+L 'L' '5' 'l' 'L' ''' '`'
+M 'M' '6' 'm' 'M' '!' 0x00
+N 'N' '6' 'n' 'N' '>' 0x0303
+O 'O' '6' 'o' 'O' '(' 0x00
+P 'P' '7' 'p' 'P' ')' 0x00
+Q 'Q' '7' 'q' 'Q' '*' 0x0300
+R 'R' '7' 'r' 'R' '3' 0x20AC
+S 'S' '7' 's' 'S' '4' 0x00DF
+T 'T' '8' 't' 'T' '+' 0x00A3
+U 'U' '8' 'u' 'U' '&' 0x0308
+V 'V' '8' 'v' 'V' '=' '^'
+W 'W' '9' 'w' 'W' '1' 0x00
+X 'X' '9' 'x' 'X' '8' 0xEF00
+Y 'Y' '9' 'y' 'Y' '%' 0x00A1
+Z 'Z' '9' 'z' 'Z' '7' 0x00
+
+# on pc keyboards
+COMMA ',' ',' ',' ';' ';' '|'
+PERIOD '.' '.' '.' ':' ':' 0x2026
+AT '@' '0' '@' '0' '0' 0x2022
+SLASH '/' '/' '/' '?' '?' '\'
+
+SPACE 0x20 0x20 0x20 0x20 0xEF01 0xEF01
+ENTER 0xa 0xa 0xa 0xa 0xa 0xa
+
+TAB 0x9 0x9 0x9 0x9 0x9 0x9
+0 '0' '0' '0' ')' ')' ')'
+1 '1' '1' '1' '!' '!' '!'
+2 '2' '2' '2' '@' '@' '@'
+3 '3' '3' '3' '#' '#' '#'
+4 '4' '4' '4' '$' '$' '$'
+5 '5' '5' '5' '%' '%' '%'
+6 '6' '6' '6' '^' '^' '^'
+7 '7' '7' '7' '&' '&' '&'
+8 '8' '8' '8' '*' '*' '*'
+9 '9' '9' '9' '(' '(' '('
+
+GRAVE '`' '`' '`' '~' '`' '~'
+MINUS '-' '-' '-' '_' '-' '_'
+EQUALS '=' '=' '=' '+' '=' '+'
+LEFT_BRACKET '[' '[' '[' '{' '[' '{'
+RIGHT_BRACKET ']' ']' ']' '}' ']' '}'
+BACKSLASH '\' '\' '\' '|' '\' '|'
+SEMICOLON ';' ';' ';' ':' ';' ':'
+APOSTROPHE ''' ''' ''' '"' ''' '"'
+STAR '*' '*' '*' '*' '*' '*'
+POUND '#' '#' '#' '#' '#' '#'
+PLUS '+' '+' '+' '+' '+' '+'
+
diff --git a/melfas-touchkey.kl b/melfas-touchkey.kl
new file mode 100755
index 0000000..b893821
--- /dev/null
+++ b/melfas-touchkey.kl
@@ -0,0 +1,4 @@
+key 158 MENU WAKE_DROPPED
+key 139 HOME WAKE_DROPPED
+key 28 BACK WAKE_DROPPED
+key 107 SEARCH WAKE_DROPPED
diff --git a/qwerty.kl b/qwerty.kl
new file mode 100644
index 0000000..12a437e
--- /dev/null
+++ b/qwerty.kl
@@ -0,0 +1,90 @@
+key 399 GRAVE
+key 2 1
+key 3 2
+key 4 3
+key 5 4
+key 6 5
+key 7 6
+key 8 7
+key 9 8
+key 10 9
+key 11 0
+key 1 BACK WAKE_DROPPED
+key 158 BACK WAKE_DROPPED
+key 230 SOFT_RIGHT WAKE
+key 60 SOFT_RIGHT WAKE
+key 107 ENDCALL WAKE_DROPPED
+key 62 ENDCALL WAKE_DROPPED
+key 229 MENU WAKE_DROPPED
+key 139 MENU WAKE_DROPPED
+key 59 MENU WAKE_DROPPED
+key 127 SEARCH WAKE_DROPPED
+key 217 SEARCH WAKE_DROPPED
+key 228 POUND
+key 227 STAR
+key 231 CALL WAKE_DROPPED
+key 61 CALL WAKE_DROPPED
+key 232 DPAD_CENTER WAKE_DROPPED
+key 108 DPAD_DOWN WAKE_DROPPED
+key 103 DPAD_UP WAKE_DROPPED
+key 102 HOME WAKE
+key 105 DPAD_LEFT WAKE_DROPPED
+key 106 DPAD_RIGHT WAKE_DROPPED
+key 115 VOLUME_UP
+key 114 VOLUME_DOWN
+key 116 POWER WAKE
+key 212 CAMERA
+
+key 16 Q
+key 17 W
+key 18 E
+key 19 R
+key 20 T
+key 21 Y
+key 22 U
+key 23 I
+key 24 O
+key 25 P
+key 26 LEFT_BRACKET
+key 27 RIGHT_BRACKET
+key 43 BACKSLASH
+
+key 30 A
+key 31 S
+key 32 D
+key 33 F
+key 34 G
+key 35 H
+key 36 J
+key 37 K
+key 38 L
+key 39 SEMICOLON
+key 40 APOSTROPHE
+key 14 DEL
+
+key 44 Z
+key 45 X
+key 46 C
+key 47 V
+key 48 B
+key 49 N
+key 50 M
+key 51 COMMA
+key 52 PERIOD
+key 53 SLASH
+key 28 ENTER
+
+key 56 ALT_LEFT
+key 100 ALT_RIGHT
+key 42 SHIFT_LEFT
+key 54 SHIFT_RIGHT
+key 15 TAB
+key 57 SPACE
+key 150 EXPLORER
+key 155 ENVELOPE
+
+key 12 MINUS
+key 13 EQUALS
+key 215 AT
+
+
diff --git a/s3c-keypad.kcm b/s3c-keypad.kcm
new file mode 100644
index 0000000..8056364
--- /dev/null
+++ b/s3c-keypad.kcm
@@ -0,0 +1,64 @@
+[type=QWERTY]
+
+# keycode display number base caps fn caps_fn
+
+A 'A' '2' 'a' 'A' '#' 0x00
+B 'B' '2' 'b' 'B' '<' 0x00
+C 'C' '2' 'c' 'C' '9' 0x00E7
+D 'D' '3' 'd' 'D' '5' 0x00
+E 'E' '3' 'e' 'E' '2' 0x0301
+F 'F' '3' 'f' 'F' '6' 0x00A5
+G 'G' '4' 'g' 'G' '-' '_'
+H 'H' '4' 'h' 'H' '[' '{'
+I 'I' '4' 'i' 'I' '$' 0x0302
+J 'J' '5' 'j' 'J' ']' '}'
+K 'K' '5' 'k' 'K' '"' '~'
+L 'L' '5' 'l' 'L' ''' '`'
+M 'M' '6' 'm' 'M' '!' 0x00
+N 'N' '6' 'n' 'N' '>' 0x0303
+O 'O' '6' 'o' 'O' '(' 0x00
+P 'P' '7' 'p' 'P' ')' 0x00
+Q 'Q' '7' 'q' 'Q' '*' 0x0300
+R 'R' '7' 'r' 'R' '3' 0x20AC
+S 'S' '7' 's' 'S' '4' 0x00DF
+T 'T' '8' 't' 'T' '+' 0x00A3
+U 'U' '8' 'u' 'U' '&' 0x0308
+V 'V' '8' 'v' 'V' '=' '^'
+W 'W' '9' 'w' 'W' '1' 0x00
+X 'X' '9' 'x' 'X' '8' 0xEF00
+Y 'Y' '9' 'y' 'Y' '%' 0x00A1
+Z 'Z' '9' 'z' 'Z' '7' 0x00
+
+# on pc keyboards
+COMMA ',' ',' ',' ';' ';' '|'
+PERIOD '.' '.' '.' ':' ':' 0x2026
+AT '@' '0' '@' '0' '0' 0x2022
+SLASH '/' '/' '/' '?' '?' '\'
+
+SPACE 0x20 0x20 0x20 0x20 0xEF01 0xEF01
+ENTER 0xa 0xa 0xa 0xa 0xa 0xa
+
+TAB 0x9 0x9 0x9 0x9 0x9 0x9
+0 '0' '0' '0' ')' ')' ')'
+1 '1' '1' '1' '!' '!' '!'
+2 '2' '2' '2' '@' '@' '@'
+3 '3' '3' '3' '#' '#' '#'
+4 '4' '4' '4' '$' '$' '$'
+5 '5' '5' '5' '%' '%' '%'
+6 '6' '6' '6' '^' '^' '^'
+7 '7' '7' '7' '&' '&' '&'
+8 '8' '8' '8' '*' '*' '*'
+9 '9' '9' '9' '(' '(' '('
+
+GRAVE '`' '`' '`' '~' '`' '~'
+MINUS '-' '-' '-' '_' '-' '_'
+EQUALS '=' '=' '=' '+' '=' '+'
+LEFT_BRACKET '[' '[' '[' '{' '[' '{'
+RIGHT_BRACKET ']' ']' ']' '}' ']' '}'
+BACKSLASH '\' '\' '\' '|' '\' '|'
+SEMICOLON ';' ';' ';' ':' ';' ':'
+APOSTROPHE ''' ''' ''' '"' ''' '"'
+STAR '*' '*' '*' '*' '*' '*'
+POUND '#' '#' '#' '#' '#' '#'
+PLUS '+' '+' '+' '+' '+' '+'
+
diff --git a/s3c-keypad.kl b/s3c-keypad.kl
new file mode 100644
index 0000000..7c2d810
--- /dev/null
+++ b/s3c-keypad.kl
@@ -0,0 +1,11 @@
+key 42 VOLUME_UP
+key 58 VOLUME_DOWN
+key 50 HOME WAKE_DROPPED
+key 26 ENDCALL WAKE_DROPPED
+key 34 BACK WAKE_DROPPED
+key 57 DPAD_LEFT WAKE_DROPPED
+key 49 DPAD_RIGHT WAKE_DROPPED
+key 25 DPAD_UP WAKE_DROPPED
+key 41 DPAD_DOWN WAKE_DROPPED
+key 33 DPAD_CENTER WAKE_DROPPED
+key 10 POWER WAKE
diff --git a/system.prop b/system.prop
new file mode 100644
index 0000000..5d79a2d
--- /dev/null
+++ b/system.prop
@@ -0,0 +1,7 @@
+#
+# system.prop for smdkc110
+#
+
+rild.libpath=/system/lib/libreference-ril.so
+rild.libargs=-d /dev/ttyS0
+ro.sf.lcd_density=240 \ No newline at end of file
diff --git a/vold.conf b/vold.conf
new file mode 100644
index 0000000..b3829ac
--- /dev/null
+++ b/vold.conf
@@ -0,0 +1,10 @@
+## vold configuration file for the emulator/SDK
+
+volume_sdcard {
+ ## This is the direct uevent device path to the SD slot on the device
+ media_path /devices/platform/s3c-sdhci.0/mmc_host/mmc0
+
+ media_type mmc
+ mount_point /sdcard
+ ums_path /devices/platform/s3c-usbgadget/gadget/lun0
+}
diff --git a/vold.fstab b/vold.fstab
new file mode 100644
index 0000000..8bf3cd9
--- /dev/null
+++ b/vold.fstab
@@ -0,0 +1,24 @@
+## Vold 2.0 Generic fstab
+## - San Mehat (san@android.com)
+##
+
+#######################
+## Regular device mount
+##
+## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
+## label - Label for the volume
+## mount_point - Where the volume will be mounted
+## part - Partition # (1 based), or 'auto' for first usable partition.
+## <sysfs_path> - List of sysfs paths to source devices
+######################
+
+## Example of a standard sdcard mount for the emulator / Dream
+# Mounts the first usable partition of the specified device
+dev_mount sdcard /mnt/sdcard auto /devices/platform/s3c-sdhci.2/mmc_host/mmc1
+
+## Example of a dual card setup
+# dev_mount left_sdcard /sdcard1 auto /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.2/mmc_host/mmc1
+# dev_mount right_sdcard /sdcard2 auto /devices/platform/goldfish_mmc.1 /devices/platform/msm_sdcc.3/mmc_host/mmc1
+
+## Example of specifying a specific partition for mounts
+# dev_mount sdcard /sdcard 2 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.2/mmc_host/mmc1