arm-soc: board specific changes

These updates are all for board specific code, including
 
 * defconfig updates for shmobile, davinci, bcm2835, imx, omap and tegra
 * SD/MMC and I2C support on bcm2835 (Raspberry PI)
 * minor updates for PXA
 * shmobile updates to GPIO usage in board files
 * More things in OMAP board files are moved over to device tree probing
 * Better support for audio devices on some OMAP platforms
 
 Conflicts include the omap board-apollon.c file that is removed without
 a replacement, and conflicting context in the 4430sdp board file.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIVAwUAUSUyPmCrR//JCVInAQKc4xAAm3UXWLjjIecgdcWperYzUn8wVGg2sRvT
 eFFtGvj3iC+HttPw01O2uVn2O/ixW6SJIgls1O3VTt6IKXPQg3OCjeu1/1vvgq14
 IWuOVS9TLUS4IWkbIvQSdWrDTHocon1Umx+yIgyOpenHBn6kHMg1Tx6qQlUKKo8q
 ne8DKlAfSmao2oHg08Biuzc+cjUOCj7Dq57P1Y5gRhtmdXiFfvdd6GytyFAGUl/m
 60c7BECUs9ileeAUTgehsUk84uV9w/FHeWhccxKspd8GjuHg31t5lB/PEEud34FK
 CTBWoPRn/xG6qjmp34kjP2zIFVfiYYscJpSzXw+cOmPx2gNcs9mGUflAmG9I2t/C
 TPuRCgmhqjZkfHjoNPUaGSvLa4m3279lrqxVqU6BWs8NlqzXSma1rqUKCxikV4lR
 OlPasykwIGdHoJWyrm517RRkLq9Jn2XxtZmequp8TAsUBzW1Su3ZNArSQ6VqGTgs
 W8T20UGVj4bDaAUG4VICeRZGIJx5wknEr11NrRL1a0/EFhFUxNFZf5JAs1YHw/Yi
 rJP8oTppbo6eAaTThc6/a1/rklu8TUcRvmeS+iIH4IFxbroqc/ntAYd16+cKhPbO
 EJtvUv2B3WQZesV7zmDG4TzleYjgYeFxPzTeYHHOYRIgDA3al2eSlp6EIZULSmul
 gqxlMv/YHF8=
 =/qBE
 -----END PGP SIGNATURE-----

Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC board specific changes from Arnd Bergmann:
 "These updates are all for board specific code, including

   - defconfig updates for shmobile, davinci, bcm2835, imx, omap and
     tegra

   - SD/MMC and I2C support on bcm2835 (Raspberry PI)

   - minor updates for PXA

   - shmobile updates to GPIO usage in board files

   - More things in OMAP board files are moved over to device tree
     probing

   - Better support for audio devices on some OMAP platforms"

* tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (55 commits)
  ARM: imx_v4_v5_defconfig: Add VPU support
  ARM: imx: configs: enable netfilter support
  ARM: OMAP2+: Fix twl section warnings related to omap_twl4030_audio_init
  ARM: OMAP2+: omap2plus_defconfig: enable omap1 rtc
  RX-51: Register twl4030-madc device
  RX-51: Add leds lp5523 names from Maemo 5 2.6.28 kernel
  ARM: OMAP2+: AM33XX: omap2plus_defconfig: Add support for few drivers
  ARM: OMAP1: nokia770: enable CBUS/Retu
  ARM: OMAP2+: omap2plus_defconfig: enable CMA allocator
  ARM: OMAP2+: omap2plus_defconfig: enable TFP410 chip support
  ARM: OMAP3: igep0020: simplify GPIO LEDs dependencies
  ARM: OMAP2+: craneboard: support the TPS65910 PMU
  ARM: OMAP2+: craneboard: support NAND device
  ARM: OMAP3: cm-t3517: add MMC support
  ARM: OMAP2+: Remove apollon board support
  ARM: shmobile: armadillo800eva: set clock rates before timer init
  ARM: tegra: defconfig updates
  ARM: shmobile: mackerel: Use gpio_request_one()
  ARM: shmobile: kzm9g: Use gpio_request_one()
  ARM: shmobile: bonito: Use gpio_request_one()
  ...
This commit is contained in:
Linus Torvalds 2013-02-21 15:33:45 -08:00
commit 6c5096e553
47 changed files with 536 additions and 640 deletions

View File

@ -21,6 +21,6 @@
}; };
chosen { chosen {
bootargs = "console=ttyS1,115200n81"; bootargs = "console=tty0 console=ttyS1,115200n81 earlyprintk=serial8250-em.1,115200n81 mem=128M@0x40000000 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096";
}; };
}; };

View File

@ -9,12 +9,16 @@
*/ */
/dts-v1/; /dts-v1/;
/include/ "skeleton.dtsi" /include/ "r8a7740.dtsi"
/ { / {
model = "armadillo 800 eva"; model = "armadillo 800 eva";
compatible = "renesas,armadillo800eva"; compatible = "renesas,armadillo800eva";
chosen {
bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw";
};
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0x40000000 0x20000000>; reg = <0x40000000 0x20000000>;

View File

@ -9,12 +9,16 @@
*/ */
/dts-v1/; /dts-v1/;
/include/ "skeleton.dtsi" /include/ "sh7372.dtsi"
/ { / {
model = "Mackerel (AP4 EVM 2nd)"; model = "Mackerel (AP4 EVM 2nd)";
compatible = "renesas,mackerel"; compatible = "renesas,mackerel";
chosen {
bootargs = "console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp mem=240m rw";
};
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0x40000000 0x10000000>; reg = <0x40000000 0x10000000>;

View File

@ -9,12 +9,16 @@
*/ */
/dts-v1/; /dts-v1/;
/include/ "skeleton.dtsi" /include/ "sh73a0.dtsi"
/ { / {
model = "KZM-A9-GT"; model = "KZM-A9-GT";
compatible = "renesas,kzm9g", "renesas,sh73a0"; compatible = "renesas,kzm9g", "renesas,sh73a0";
chosen {
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
};
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0x41000000 0x1e800000>; reg = <0x41000000 0x1e800000>;

View File

@ -34,12 +34,11 @@ CONFIG_AEABI=y
CONFIG_FORCE_MAX_ZONEORDER=13 CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw" CONFIG_ARM_APPENDED_DTB=y
CONFIG_CMDLINE_FORCE=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
CONFIG_VFP=y CONFIG_VFP=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_SUSPEND is not set CONFIG_PM_RUNTIME=y
CONFIG_NET=y CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
@ -91,14 +90,11 @@ CONFIG_I2C_SH_MOBILE=y
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_MEDIA_SUPPORT=y CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_DEV=y CONFIG_VIDEO_DEV=y
# CONFIG_RC_CORE is not set CONFIG_MEDIA_CAMERA_SUPPORT=y
# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
# CONFIG_V4L_USB_DRIVERS is not set
CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y CONFIG_SOC_CAMERA=y
CONFIG_SOC_CAMERA_MT9T112=y CONFIG_SOC_CAMERA_MT9T112=y
CONFIG_VIDEO_SH_MOBILE_CEU=y CONFIG_VIDEO_SH_MOBILE_CEU=y
# CONFIG_RADIO_ADAPTERS is not set
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_SH_MOBILE_LCDC=y CONFIG_FB_SH_MOBILE_LCDC=y
CONFIG_FB_SH_MOBILE_HDMI=y CONFIG_FB_SH_MOBILE_HDMI=y

View File

@ -1,11 +1,10 @@
CONFIG_EXPERIMENTAL=y
# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_FHANDLE=y CONFIG_FHANDLE=y
CONFIG_NO_HZ=y CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_BUF_SHIFT=18
CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_DEVICE=y
@ -30,13 +29,10 @@ CONFIG_EMBEDDED=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_OPROFILE=y CONFIG_OPROFILE=y
CONFIG_JUMP_LABEL=y CONFIG_JUMP_LABEL=y
# CONFIG_BLOCK is not set
CONFIG_ARCH_BCM2835=y CONFIG_ARCH_BCM2835=y
CONFIG_PREEMPT_VOLUNTARY=y CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_AEABI=y CONFIG_AEABI=y
CONFIG_COMPACTION=y
CONFIG_KSM=y CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
CONFIG_CLEANCACHE=y CONFIG_CLEANCACHE=y
CONFIG_SECCOMP=y CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y
@ -45,6 +41,11 @@ CONFIG_CRASH_DUMP=y
CONFIG_VFP=y CONFIG_VFP=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_SUSPEND is not set # CONFIG_SUSPEND is not set
CONFIG_NET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_NETWORK_SECMARK=y
# CONFIG_WIRELESS is not set
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_STANDALONE is not set # CONFIG_STANDALONE is not set
@ -53,20 +54,42 @@ CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set # CONFIG_SERIO is not set
# CONFIG_VT is not set # CONFIG_VT is not set
# CONFIG_UNIX98_PTYS is not set
# CONFIG_LEGACY_PTYS is not set # CONFIG_LEGACY_PTYS is not set
# CONFIG_DEVKMEM is not set # CONFIG_DEVKMEM is not set
CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_TTY_PRINTK=y CONFIG_TTY_PRINTK=y
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_BCM2835=y
CONFIG_GPIO_SYSFS=y
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
# CONFIG_USB_SUPPORT is not set # CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_BCM2835=y
# CONFIG_IOMMU_SUPPORT is not set # CONFIG_IOMMU_SUPPORT is not set
# CONFIG_FILE_LOCKING is not set CONFIG_EXT2_FS=y
# CONFIG_DNOTIFY is not set CONFIG_EXT2_FS_XATTR=y
# CONFIG_INOTIFY_USER is not set CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set # CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set # CONFIG_ENABLE_MUST_CHECK is not set

View File

@ -36,6 +36,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE=y
CONFIG_PM_RUNTIME=y
CONFIG_NET=y CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
@ -45,6 +46,8 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_LRO is not set # CONFIG_INET_LRO is not set
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FW_LOADER is not set # CONFIG_FW_LOADER is not set
CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y

View File

@ -33,6 +33,7 @@ CONFIG_AEABI=y
CONFIG_LEDS=y CONFIG_LEDS=y
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_PM_RUNTIME=y
CONFIG_NET=y CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
@ -42,6 +43,8 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_LRO is not set # CONFIG_INET_LRO is not set
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FW_LOADER is not set # CONFIG_FW_LOADER is not set
CONFIG_MTD=m CONFIG_MTD=m
CONFIG_MTD_PARTITIONS=y CONFIG_MTD_PARTITIONS=y

View File

@ -61,6 +61,7 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_LRO is not set # CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set # CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y CONFIG_DEVTMPFS_MOUNT=y
@ -127,6 +128,8 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_SOC_CAMERA=y CONFIG_SOC_CAMERA=y
CONFIG_SOC_CAMERA_OV2640=y CONFIG_SOC_CAMERA_OV2640=y
CONFIG_VIDEO_MX2=y CONFIG_VIDEO_MX2=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CODA=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_IMX=y CONFIG_FB_IMX=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_LCD_SUPPORT=y

View File

@ -59,6 +59,7 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_XFRM_MODE_BEET is not set # CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set # CONFIG_INET_LRO is not set
CONFIG_IPV6=y CONFIG_IPV6=y
CONFIG_NETFILTER=y
# CONFIG_WIRELESS is not set # CONFIG_WIRELESS is not set
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y CONFIG_DEVTMPFS_MOUNT=y

View File

@ -21,7 +21,7 @@ CONFIG_ARCH_SHMOBILE=y
CONFIG_KEYBOARD_GPIO_POLLED=y CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_ARCH_SH73A0=y CONFIG_ARCH_SH73A0=y
CONFIG_MACH_KOTA2=y CONFIG_MACH_KOTA2=y
CONFIG_MEMORY_SIZE=0x1e0000000 CONFIG_MEMORY_SIZE=0x1e000000
# CONFIG_SH_TIMER_TMU is not set # CONFIG_SH_TIMER_TMU is not set
# CONFIG_SWP_EMULATE is not set # CONFIG_SWP_EMULATE is not set
CONFIG_CPU_BPREDICT_DISABLE=y CONFIG_CPU_BPREDICT_DISABLE=y

View File

@ -32,11 +32,9 @@ CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_APPENDED_DTB=y
CONFIG_CMDLINE="console=tty0 console=ttyS1,115200n81 earlyprintk=serial8250-em.1,115200n81 mem=128M@0x40000000 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096"
CONFIG_CMDLINE_FORCE=y
CONFIG_VFP=y CONFIG_VFP=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_SUSPEND is not set CONFIG_PM_RUNTIME=y
CONFIG_NET=y CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y

View File

@ -39,7 +39,7 @@ CONFIG_AEABI=y
CONFIG_HIGHMEM=y CONFIG_HIGHMEM=y
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200" CONFIG_ARM_APPENDED_DTB=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
CONFIG_VFP=y CONFIG_VFP=y
CONFIG_NEON=y CONFIG_NEON=y
@ -85,6 +85,8 @@ CONFIG_I2C_CHARDEV=y
CONFIG_I2C_SH_MOBILE=y CONFIG_I2C_SH_MOBILE=y
CONFIG_GPIO_PCF857X=y CONFIG_GPIO_PCF857X=y
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_REGULATOR=y
CONFIG_REGULATOR_DUMMY=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_SH_MOBILE_LCDC=y CONFIG_FB_SH_MOBILE_LCDC=y
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y

View File

@ -23,8 +23,9 @@ CONFIG_AEABI=y
CONFIG_FORCE_MAX_ZONEORDER=15 CONFIG_FORCE_MAX_ZONEORDER=15
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp memchunk.vpu=64m memchunk.veu0=8m memchunk.spu0=2m mem=240m" CONFIG_ARM_APPENDED_DTB=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
CONFIG_VFP=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_PM=y CONFIG_PM=y
CONFIG_PM_RUNTIME=y CONFIG_PM_RUNTIME=y

View File

@ -53,6 +53,11 @@ CONFIG_IP_PNP_RARP=y
# CONFIG_INET_LRO is not set # CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_PLATFORM=m
CONFIG_BT=m CONFIG_BT=m
CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_H4=y
@ -65,6 +70,7 @@ CONFIG_MAC80211=m
CONFIG_MAC80211_RC_PID=y CONFIG_MAC80211_RC_PID=y
CONFIG_MAC80211_RC_DEFAULT_PID=y CONFIG_MAC80211_RC_DEFAULT_PID=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_CMA=y
CONFIG_CONNECTOR=y CONFIG_CONNECTOR=y
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y CONFIG_DEVTMPFS_MOUNT=y
@ -84,6 +90,9 @@ CONFIG_MTD_UBI=y
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_SENSORS_LIS3LV02D=m
CONFIG_SENSORS_TSL2550=m
CONFIG_SENSORS_LIS3_I2C=m
CONFIG_SCSI=y CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_MULTI_LUN=y
@ -109,6 +118,7 @@ CONFIG_USB_KC2190=y
CONFIG_INPUT_JOYDEV=y CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_MATRIX=m
CONFIG_KEYBOARD_TWL4030=y CONFIG_KEYBOARD_TWL4030=y
CONFIG_INPUT_TOUCHSCREEN=y CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ADS7846=y CONFIG_TOUCHSCREEN_ADS7846=y
@ -134,14 +144,17 @@ CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_TWL4030=y CONFIG_GPIO_TWL4030=y
CONFIG_W1=y CONFIG_W1=y
CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY=y
CONFIG_SENSORS_LM75=m
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
CONFIG_OMAP_WATCHDOG=y CONFIG_OMAP_WATCHDOG=y
CONFIG_TWL4030_WATCHDOG=y CONFIG_TWL4030_WATCHDOG=y
CONFIG_MFD_TPS65217=y CONFIG_MFD_TPS65217=y
CONFIG_MFD_TPS65910=y
CONFIG_REGULATOR_TWL4030=y CONFIG_REGULATOR_TWL4030=y
CONFIG_REGULATOR_TPS65023=y CONFIG_REGULATOR_TPS65023=y
CONFIG_REGULATOR_TPS6507X=y CONFIG_REGULATOR_TPS6507X=y
CONFIG_REGULATOR_TPS65217=y CONFIG_REGULATOR_TPS65217=y
CONFIG_REGULATOR_TPS65910=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y CONFIG_FIRMWARE_EDID=y
CONFIG_FB_MODE_HELPERS=y CONFIG_FB_MODE_HELPERS=y
@ -153,6 +166,7 @@ CONFIG_OMAP2_DSS_SDI=y
CONFIG_OMAP2_DSS_DSI=y CONFIG_OMAP2_DSS_DSI=y
CONFIG_FB_OMAP2=m CONFIG_FB_OMAP2=m
CONFIG_PANEL_GENERIC_DPI=m CONFIG_PANEL_GENERIC_DPI=m
CONFIG_PANEL_TFP410=m
CONFIG_PANEL_SHARP_LS037V7DW01=m CONFIG_PANEL_SHARP_LS037V7DW01=m
CONFIG_PANEL_NEC_NL8048HL11_01B=m CONFIG_PANEL_NEC_NL8048HL11_01B=m
CONFIG_PANEL_TAAL=m CONFIG_PANEL_TAAL=m
@ -200,9 +214,20 @@ CONFIG_SDIO_UART=y
CONFIG_MMC_ARMMMCI=y CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP=y
CONFIG_MMC_OMAP_HS=y CONFIG_MMC_OMAP_HS=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_RTC_CLASS=y CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_TWL92330=y CONFIG_RTC_DRV_TWL92330=y
CONFIG_RTC_DRV_TWL4030=y CONFIG_RTC_DRV_TWL4030=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_DMADEVICES=y CONFIG_DMADEVICES=y
CONFIG_DMA_OMAP=y CONFIG_DMA_OMAP=y
CONFIG_EXT2_FS=y CONFIG_EXT2_FS=y

View File

@ -38,6 +38,7 @@ CONFIG_HIGHMEM=y
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_AUTO_ZRELADDR=y CONFIG_AUTO_ZRELADDR=y
CONFIG_KEXEC=y
CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE=y
@ -106,12 +107,14 @@ CONFIG_BRCMFMAC=m
CONFIG_RT2X00=y CONFIG_RT2X00=y
CONFIG_RT2800USB=m CONFIG_RT2800USB=m
CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_TEGRA=y
CONFIG_INPUT_MISC=y CONFIG_INPUT_MISC=y
CONFIG_INPUT_MPU3050=y CONFIG_INPUT_MPU3050=y
# CONFIG_LEGACY_PTYS is not set # CONFIG_LEGACY_PTYS is not set
# CONFIG_DEVKMEM is not set # CONFIG_DEVKMEM is not set
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_TEGRA=y
CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_OF_PLATFORM=y
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
CONFIG_I2C=y CONFIG_I2C=y
@ -127,6 +130,8 @@ CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65910=y
CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY=y
CONFIG_BATTERY_SBS=y CONFIG_BATTERY_SBS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_SENSORS_LM90=y CONFIG_SENSORS_LM90=y
CONFIG_MFD_TPS6586X=y CONFIG_MFD_TPS6586X=y
CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65910=y
@ -186,6 +191,7 @@ CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_MAX8907=y CONFIG_RTC_DRV_MAX8907=y
CONFIG_RTC_DRV_TPS6586X=y
CONFIG_RTC_DRV_TPS65910=y CONFIG_RTC_DRV_TPS65910=y
CONFIG_RTC_DRV_EM3027=y CONFIG_RTC_DRV_EM3027=y
CONFIG_RTC_DRV_TEGRA=y CONFIG_RTC_DRV_TEGRA=y

View File

@ -349,13 +349,13 @@ static inline void da850_evm_setup_nor_nand(void)
if (!HAS_MMC) { if (!HAS_MMC) {
ret = davinci_cfg_reg_list(da850_evm_nand_pins); ret = davinci_cfg_reg_list(da850_evm_nand_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: nand mux setup failed: " pr_warn("%s: NAND mux setup failed: %d\n",
"%d\n", ret); __func__, ret);
ret = davinci_cfg_reg_list(da850_evm_nor_pins); ret = davinci_cfg_reg_list(da850_evm_nor_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: nor mux setup failed: %d\n", pr_warn("%s: NOR mux setup failed: %d\n",
ret); __func__, ret);
da850_evm_init_nor(); da850_evm_init_nor();
@ -477,19 +477,19 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio,
ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]); ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]);
if (ret) { if (ret) {
pr_warning("Cannot open UI expander pin %d\n", sel_a); pr_warn("Cannot open UI expander pin %d\n", sel_a);
goto exp_setup_sela_fail; goto exp_setup_sela_fail;
} }
ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]); ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]);
if (ret) { if (ret) {
pr_warning("Cannot open UI expander pin %d\n", sel_b); pr_warn("Cannot open UI expander pin %d\n", sel_b);
goto exp_setup_selb_fail; goto exp_setup_selb_fail;
} }
ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]); ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]);
if (ret) { if (ret) {
pr_warning("Cannot open UI expander pin %d\n", sel_c); pr_warn("Cannot open UI expander pin %d\n", sel_c);
goto exp_setup_selc_fail; goto exp_setup_selc_fail;
} }
@ -501,7 +501,7 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio,
da850_evm_ui_keys_init(gpio); da850_evm_ui_keys_init(gpio);
ret = platform_device_register(&da850_evm_ui_keys_device); ret = platform_device_register(&da850_evm_ui_keys_device);
if (ret) { if (ret) {
pr_warning("Could not register UI GPIO expander push-buttons"); pr_warn("Could not register UI GPIO expander push-buttons");
goto exp_setup_keys_fail; goto exp_setup_keys_fail;
} }
@ -690,14 +690,14 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client,
da850_evm_bb_keys_init(gpio); da850_evm_bb_keys_init(gpio);
ret = platform_device_register(&da850_evm_bb_keys_device); ret = platform_device_register(&da850_evm_bb_keys_device);
if (ret) { if (ret) {
pr_warning("Could not register baseboard GPIO expander keys"); pr_warn("Could not register baseboard GPIO expander keys");
goto io_exp_setup_sw_fail; goto io_exp_setup_sw_fail;
} }
da850_evm_bb_leds_init(gpio); da850_evm_bb_leds_init(gpio);
ret = platform_device_register(&da850_evm_bb_leds_device); ret = platform_device_register(&da850_evm_bb_leds_device);
if (ret) { if (ret) {
pr_warning("Could not register baseboard GPIO expander LEDS"); pr_warn("Could not register baseboard GPIO expander LEDs");
goto io_exp_setup_leds_fail; goto io_exp_setup_leds_fail;
} }
@ -1065,21 +1065,19 @@ static int __init da850_evm_config_emac(void)
} }
if (ret) if (ret)
pr_warning("da850_evm_init: cpgmac/rmii mux setup failed: %d\n", pr_warn("%s: CPGMAC/RMII mux setup failed: %d\n",
ret); __func__, ret);
/* configure the CFGCHIP3 register for RMII or MII */ /* configure the CFGCHIP3 register for RMII or MII */
__raw_writel(val, cfg_chip3_base); __raw_writel(val, cfg_chip3_base);
ret = davinci_cfg_reg(DA850_GPIO2_6); ret = davinci_cfg_reg(DA850_GPIO2_6);
if (ret) if (ret)
pr_warning("da850_evm_init:GPIO(2,6) mux setup " pr_warn("%s:GPIO(2,6) mux setup failed\n", __func__);
"failed\n");
ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en"); ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en");
if (ret) { if (ret) {
pr_warning("Cannot open GPIO %d\n", pr_warn("Cannot open GPIO %d\n", DA850_MII_MDIO_CLKEN_PIN);
DA850_MII_MDIO_CLKEN_PIN);
return ret; return ret;
} }
@ -1090,8 +1088,7 @@ static int __init da850_evm_config_emac(void)
ret = da8xx_register_emac(); ret = da8xx_register_emac();
if (ret) if (ret)
pr_warning("da850_evm_init: emac registration failed: %d\n", pr_warn("%s: EMAC registration failed: %d\n", __func__, ret);
ret);
return 0; return 0;
} }
@ -1443,57 +1440,53 @@ static __init void da850_evm_init(void)
ret = pmic_tps65070_init(); ret = pmic_tps65070_init();
if (ret) if (ret)
pr_warning("da850_evm_init: TPS65070 PMIC init failed: %d\n", pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret);
ret);
ret = da850_register_edma(da850_edma_rsv); ret = da850_register_edma(da850_edma_rsv);
if (ret) if (ret)
pr_warning("da850_evm_init: edma registration failed: %d\n", pr_warn("%s: EDMA registration failed: %d\n", __func__, ret);
ret);
ret = davinci_cfg_reg_list(da850_i2c0_pins); ret = davinci_cfg_reg_list(da850_i2c0_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: i2c0 mux setup failed: %d\n", pr_warn("%s: I2C0 mux setup failed: %d\n", __func__, ret);
ret);
ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata); ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata);
if (ret) if (ret)
pr_warning("da850_evm_init: i2c0 registration failed: %d\n", pr_warn("%s: I2C0 registration failed: %d\n", __func__, ret);
ret);
ret = da8xx_register_watchdog(); ret = da8xx_register_watchdog();
if (ret) if (ret)
pr_warning("da830_evm_init: watchdog registration failed: %d\n", pr_warn("%s: watchdog registration failed: %d\n",
ret); __func__, ret);
if (HAS_MMC) { if (HAS_MMC) {
ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins); ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: mmcsd0 mux setup failed:" pr_warn("%s: MMCSD0 mux setup failed: %d\n",
" %d\n", ret); __func__, ret);
ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n"); ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n");
if (ret) if (ret)
pr_warning("da850_evm_init: can not open GPIO %d\n", pr_warn("%s: can not open GPIO %d\n",
DA850_MMCSD_CD_PIN); __func__, DA850_MMCSD_CD_PIN);
gpio_direction_input(DA850_MMCSD_CD_PIN); gpio_direction_input(DA850_MMCSD_CD_PIN);
ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n"); ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n");
if (ret) if (ret)
pr_warning("da850_evm_init: can not open GPIO %d\n", pr_warn("%s: can not open GPIO %d\n",
DA850_MMCSD_WP_PIN); __func__, DA850_MMCSD_WP_PIN);
gpio_direction_input(DA850_MMCSD_WP_PIN); gpio_direction_input(DA850_MMCSD_WP_PIN);
ret = da8xx_register_mmcsd0(&da850_mmc_config); ret = da8xx_register_mmcsd0(&da850_mmc_config);
if (ret) if (ret)
pr_warning("da850_evm_init: mmcsd0 registration failed:" pr_warn("%s: MMCSD0 registration failed: %d\n",
" %d\n", ret); __func__, ret);
ret = da850_wl12xx_init(); ret = da850_wl12xx_init();
if (ret) if (ret)
pr_warning("da850_evm_init: wl12xx initialization" pr_warn("%s: WL12xx initialization failed: %d\n",
" failed: %d\n", ret); __func__, ret);
} }
davinci_serial_init(&da850_evm_uart_config); davinci_serial_init(&da850_evm_uart_config);
@ -1511,16 +1504,14 @@ static __init void da850_evm_init(void)
ret = davinci_cfg_reg_list(da850_evm_mcasp_pins); ret = davinci_cfg_reg_list(da850_evm_mcasp_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: mcasp mux setup failed: %d\n", pr_warn("%s: McASP mux setup failed: %d\n", __func__, ret);
ret);
da850_evm_snd_data.sram_pool = sram_get_gen_pool(); da850_evm_snd_data.sram_pool = sram_get_gen_pool();
da8xx_register_mcasp(0, &da850_evm_snd_data); da8xx_register_mcasp(0, &da850_evm_snd_data);
ret = davinci_cfg_reg_list(da850_lcdcntl_pins); ret = davinci_cfg_reg_list(da850_lcdcntl_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", pr_warn("%s: LCDC mux setup failed: %d\n", __func__, ret);
ret);
ret = da8xx_register_uio_pruss(); ret = da8xx_register_uio_pruss();
if (ret) if (ret)
@ -1530,38 +1521,33 @@ static __init void da850_evm_init(void)
/* Handle board specific muxing for LCD here */ /* Handle board specific muxing for LCD here */
ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); ret = davinci_cfg_reg_list(da850_evm_lcdc_pins);
if (ret) if (ret)
pr_warning("da850_evm_init: evm specific lcd mux setup " pr_warn("%s: EVM specific LCD mux setup failed: %d\n",
"failed: %d\n", ret); __func__, ret);
ret = da850_lcd_hw_init(); ret = da850_lcd_hw_init();
if (ret) if (ret)
pr_warning("da850_evm_init: lcd initialization failed: %d\n", pr_warn("%s: LCD initialization failed: %d\n", __func__, ret);
ret);
sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl,
ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata);
if (ret) if (ret)
pr_warning("da850_evm_init: lcdc registration failed: %d\n", pr_warn("%s: LCDC registration failed: %d\n", __func__, ret);
ret);
ret = da8xx_register_rtc(); ret = da8xx_register_rtc();
if (ret) if (ret)
pr_warning("da850_evm_init: rtc setup failed: %d\n", ret); pr_warn("%s: RTC setup failed: %d\n", __func__, ret);
ret = da850_evm_init_cpufreq(); ret = da850_evm_init_cpufreq();
if (ret) if (ret)
pr_warning("da850_evm_init: cpufreq registration failed: %d\n", pr_warn("%s: cpufreq registration failed: %d\n", __func__, ret);
ret);
ret = da8xx_register_cpuidle(); ret = da8xx_register_cpuidle();
if (ret) if (ret)
pr_warning("da850_evm_init: cpuidle registration failed: %d\n", pr_warn("%s: cpuidle registration failed: %d\n", __func__, ret);
ret);
ret = da850_register_pm(&da850_pm_device); ret = da850_register_pm(&da850_pm_device);
if (ret) if (ret)
pr_warning("da850_evm_init: suspend registration failed: %d\n", pr_warn("%s: suspend registration failed: %d\n", __func__, ret);
ret);
da850_vpif_init(); da850_vpif_init();
@ -1573,13 +1559,11 @@ static __init void da850_evm_init(void)
ret = da8xx_register_spi_bus(1, ARRAY_SIZE(da850evm_spi_info)); ret = da8xx_register_spi_bus(1, ARRAY_SIZE(da850evm_spi_info));
if (ret) if (ret)
pr_warning("da850_evm_init: spi 1 registration failed: %d\n", pr_warn("%s: SPI 1 registration failed: %d\n", __func__, ret);
ret);
ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE);
if (ret) if (ret)
pr_warning("da850_evm_init: sata registration failed: %d\n", pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
ret);
da850_evm_setup_mac_addr(); da850_evm_setup_mac_addr();
} }

View File

@ -48,8 +48,7 @@ static __init void omapl138_hawk_config_emac(void)
val &= ~BIT(8); val &= ~BIT(8);
ret = davinci_cfg_reg_list(omapl138_hawk_mii_pins); ret = davinci_cfg_reg_list(omapl138_hawk_mii_pins);
if (ret) { if (ret) {
pr_warning("%s: cpgmac/mii mux setup failed: %d\n", pr_warn("%s: CPGMAC/MII mux setup failed: %d\n", __func__, ret);
__func__, ret);
return; return;
} }
@ -61,8 +60,7 @@ static __init void omapl138_hawk_config_emac(void)
ret = da8xx_register_emac(); ret = da8xx_register_emac();
if (ret) if (ret)
pr_warning("%s: emac registration failed: %d\n", pr_warn("%s: EMAC registration failed: %d\n", __func__, ret);
__func__, ret);
} }
/* /*
@ -147,15 +145,14 @@ static __init void omapl138_hawk_mmc_init(void)
ret = davinci_cfg_reg_list(hawk_mmcsd0_pins); ret = davinci_cfg_reg_list(hawk_mmcsd0_pins);
if (ret) { if (ret) {
pr_warning("%s: MMC/SD0 mux setup failed: %d\n", pr_warn("%s: MMC/SD0 mux setup failed: %d\n", __func__, ret);
__func__, ret);
return; return;
} }
ret = gpio_request_one(DA850_HAWK_MMCSD_CD_PIN, ret = gpio_request_one(DA850_HAWK_MMCSD_CD_PIN,
GPIOF_DIR_IN, "MMC CD"); GPIOF_DIR_IN, "MMC CD");
if (ret < 0) { if (ret < 0) {
pr_warning("%s: can not open GPIO %d\n", pr_warn("%s: can not open GPIO %d\n",
__func__, DA850_HAWK_MMCSD_CD_PIN); __func__, DA850_HAWK_MMCSD_CD_PIN);
return; return;
} }
@ -163,15 +160,14 @@ static __init void omapl138_hawk_mmc_init(void)
ret = gpio_request_one(DA850_HAWK_MMCSD_WP_PIN, ret = gpio_request_one(DA850_HAWK_MMCSD_WP_PIN,
GPIOF_DIR_IN, "MMC WP"); GPIOF_DIR_IN, "MMC WP");
if (ret < 0) { if (ret < 0) {
pr_warning("%s: can not open GPIO %d\n", pr_warn("%s: can not open GPIO %d\n",
__func__, DA850_HAWK_MMCSD_WP_PIN); __func__, DA850_HAWK_MMCSD_WP_PIN);
goto mmc_setup_wp_fail; goto mmc_setup_wp_fail;
} }
ret = da8xx_register_mmcsd0(&da850_mmc_config); ret = da8xx_register_mmcsd0(&da850_mmc_config);
if (ret) { if (ret) {
pr_warning("%s: MMC/SD0 registration failed: %d\n", pr_warn("%s: MMC/SD0 registration failed: %d\n", __func__, ret);
__func__, ret);
goto mmc_setup_mmcsd_fail; goto mmc_setup_mmcsd_fail;
} }
@ -250,8 +246,7 @@ static __init void omapl138_hawk_usb_init(void)
ret = davinci_cfg_reg_list(da850_hawk_usb11_pins); ret = davinci_cfg_reg_list(da850_hawk_usb11_pins);
if (ret) { if (ret) {
pr_warning("%s: USB 1.1 PinMux setup failed: %d\n", pr_warn("%s: USB 1.1 PinMux setup failed: %d\n", __func__, ret);
__func__, ret);
return; return;
} }
@ -280,8 +275,7 @@ static __init void omapl138_hawk_usb_init(void)
ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata); ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata);
if (ret) { if (ret) {
pr_warning("%s: USB 1.1 registration failed: %d\n", pr_warn("%s: USB 1.1 registration failed: %d\n", __func__, ret);
__func__, ret);
goto usb11_setup_fail; goto usb11_setup_fail;
} }
@ -307,8 +301,7 @@ static __init void omapl138_hawk_init(void)
ret = da850_register_edma(da850_edma_rsv); ret = da850_register_edma(da850_edma_rsv);
if (ret) if (ret)
pr_warning("%s: EDMA registration failed: %d\n", pr_warn("%s: EDMA registration failed: %d\n", __func__, ret);
__func__, ret);
omapl138_hawk_mmc_init(); omapl138_hawk_mmc_init();
@ -316,9 +309,8 @@ static __init void omapl138_hawk_init(void)
ret = da8xx_register_watchdog(); ret = da8xx_register_watchdog();
if (ret) if (ret)
pr_warning("omapl138_hawk_init: " pr_warn("%s: watchdog registration failed: %d\n",
"watchdog registration failed: %d\n", __func__, ret);
ret);
} }
#ifdef CONFIG_SERIAL_8250_CONSOLE #ifdef CONFIG_SERIAL_8250_CONSOLE

View File

@ -7,6 +7,7 @@
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <linux/irq.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
@ -23,6 +24,8 @@
#include <linux/platform_data/keypad-omap.h> #include <linux/platform_data/keypad-omap.h>
#include <linux/platform_data/lcd-mipid.h> #include <linux/platform_data/lcd-mipid.h>
#include <linux/platform_data/gpio-omap.h>
#include <linux/platform_data/i2c-cbus-gpio.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
@ -212,6 +215,45 @@ static inline void nokia770_mmc_init(void)
} }
#endif #endif
#if defined(CONFIG_I2C_CBUS_GPIO) || defined(CONFIG_I2C_CBUS_GPIO_MODULE)
static struct i2c_cbus_platform_data nokia770_cbus_data = {
.clk_gpio = OMAP_MPUIO(9),
.dat_gpio = OMAP_MPUIO(10),
.sel_gpio = OMAP_MPUIO(11),
};
static struct platform_device nokia770_cbus_device = {
.name = "i2c-cbus-gpio",
.id = 2,
.dev = {
.platform_data = &nokia770_cbus_data,
},
};
static struct i2c_board_info nokia770_i2c_board_info_2[] __initdata = {
{
I2C_BOARD_INFO("retu-mfd", 0x01),
},
};
static void __init nokia770_cbus_init(void)
{
const int retu_irq_gpio = 62;
if (gpio_request_one(retu_irq_gpio, GPIOF_IN, "Retu IRQ"))
return;
irq_set_irq_type(gpio_to_irq(retu_irq_gpio), IRQ_TYPE_EDGE_RISING);
nokia770_i2c_board_info_2[0].irq = gpio_to_irq(retu_irq_gpio);
i2c_register_board_info(2, nokia770_i2c_board_info_2,
ARRAY_SIZE(nokia770_i2c_board_info_2));
platform_device_register(&nokia770_cbus_device);
}
#else /* CONFIG_I2C_CBUS_GPIO */
static void __init nokia770_cbus_init(void)
{
}
#endif /* CONFIG_I2C_CBUS_GPIO */
static void __init omap_nokia770_init(void) static void __init omap_nokia770_init(void)
{ {
/* On Nokia 770, the SleepX signal is masked with an /* On Nokia 770, the SleepX signal is masked with an
@ -233,6 +275,7 @@ static void __init omap_nokia770_init(void)
mipid_dev_init(); mipid_dev_init();
omap1_usb_init(&nokia770_usb_config); omap1_usb_init(&nokia770_usb_config);
nokia770_mmc_init(); nokia770_mmc_init();
nokia770_cbus_init();
} }
MACHINE_START(NOKIA770, "Nokia 770") MACHINE_START(NOKIA770, "Nokia 770")

View File

@ -188,12 +188,6 @@ config MACH_OMAP_H4
select OMAP_DEBUG_DEVICES select OMAP_DEBUG_DEVICES
select OMAP_PACKAGE_ZAF select OMAP_PACKAGE_ZAF
config MACH_OMAP_APOLLON
bool "OMAP 2420 Apollon board"
depends on SOC_OMAP2420
default y
select OMAP_PACKAGE_ZAC
config MACH_OMAP_2430SDP config MACH_OMAP_2430SDP
bool "OMAP 2430 SDP board" bool "OMAP 2430 SDP board"
depends on SOC_OMAP2430 depends on SOC_OMAP2430

View File

@ -223,7 +223,6 @@ endif
obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o
obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o
obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o
obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o
obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o
obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o
obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o

View File

@ -25,6 +25,7 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/platform_data/spi-omap2-mcspi.h> #include <linux/platform_data/spi-omap2-mcspi.h>
#include <linux/platform_data/omap-twl4030.h>
#include <linux/usb/phy.h> #include <linux/usb/phy.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
@ -210,6 +211,19 @@ static struct omap2_hsmmc_info mmc[] = {
{} /* Terminator */ {} /* Terminator */
}; };
static struct omap_tw4030_pdata omap_twl4030_audio_data = {
.voice_connected = true,
.custom_routing = true,
.has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
.has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
.has_mainmic = true,
.has_submic = true,
.has_hsmic = true,
.has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
};
static int sdp3430_twl_gpio_setup(struct device *dev, static int sdp3430_twl_gpio_setup(struct device *dev,
unsigned gpio, unsigned ngpio) unsigned gpio, unsigned ngpio)
{ {
@ -226,6 +240,9 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
/* gpio + 15 is "sub_lcd_nRST" (output) */ /* gpio + 15 is "sub_lcd_nRST" (output) */
gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST"); gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST");
omap_twl4030_audio_data.jack_detect = gpio + 2;
omap_twl4030_audio_init("SDP3430", &omap_twl4030_audio_data);
return 0; return 0;
} }
@ -383,6 +400,9 @@ static int __init omap3430_i2c_init(void)
sdp3430_twldata.vpll2->constraints.apply_uV = true; sdp3430_twldata.vpll2->constraints.apply_uV = true;
sdp3430_twldata.vpll2->constraints.name = "VDVI"; sdp3430_twldata.vpll2->constraints.name = "VDVI";
sdp3430_twldata.audio->codec->hs_extmute = 1;
sdp3430_twldata.audio->codec->hs_extmute_gpio = -EINVAL;
omap3_pmic_init("twl4030", &sdp3430_twldata); omap3_pmic_init("twl4030", &sdp3430_twldata);
/* i2c2 on camera connector (for sensor control) and optional isp1301 */ /* i2c2 on camera connector (for sensor control) and optional isp1301 */

View File

@ -24,8 +24,10 @@
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/regulator/fixed.h> #include <linux/regulator/fixed.h>
#include <linux/pwm.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/leds_pwm.h> #include <linux/leds_pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/irqchip/arm-gic.h> #include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/omap4-keypad.h> #include <linux/platform_data/omap4-keypad.h>
#include <linux/usb/musb.h> #include <linux/usb/musb.h>
@ -257,10 +259,20 @@ static struct gpio_led_platform_data sdp4430_led_data = {
.num_leds = ARRAY_SIZE(sdp4430_gpio_leds), .num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
}; };
static struct pwm_lookup sdp4430_pwm_lookup[] = {
PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "omap4::keypad"),
PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", NULL),
PWM_LOOKUP("twl-pwmled", 0, "leds_pwm", "omap4:green:chrg"),
};
static struct led_pwm sdp4430_pwm_leds[] = { static struct led_pwm sdp4430_pwm_leds[] = {
{
.name = "omap4::keypad",
.max_brightness = 127,
.pwm_period_ns = 7812500,
},
{ {
.name = "omap4:green:chrg", .name = "omap4:green:chrg",
.pwm_id = 1,
.max_brightness = 255, .max_brightness = 255,
.pwm_period_ns = 7812500, .pwm_period_ns = 7812500,
}, },
@ -279,6 +291,20 @@ static struct platform_device sdp4430_leds_pwm = {
}, },
}; };
static struct platform_pwm_backlight_data sdp4430_backlight_data = {
.max_brightness = 127,
.dft_brightness = 127,
.pwm_period_ns = 7812500,
};
static struct platform_device sdp4430_backlight_pwm = {
.name = "pwm-backlight",
.id = -1,
.dev = {
.platform_data = &sdp4430_backlight_data,
},
};
static int omap_prox_activate(struct device *dev) static int omap_prox_activate(struct device *dev)
{ {
gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1); gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
@ -413,6 +439,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
&sdp4430_gpio_keys_device, &sdp4430_gpio_keys_device,
&sdp4430_leds_gpio, &sdp4430_leds_gpio,
&sdp4430_leds_pwm, &sdp4430_leds_pwm,
&sdp4430_backlight_pwm,
&sdp4430_vbat, &sdp4430_vbat,
&sdp4430_dmic_codec, &sdp4430_dmic_codec,
&sdp4430_abe_audio, &sdp4430_abe_audio,
@ -709,6 +736,7 @@ static void __init omap_4430sdp_init(void)
ARRAY_SIZE(sdp4430_spi_board_info)); ARRAY_SIZE(sdp4430_spi_board_info));
} }
pwm_add_table(sdp4430_pwm_lookup, ARRAY_SIZE(sdp4430_pwm_lookup));
status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data); status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data);
if (status) if (status)
pr_err("Keypad initialization failed: %d\n", status); pr_err("Keypad initialization failed: %d\n", status);

View File

@ -20,12 +20,18 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/mfd/tps65910.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include "common.h" #include "common.h"
#include "common-board-devices.h"
#include "board-flash.h"
#include "am35xx-emac.h" #include "am35xx-emac.h"
#include "mux.h" #include "mux.h"
@ -36,6 +42,7 @@
#ifdef CONFIG_OMAP_MUX #ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP),
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#endif #endif
@ -51,6 +58,54 @@ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
.reset_gpio_port[2] = -EINVAL .reset_gpio_port[2] = -EINVAL
}; };
static struct mtd_partition crane_nand_partitions[] = {
{
.name = "X-Loader",
.offset = 0,
.size = 4 * NAND_BLOCK_SIZE,
.mask_flags = MTD_WRITEABLE,
},
{
.name = "U-Boot",
.offset = MTDPART_OFS_APPEND,
.size = 14 * NAND_BLOCK_SIZE,
.mask_flags = MTD_WRITEABLE,
},
{
.name = "U-Boot Env",
.offset = MTDPART_OFS_APPEND,
.size = 2 * NAND_BLOCK_SIZE,
},
{
.name = "Kernel",
.offset = MTDPART_OFS_APPEND,
.size = 40 * NAND_BLOCK_SIZE,
},
{
.name = "File System",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
},
};
static struct tps65910_board tps65910_pdata = {
.irq = 7 + OMAP_INTC_START,
.en_ck32k_xtal = true,
};
static struct i2c_board_info __initdata tps65910_board_info[] = {
{
I2C_BOARD_INFO("tps65910", 0x2d),
.platform_data = &tps65910_pdata,
},
};
static void __init am3517_crane_i2c_init(void)
{
omap_register_i2c_bus(1, 2600, tps65910_board_info,
ARRAY_SIZE(tps65910_board_info));
}
static void __init am3517_crane_init(void) static void __init am3517_crane_init(void)
{ {
int ret; int ret;
@ -58,6 +113,10 @@ static void __init am3517_crane_init(void)
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
omap_serial_init(); omap_serial_init();
omap_sdrc_init(NULL, NULL); omap_sdrc_init(NULL, NULL);
board_nand_init(crane_nand_partitions,
ARRAY_SIZE(crane_nand_partitions), 0,
NAND_BUSWIDTH_16, NULL);
am3517_crane_i2c_init();
/* Configure GPIO for EHCI port */ /* Configure GPIO for EHCI port */
if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) { if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) {

View File

@ -1,342 +0,0 @@
/*
* linux/arch/arm/mach-omap2/board-apollon.c
*
* Copyright (C) 2005,2006 Samsung Electronics
* Author: Kyungmin Park <kyungmin.park@samsung.com>
*
* Modified from mach-omap/omap2/board-h4.c
*
* Code for apollon OMAP2 board. Should work on many OMAP2 systems where
* the bootloader passes the board-specific data to the kernel.
* Do not put any board specific code to this file; create a new machine
* type if you need custom low-level initializations.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/onenand.h>
#include <linux/delay.h>
#include <linux/leds.h>
#include <linux/err.h>
#include <linux/clk.h>
#include <linux/smc91x.h>
#include <linux/gpio.h>
#include <linux/platform_data/leds-omap.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include "common.h"
#include "gpmc.h"
#include <video/omapdss.h>
#include <video/omap-panel-generic-dpi.h>
#include "mux.h"
#include "control.h"
/* LED & Switch macros */
#define LED0_GPIO13 13
#define LED1_GPIO14 14
#define LED2_GPIO15 15
#define SW_ENTER_GPIO16 16
#define SW_UP_GPIO17 17
#define SW_DOWN_GPIO58 58
#define APOLLON_FLASH_CS 0
#define APOLLON_ETH_CS 1
#define APOLLON_ETHR_GPIO_IRQ 74
static struct mtd_partition apollon_partitions[] = {
{
.name = "X-Loader + U-Boot",
.offset = 0,
.size = SZ_128K,
.mask_flags = MTD_WRITEABLE,
},
{
.name = "params",
.offset = MTDPART_OFS_APPEND,
.size = SZ_128K,
},
{
.name = "kernel",
.offset = MTDPART_OFS_APPEND,
.size = SZ_2M,
},
{
.name = "rootfs",
.offset = MTDPART_OFS_APPEND,
.size = SZ_16M,
},
{
.name = "filesystem00",
.offset = MTDPART_OFS_APPEND,
.size = SZ_32M,
},
{
.name = "filesystem01",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
},
};
static struct onenand_platform_data apollon_flash_data = {
.parts = apollon_partitions,
.nr_parts = ARRAY_SIZE(apollon_partitions),
};
static struct resource apollon_flash_resource[] = {
[0] = {
.flags = IORESOURCE_MEM,
},
};
static struct platform_device apollon_onenand_device = {
.name = "onenand-flash",
.id = -1,
.dev = {
.platform_data = &apollon_flash_data,
},
.num_resources = ARRAY_SIZE(apollon_flash_resource),
.resource = apollon_flash_resource,
};
static void __init apollon_flash_init(void)
{
unsigned long base;
if (gpmc_cs_request(APOLLON_FLASH_CS, SZ_128K, &base) < 0) {
printk(KERN_ERR "Cannot request OneNAND GPMC CS\n");
return;
}
apollon_flash_resource[0].start = base;
apollon_flash_resource[0].end = base + SZ_128K - 1;
}
static struct smc91x_platdata appolon_smc91x_info = {
.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
.leda = RPC_LED_100_10,
.ledb = RPC_LED_TX_RX,
};
static struct resource apollon_smc91x_resources[] = {
[0] = {
.flags = IORESOURCE_MEM,
},
[1] = {
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
},
};
static struct platform_device apollon_smc91x_device = {
.name = "smc91x",
.id = -1,
.dev = {
.platform_data = &appolon_smc91x_info,
},
.num_resources = ARRAY_SIZE(apollon_smc91x_resources),
.resource = apollon_smc91x_resources,
};
static struct omap_led_config apollon_led_config[] = {
{
.cdev = {
.name = "apollon:led0",
},
.gpio = LED0_GPIO13,
},
{
.cdev = {
.name = "apollon:led1",
},
.gpio = LED1_GPIO14,
},
{
.cdev = {
.name = "apollon:led2",
},
.gpio = LED2_GPIO15,
},
};
static struct omap_led_platform_data apollon_led_data = {
.nr_leds = ARRAY_SIZE(apollon_led_config),
.leds = apollon_led_config,
};
static struct platform_device apollon_led_device = {
.name = "omap-led",
.id = -1,
.dev = {
.platform_data = &apollon_led_data,
},
};
static struct platform_device *apollon_devices[] __initdata = {
&apollon_onenand_device,
&apollon_smc91x_device,
&apollon_led_device,
};
static inline void __init apollon_init_smc91x(void)
{
unsigned long base;
unsigned int rate;
struct clk *gpmc_fck;
int eth_cs;
int err;
gpmc_fck = clk_get(NULL, "gpmc_fck"); /* Always on ENABLE_ON_INIT */
if (IS_ERR(gpmc_fck)) {
WARN_ON(1);
return;
}
clk_prepare_enable(gpmc_fck);
rate = clk_get_rate(gpmc_fck);
eth_cs = APOLLON_ETH_CS;
/* Make sure CS1 timings are correct */
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG1, 0x00011200);
if (rate >= 160000000) {
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f01);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080803);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1c0b1c0a);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
} else if (rate >= 130000000) {
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
} else {/* rate = 100000000 */
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x031A1F1F);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000003C2);
}
if (gpmc_cs_request(APOLLON_ETH_CS, SZ_16M, &base) < 0) {
printk(KERN_ERR "Failed to request GPMC CS for smc91x\n");
goto out;
}
apollon_smc91x_resources[0].start = base + 0x300;
apollon_smc91x_resources[0].end = base + 0x30f;
udelay(100);
omap_mux_init_gpio(APOLLON_ETHR_GPIO_IRQ, 0);
err = gpio_request_one(APOLLON_ETHR_GPIO_IRQ, GPIOF_IN, "SMC91x irq");
if (err) {
printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
APOLLON_ETHR_GPIO_IRQ);
gpmc_cs_free(APOLLON_ETH_CS);
}
out:
clk_disable_unprepare(gpmc_fck);
clk_put(gpmc_fck);
}
static struct panel_generic_dpi_data apollon_panel_data = {
.name = "apollon",
};
static struct omap_dss_device apollon_lcd_device = {
.name = "lcd",
.driver_name = "generic_dpi_panel",
.type = OMAP_DISPLAY_TYPE_DPI,
.phy.dpi.data_lines = 18,
.data = &apollon_panel_data,
};
static struct omap_dss_device *apollon_dss_devices[] = {
&apollon_lcd_device,
};
static struct omap_dss_board_info apollon_dss_data = {
.num_devices = ARRAY_SIZE(apollon_dss_devices),
.devices = apollon_dss_devices,
.default_device = &apollon_lcd_device,
};
static struct gpio apollon_gpio_leds[] __initdata = {
{ LED0_GPIO13, GPIOF_OUT_INIT_LOW, "LED0" }, /* LED0 - AA10 */
{ LED1_GPIO14, GPIOF_OUT_INIT_LOW, "LED1" }, /* LED1 - AA6 */
{ LED2_GPIO15, GPIOF_OUT_INIT_LOW, "LED2" }, /* LED2 - AA4 */
};
static void __init apollon_led_init(void)
{
omap_mux_init_signal("vlynq_clk.gpio_13", 0);
omap_mux_init_signal("vlynq_rx1.gpio_14", 0);
omap_mux_init_signal("vlynq_rx0.gpio_15", 0);
gpio_request_array(apollon_gpio_leds, ARRAY_SIZE(apollon_gpio_leds));
}
#ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR },
};
#endif
static void __init omap_apollon_init(void)
{
u32 v;
omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC);
apollon_init_smc91x();
apollon_led_init();
apollon_flash_init();
/* REVISIT: where's the correct place */
omap_mux_init_signal("sys_nirq", OMAP_PULL_ENA | OMAP_PULL_UP);
/* LCD PWR_EN */
omap_mux_init_signal("mcbsp2_dr.gpio_11", OMAP_PULL_ENA | OMAP_PULL_UP);
/* Use Internal loop-back in MMC/SDIO Module Input Clock selection */
v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
v |= (1 << 24);
omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0);
/*
* Make sure the serial ports are muxed on at this point.
* You have to mux them off in device drivers later on
* if not needed.
*/
apollon_smc91x_resources[1].start = gpio_to_irq(APOLLON_ETHR_GPIO_IRQ);
apollon_smc91x_resources[1].end = gpio_to_irq(APOLLON_ETHR_GPIO_IRQ);
platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices));
omap_serial_init();
omap_sdrc_init(NULL, NULL);
omap_display_init(&apollon_dss_data);
}
MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
/* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap242x_map_io,
.init_early = omap2420_init_early,
.init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq,
.init_machine = omap_apollon_init,
.init_late = omap2420_init_late,
.init_time = omap2_sync32k_timer_init,
.restart = omap2xxx_restart,
MACHINE_END

View File

@ -723,7 +723,7 @@ static void __init cm_t3x_common_init(void)
cm_t35_init_ethernet(); cm_t35_init_ethernet();
cm_t35_init_led(); cm_t35_init_led();
cm_t35_init_display(); cm_t35_init_display();
omap_twl4030_audio_init("cm-t3x"); omap_twl4030_audio_init("cm-t3x", NULL);
usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
usb_musb_init(NULL); usb_musb_init(NULL);

View File

@ -32,6 +32,7 @@
#include <linux/mtd/mtd.h> #include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h> #include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/mmc/host.h>
#include <linux/can/platform/ti_hecc.h> #include <linux/can/platform/ti_hecc.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
@ -46,6 +47,7 @@
#include "mux.h" #include "mux.h"
#include "control.h" #include "control.h"
#include "hsmmc.h"
#include "common-board-devices.h" #include "common-board-devices.h"
#include "am35xx-emac.h" #include "am35xx-emac.h"
#include "gpmc-nand.h" #include "gpmc-nand.h"
@ -121,6 +123,26 @@ static void cm_t3517_init_hecc(void)
static inline void cm_t3517_init_hecc(void) {} static inline void cm_t3517_init_hecc(void) {}
#endif #endif
#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
static struct omap2_hsmmc_info cm_t3517_mmc[] = {
{
.mmc = 1,
.caps = MMC_CAP_4_BIT_DATA,
.gpio_cd = 144,
.gpio_wp = 59,
},
{
.mmc = 2,
.caps = MMC_CAP_4_BIT_DATA,
.gpio_cd = -EINVAL,
.gpio_wp = -EINVAL,
},
{} /* Terminator */
};
#else
#define cm_t3517_mmc NULL
#endif
#if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) #if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE)
#define RTC_IO_GPIO (153) #define RTC_IO_GPIO (153)
#define RTC_WR_GPIO (154) #define RTC_WR_GPIO (154)
@ -271,6 +293,10 @@ static struct omap_board_mux board_mux[] __initdata = {
/* CM-T3517 USB HUB nRESET */ /* CM-T3517 USB HUB nRESET */
OMAP3_MUX(MCBSP4_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), OMAP3_MUX(MCBSP4_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
/* CD - GPIO144 and WP - GPIO59 for MMC1 - SB-T35 */
OMAP3_MUX(UART2_CTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
OMAP3_MUX(GPMC_CLK, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#endif #endif
@ -286,6 +312,7 @@ static void __init cm_t3517_init(void)
cm_t3517_init_usbh(); cm_t3517_init_usbh();
cm_t3517_init_hecc(); cm_t3517_init_hecc();
am35xx_emac_init(AM35XX_DEFAULT_MDIO_FREQUENCY, 1); am35xx_emac_init(AM35XX_DEFAULT_MDIO_FREQUENCY, 1);
omap_hsmmc_init(cm_t3517_mmc);
} }
MACHINE_START(CM_T3517, "Compulab CM-T3517") MACHINE_START(CM_T3517, "Compulab CM-T3517")

View File

@ -629,7 +629,7 @@ static void __init devkit8000_init(void)
board_nand_init(devkit8000_nand_partitions, board_nand_init(devkit8000_nand_partitions,
ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS, ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS,
NAND_BUSWIDTH_16, NULL); NAND_BUSWIDTH_16, NULL);
omap_twl4030_audio_init("omap3beagle"); omap_twl4030_audio_init("omap3beagle", NULL);
/* Ensure SDRC pins are mux'd for self-refresh */ /* Ensure SDRC pins are mux'd for self-refresh */
omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);

View File

@ -301,20 +301,20 @@ static struct omap2_hsmmc_info mmc[] = {
static struct gpio_led igep_gpio_leds[] = { static struct gpio_led igep_gpio_leds[] = {
[0] = { [0] = {
.name = "gpio-led:red:d0", .name = "omap3:red:user0",
.default_trigger = "default-off" .default_state = 0,
}, },
[1] = { [1] = {
.name = "gpio-led:green:d0", .name = "omap3:green:boot",
.default_trigger = "default-off", .default_state = 1,
}, },
[2] = { [2] = {
.name = "gpio-led:red:d1", .name = "omap3:red:user1",
.default_trigger = "default-off", .default_state = 0,
}, },
[3] = { [3] = {
.name = "gpio-led:green:d1", .name = "omap3:green:user1",
.default_trigger = "heartbeat", .default_state = 0,
.gpio = -EINVAL, /* gets replaced */ .gpio = -EINVAL, /* gets replaced */
.active_low = 1, .active_low = 1,
}, },
@ -631,7 +631,7 @@ static void __init igep_init(void)
igep_flash_init(); igep_flash_init();
igep_leds_init(); igep_leds_init();
omap_twl4030_audio_init("igep2"); omap_twl4030_audio_init("igep2", NULL);
/* /*
* WLAN-BT combo module from MuRata which has a Marvell WLAN * WLAN-BT combo module from MuRata which has a Marvell WLAN

View File

@ -20,6 +20,8 @@
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/pwm.h>
#include <linux/leds_pwm.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
@ -56,6 +58,32 @@
#define NAND_CS 0 #define NAND_CS 0
static struct pwm_lookup pwm_lookup[] = {
/* LEDB -> PMU_STAT */
PWM_LOOKUP("twl-pwmled", 1, "leds_pwm", "beagleboard::pmu_stat"),
};
static struct led_pwm pwm_leds[] = {
{
.name = "beagleboard::pmu_stat",
.max_brightness = 127,
.pwm_period_ns = 7812500,
},
};
static struct led_pwm_platform_data pwm_data = {
.num_leds = ARRAY_SIZE(pwm_leds),
.leds = pwm_leds,
};
static struct platform_device leds_pwm = {
.name = "leds_pwm",
.id = -1,
.dev = {
.platform_data = &pwm_data,
},
};
/* /*
* OMAP3 Beagle revision * OMAP3 Beagle revision
* Run time detection of Beagle revision is done by reading GPIO. * Run time detection of Beagle revision is done by reading GPIO.
@ -293,9 +321,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level, gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
"nEN_USB_PWR"); "nEN_USB_PWR");
/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
return 0; return 0;
} }
@ -377,11 +402,6 @@ static struct gpio_led gpio_leds[] = {
.default_trigger = "mmc0", .default_trigger = "mmc0",
.gpio = 149, .gpio = 149,
}, },
{
.name = "beagleboard::pmu_stat",
.gpio = -EINVAL, /* gets replaced */
.active_low = true,
},
}; };
static struct gpio_led_platform_data gpio_led_info = { static struct gpio_led_platform_data gpio_led_info = {
@ -429,6 +449,7 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
&leds_gpio, &leds_gpio,
&keys_gpio, &keys_gpio,
&madc_hwmon, &madc_hwmon,
&leds_pwm,
}; };
static struct usbhs_omap_platform_data usbhs_bdata __initdata = { static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
@ -526,7 +547,7 @@ static void __init omap3_beagle_init(void)
board_nand_init(omap3beagle_nand_partitions, board_nand_init(omap3beagle_nand_partitions,
ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS, ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS,
NAND_BUSWIDTH_16, NULL); NAND_BUSWIDTH_16, NULL);
omap_twl4030_audio_init("omap3beagle"); omap_twl4030_audio_init("omap3beagle", NULL);
/* Ensure msecure is mux'd to be able to set the RTC. */ /* Ensure msecure is mux'd to be able to set the RTC. */
omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH); omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH);
@ -534,6 +555,8 @@ static void __init omap3_beagle_init(void)
/* Ensure SDRC pins are mux'd for self-refresh */ /* Ensure SDRC pins are mux'd for self-refresh */
omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
} }
MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")

View File

@ -746,7 +746,7 @@ static void __init omap3_evm_init(void)
omap3evm_init_smsc911x(); omap3evm_init_smsc911x();
omap3_evm_display_init(); omap3_evm_display_init();
omap3_evm_wl12xx_init(); omap3_evm_wl12xx_init();
omap_twl4030_audio_init("omap3evm"); omap_twl4030_audio_init("omap3evm", NULL);
} }
MACHINE_START(OMAP3EVM, "OMAP3 EVM") MACHINE_START(OMAP3EVM, "OMAP3 EVM")

View File

@ -508,7 +508,7 @@ static void __init overo_init(void)
overo_display_init(); overo_display_init();
overo_init_led(); overo_init_led();
overo_init_keys(); overo_init_keys();
omap_twl4030_audio_init("overo"); omap_twl4030_audio_init("overo", NULL);
/* Ensure SDRC pins are mux'd for self-refresh */ /* Ensure SDRC pins are mux'd for self-refresh */
omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);

View File

@ -162,30 +162,39 @@ static struct tsl2563_platform_data rx51_tsl2563_platform_data = {
#if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE) #if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE)
static struct lp5523_led_config rx51_lp5523_led_config[] = { static struct lp5523_led_config rx51_lp5523_led_config[] = {
{ {
.name = "lp5523:kb1",
.chan_nr = 0, .chan_nr = 0,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:kb2",
.chan_nr = 1, .chan_nr = 1,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:kb3",
.chan_nr = 2, .chan_nr = 2,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:kb4",
.chan_nr = 3, .chan_nr = 3,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:b",
.chan_nr = 4, .chan_nr = 4,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:g",
.chan_nr = 5, .chan_nr = 5,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:r",
.chan_nr = 6, .chan_nr = 6,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:kb5",
.chan_nr = 7, .chan_nr = 7,
.led_current = 50, .led_current = 50,
}, { }, {
.name = "lp5523:kb6",
.chan_nr = 8, .chan_nr = 8,
.led_current = 50, .led_current = 50,
} }
@ -1253,6 +1262,16 @@ static void __init rx51_init_lirc(void)
} }
#endif #endif
static struct platform_device madc_hwmon = {
.name = "twl4030_madc_hwmon",
.id = -1,
};
static void __init rx51_init_twl4030_hwmon(void)
{
platform_device_register(&madc_hwmon);
}
void __init rx51_peripherals_init(void) void __init rx51_peripherals_init(void)
{ {
rx51_i2c_init(); rx51_i2c_init();
@ -1272,5 +1291,6 @@ void __init rx51_peripherals_init(void)
omap_hsmmc_init(mmc); omap_hsmmc_init(mmc);
rx51_charger_init(); rx51_charger_init();
rx51_init_twl4030_hwmon();
} }

View File

@ -20,6 +20,7 @@
#include <linux/wl12xx.h> #include <linux/wl12xx.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/platform_data/gpio-omap.h> #include <linux/platform_data/gpio-omap.h>
#include <linux/platform_data/omap-twl4030.h>
#include <linux/usb/phy.h> #include <linux/usb/phy.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
@ -35,11 +36,9 @@
#include "common-board-devices.h" #include "common-board-devices.h"
#define OMAP_ZOOM_WLAN_PMENA_GPIO (101) #define OMAP_ZOOM_WLAN_PMENA_GPIO (101)
#define ZOOM2_HEADSET_EXTMUTE_GPIO (153) #define OMAP_ZOOM_TSC2004_IRQ_GPIO (153)
#define OMAP_ZOOM_WLAN_IRQ_GPIO (162) #define OMAP_ZOOM_WLAN_IRQ_GPIO (162)
#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES)
/* Zoom2 has Qwerty keyboard*/ /* Zoom2 has Qwerty keyboard*/
static uint32_t board_keymap[] = { static uint32_t board_keymap[] = {
KEY(0, 0, KEY_E), KEY(0, 0, KEY_E),
@ -227,22 +226,31 @@ static struct omap2_hsmmc_info mmc[] = {
{} /* Terminator */ {} /* Terminator */
}; };
static struct omap_tw4030_pdata omap_twl4030_audio_data = {
.voice_connected = true,
.custom_routing = true,
.has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
.has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
.has_mainmic = true,
.has_submic = true,
.has_hsmic = true,
.has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
};
static int zoom_twl_gpio_setup(struct device *dev, static int zoom_twl_gpio_setup(struct device *dev,
unsigned gpio, unsigned ngpio) unsigned gpio, unsigned ngpio)
{ {
int ret;
/* gpio + 0 is "mmc0_cd" (input/IRQ) */ /* gpio + 0 is "mmc0_cd" (input/IRQ) */
mmc[0].gpio_cd = gpio + 0; mmc[0].gpio_cd = gpio + 0;
omap_hsmmc_late_init(mmc); omap_hsmmc_late_init(mmc);
ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, /* Audio setup */
"lcd enable"); omap_twl4030_audio_data.jack_detect = gpio + 2;
if (ret) omap_twl4030_audio_init("Zoom2", &omap_twl4030_audio_data);
pr_err("Failed to get LCD_PANEL_ENABLE_GPIO (gpio%d).\n",
LCD_PANEL_ENABLE_GPIO);
return ret; return 0;
} }
static struct twl4030_gpio_platform_data zoom_gpio_data = { static struct twl4030_gpio_platform_data zoom_gpio_data = {
@ -265,14 +273,9 @@ static int __init omap_i2c_init(void)
TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO, TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
if (machine_is_omap_zoom2()) { if (machine_is_omap_zoom2())
struct twl4030_codec_data *codec_data; zoom_twldata.audio->codec->ramp_delay_value = 3; /* 161 ms */
codec_data = zoom_twldata.audio->codec;
codec_data->ramp_delay_value = 3; /* 161 ms */
codec_data->hs_extmute = 1;
codec_data->hs_extmute_gpio = ZOOM2_HEADSET_EXTMUTE_GPIO;
}
omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata); omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
omap_register_i2c_bus(2, 400, NULL, 0); omap_register_i2c_bus(2, 400, NULL, 0);
omap_register_i2c_bus(3, 400, NULL, 0); omap_register_i2c_bus(3, 400, NULL, 0);

View File

@ -790,9 +790,6 @@ static int gpmc_mem_init(void)
* even if we didn't boot from ROM. * even if we didn't boot from ROM.
*/ */
boot_rom_space = BOOT_ROM_SPACE; boot_rom_space = BOOT_ROM_SPACE;
/* In apollon the CS0 is mapped as 0x0000 0000 */
if (machine_is_omap_apollon())
boot_rom_space = 0;
gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space; gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space;
gpmc_mem_root.end = GPMC_MEM_END; gpmc_mem_root.end = GPMC_MEM_END;

View File

@ -529,24 +529,29 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE) defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE)
#include <linux/platform_data/omap-twl4030.h> #include <linux/platform_data/omap-twl4030.h>
/* Commonly used configuration */
static struct omap_tw4030_pdata omap_twl4030_audio_data; static struct omap_tw4030_pdata omap_twl4030_audio_data;
static struct platform_device audio_device = { static struct platform_device audio_device = {
.name = "omap-twl4030", .name = "omap-twl4030",
.id = -1, .id = -1,
.dev = {
.platform_data = &omap_twl4030_audio_data,
},
}; };
void __init omap_twl4030_audio_init(char *card_name) void omap_twl4030_audio_init(char *card_name,
struct omap_tw4030_pdata *pdata)
{ {
omap_twl4030_audio_data.card_name = card_name; if (!pdata)
pdata = &omap_twl4030_audio_data;
pdata->card_name = card_name;
audio_device.dev.platform_data = pdata;
platform_device_register(&audio_device); platform_device_register(&audio_device);
} }
#else /* SOC_OMAP_TWL4030 */ #else /* SOC_OMAP_TWL4030 */
void __init omap_twl4030_audio_init(char *card_name) void omap_twl4030_audio_init(char *card_name,
struct omap_tw4030_pdata *pdata)
{ {
return; return;
} }

View File

@ -32,6 +32,7 @@
struct twl4030_platform_data; struct twl4030_platform_data;
struct twl6040_platform_data; struct twl6040_platform_data;
struct omap_tw4030_pdata;
struct i2c_board_info; struct i2c_board_info;
void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq, void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq,
@ -60,6 +61,6 @@ void omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data, void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
u32 pdata_flags, u32 regulators_flags); u32 pdata_flags, u32 regulators_flags);
void omap_twl4030_audio_init(char *card_name); void omap_twl4030_audio_init(char *card_name, struct omap_tw4030_pdata *pdata);
#endif /* __OMAP_PMIC_COMMON__ */ #endif /* __OMAP_PMIC_COMMON__ */

View File

@ -167,7 +167,7 @@ static unsigned long centro685_pin_config[] __initdata = {
/****************************************************************************** /******************************************************************************
* GPIO keyboard * GPIO keyboard
******************************************************************************/ ******************************************************************************/
#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) #if IS_ENABLED(CONFIG_KEYBOARD_PXA27x)
static unsigned int treo680_matrix_keys[] = { static unsigned int treo680_matrix_keys[] = {
KEY(0, 0, KEY_F8), /* Red/Off/Power */ KEY(0, 0, KEY_F8), /* Red/Off/Power */
KEY(0, 1, KEY_LEFT), KEY(0, 1, KEY_LEFT),
@ -315,7 +315,7 @@ static inline void palmtreo_kpc_init(void) {}
/****************************************************************************** /******************************************************************************
* USB host * USB host
******************************************************************************/ ******************************************************************************/
#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) #if IS_ENABLED(CONFIG_USB_OHCI_HCD)
static struct pxaohci_platform_data treo680_ohci_info = { static struct pxaohci_platform_data treo680_ohci_info = {
.port_mode = PMM_PERPORT_MODE, .port_mode = PMM_PERPORT_MODE,
.flags = ENABLE_PORT1 | ENABLE_PORT3, .flags = ENABLE_PORT1 | ENABLE_PORT3,
@ -396,6 +396,36 @@ static void __init palmtreo_leds_init(void)
platform_device_register(&palmtreo_leds); platform_device_register(&palmtreo_leds);
} }
/******************************************************************************
* diskonchip docg4 flash
******************************************************************************/
#if defined(CONFIG_MACH_TREO680)
/* REVISIT: does the centro have this device also? */
#if IS_ENABLED(CONFIG_MTD_NAND_DOCG4)
static struct resource docg4_resources[] = {
{
.start = 0x00000000,
.end = 0x00001FFF,
.flags = IORESOURCE_MEM,
},
};
static struct platform_device treo680_docg4_flash = {
.name = "docg4",
.id = -1,
.resource = docg4_resources,
.num_resources = ARRAY_SIZE(docg4_resources),
};
static void __init treo680_docg4_flash_init(void)
{
platform_device_register(&treo680_docg4_flash);
}
#else
static inline void treo680_docg4_flash_init(void) {}
#endif
#endif
/****************************************************************************** /******************************************************************************
* Machine init * Machine init
******************************************************************************/ ******************************************************************************/
@ -480,6 +510,7 @@ static void __init treo680_init(void)
treo680_gpio_init(); treo680_gpio_init();
palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY,
GPIO_NR_TREO680_SD_POWER, 0); GPIO_NR_TREO680_SD_POWER, 0);
treo680_docg4_flash_init();
} }
#endif #endif

View File

@ -238,6 +238,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"), INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL), INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
}; };
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -479,11 +479,10 @@ static void ag5evm_sdhi1_set_pwr(struct platform_device *pdev, int state)
static int power_gpio = -EINVAL; static int power_gpio = -EINVAL;
if (power_gpio < 0) { if (power_gpio < 0) {
int ret = gpio_request(GPIO_PORT114, "sdhi1_power"); int ret = gpio_request_one(GPIO_PORT114, GPIOF_OUT_INIT_LOW,
if (!ret) { "sdhi1_power");
if (!ret)
power_gpio = GPIO_PORT114; power_gpio = GPIO_PORT114;
gpio_direction_output(power_gpio, 0);
}
} }
/* /*
@ -604,14 +603,11 @@ static void __init ag5evm_init(void)
gpio_request(GPIO_FN_MMCD0_5_PU, NULL); gpio_request(GPIO_FN_MMCD0_5_PU, NULL);
gpio_request(GPIO_FN_MMCD0_6_PU, NULL); gpio_request(GPIO_FN_MMCD0_6_PU, NULL);
gpio_request(GPIO_FN_MMCD0_7_PU, NULL); gpio_request(GPIO_FN_MMCD0_7_PU, NULL);
gpio_request(GPIO_PORT208, NULL); /* Reset */ gpio_request_one(GPIO_PORT208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
gpio_direction_output(GPIO_PORT208, 1);
/* enable SMSC911X */ /* enable SMSC911X */
gpio_request(GPIO_PORT144, NULL); /* PINTA2 */ gpio_request_one(GPIO_PORT144, GPIOF_IN, NULL); /* PINTA2 */
gpio_direction_input(GPIO_PORT144); gpio_request_one(GPIO_PORT145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
gpio_request(GPIO_PORT145, NULL); /* RESET */
gpio_direction_output(GPIO_PORT145, 1);
/* FSI A */ /* FSI A */
gpio_request(GPIO_FN_FSIACK, NULL); gpio_request(GPIO_FN_FSIACK, NULL);
@ -626,15 +622,13 @@ static void __init ag5evm_init(void)
gpio_request(GPIO_FN_PORT243_IRDA_FIRSEL, NULL); gpio_request(GPIO_FN_PORT243_IRDA_FIRSEL, NULL);
/* LCD panel */ /* LCD panel */
gpio_request(GPIO_PORT217, NULL); /* RESET */ gpio_request_one(GPIO_PORT217, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
gpio_direction_output(GPIO_PORT217, 0);
mdelay(1); mdelay(1);
gpio_set_value(GPIO_PORT217, 1); gpio_set_value(GPIO_PORT217, 1);
mdelay(100); mdelay(100);
/* LCD backlight controller */ /* LCD backlight controller */
gpio_request(GPIO_PORT235, NULL); /* RESET */ gpio_request_one(GPIO_PORT235, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
gpio_direction_output(GPIO_PORT235, 0);
lcd_backlight_set_brightness(0); lcd_backlight_set_brightness(0);
/* enable SDHI0 on CN15 [SD I/F] */ /* enable SDHI0 on CN15 [SD I/F] */

View File

@ -143,6 +143,10 @@
* *
* SW41 : ON : SH-Mobile AP4 Audio Mode * SW41 : ON : SH-Mobile AP4 Audio Mode
* : OFF : Bluetooth Audio Mode * : OFF : Bluetooth Audio Mode
*
* it needs amixer settings for playing
*
* amixer set "Headphone Enable" on
*/ */
/* /*
@ -1036,9 +1040,7 @@ static int ts_get_pendown_state(void)
gpio_free(GPIO_TSC_IRQ); gpio_free(GPIO_TSC_IRQ);
gpio_request(GPIO_TSC_PORT, NULL); gpio_request_one(GPIO_TSC_PORT, GPIOF_IN, NULL);
gpio_direction_input(GPIO_TSC_PORT);
val = gpio_get_value(GPIO_TSC_PORT); val = gpio_get_value(GPIO_TSC_PORT);
@ -1119,18 +1121,10 @@ static void __init ap4evb_init(void)
gpio_request(GPIO_FN_IRQ6_39, NULL); gpio_request(GPIO_FN_IRQ6_39, NULL);
/* enable Debug switch (S6) */ /* enable Debug switch (S6) */
gpio_request(GPIO_PORT32, NULL); gpio_request_one(GPIO_PORT32, GPIOF_IN | GPIOF_EXPORT, NULL);
gpio_request(GPIO_PORT33, NULL); gpio_request_one(GPIO_PORT33, GPIOF_IN | GPIOF_EXPORT, NULL);
gpio_request(GPIO_PORT34, NULL); gpio_request_one(GPIO_PORT34, GPIOF_IN | GPIOF_EXPORT, NULL);
gpio_request(GPIO_PORT35, NULL); gpio_request_one(GPIO_PORT35, GPIOF_IN | GPIOF_EXPORT, NULL);
gpio_direction_input(GPIO_PORT32);
gpio_direction_input(GPIO_PORT33);
gpio_direction_input(GPIO_PORT34);
gpio_direction_input(GPIO_PORT35);
gpio_export(GPIO_PORT32, 0);
gpio_export(GPIO_PORT33, 0);
gpio_export(GPIO_PORT34, 0);
gpio_export(GPIO_PORT35, 0);
/* SDHI0 */ /* SDHI0 */
gpio_request(GPIO_FN_SDHICD0, NULL); gpio_request(GPIO_FN_SDHICD0, NULL);
@ -1178,8 +1172,7 @@ static void __init ap4evb_init(void)
gpio_request(GPIO_FN_FSIAILR, NULL); gpio_request(GPIO_FN_FSIAILR, NULL);
gpio_request(GPIO_FN_FSIAISLD, NULL); gpio_request(GPIO_FN_FSIAISLD, NULL);
gpio_request(GPIO_FN_FSIAOSLD, NULL); gpio_request(GPIO_FN_FSIAOSLD, NULL);
gpio_request(GPIO_PORT161, NULL); gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
gpio_direction_output(GPIO_PORT161, 0); /* slave */
gpio_request(GPIO_PORT9, NULL); gpio_request(GPIO_PORT9, NULL);
gpio_request(GPIO_PORT10, NULL); gpio_request(GPIO_PORT10, NULL);
@ -1187,8 +1180,7 @@ static void __init ap4evb_init(void)
gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */ gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */
/* card detect pin for MMC slot (CN7) */ /* card detect pin for MMC slot (CN7) */
gpio_request(GPIO_PORT41, NULL); gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
gpio_direction_input(GPIO_PORT41);
/* setup FSI2 port B (HDMI) */ /* setup FSI2 port B (HDMI) */
gpio_request(GPIO_FN_FSIBCK, NULL); gpio_request(GPIO_FN_FSIBCK, NULL);
@ -1276,11 +1268,8 @@ static void __init ap4evb_init(void)
gpio_request(GPIO_FN_LCDDISP, NULL); gpio_request(GPIO_FN_LCDDISP, NULL);
gpio_request(GPIO_FN_LCDDCK, NULL); gpio_request(GPIO_FN_LCDDCK, NULL);
gpio_request(GPIO_PORT189, NULL); /* backlight */ gpio_request_one(GPIO_PORT189, GPIOF_OUT_INIT_HIGH, NULL); /* backlight */
gpio_direction_output(GPIO_PORT189, 1); gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
gpio_request(GPIO_PORT151, NULL); /* LCDDON */
gpio_direction_output(GPIO_PORT151, 1);
lcdc_info.clock_source = LCDC_CLK_BUS; lcdc_info.clock_source = LCDC_CLK_BUS;
lcdc_info.ch[0].interface_type = RGB18; lcdc_info.ch[0].interface_type = RGB18;

View File

@ -124,6 +124,14 @@
* this command is required when playback. * this command is required when playback.
* *
* # amixer set "Headphone" 50 * # amixer set "Headphone" 50
*
* this command is required when capture.
*
* # amixer set "Input PGA" 15
* # amixer set "Left Input Mixer MicP" on
* # amixer set "Left Input Mixer MicN" on
* # amixer set "Right Input Mixer MicN" on
* # amixer set "Right Input Mixer MicP" on
*/ */
/* /*
@ -700,9 +708,9 @@ static int mt9t111_power(struct device *dev, int mode)
/* video1 (= CON1 camera) expect 24MHz */ /* video1 (= CON1 camera) expect 24MHz */
clk_set_rate(mclk, clk_round_rate(mclk, 24000000)); clk_set_rate(mclk, clk_round_rate(mclk, 24000000));
clk_enable(mclk); clk_enable(mclk);
gpio_direction_output(GPIO_PORT158, 1); gpio_set_value(GPIO_PORT158, 1);
} else { } else {
gpio_direction_output(GPIO_PORT158, 0); gpio_set_value(GPIO_PORT158, 0);
clk_disable(mclk); clk_disable(mclk);
} }
@ -992,16 +1000,12 @@ static void __init eva_init(void)
gpio_request(GPIO_FN_LCD0_DISP, NULL); gpio_request(GPIO_FN_LCD0_DISP, NULL);
gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL); gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
gpio_request(GPIO_PORT61, NULL); /* LCDDON */ gpio_request_one(GPIO_PORT61, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
gpio_direction_output(GPIO_PORT61, 1); gpio_request_one(GPIO_PORT202, GPIOF_OUT_INIT_LOW, NULL); /* LCD0_LED_CONT */
gpio_request(GPIO_PORT202, NULL); /* LCD0_LED_CONT */
gpio_direction_output(GPIO_PORT202, 0);
/* Touchscreen */ /* Touchscreen */
gpio_request(GPIO_FN_IRQ10, NULL); /* TP_INT */ gpio_request(GPIO_FN_IRQ10, NULL); /* TP_INT */
gpio_request(GPIO_PORT166, NULL); /* TP_RST_B */ gpio_request_one(GPIO_PORT166, GPIOF_OUT_INIT_HIGH, NULL); /* TP_RST_B */
gpio_direction_output(GPIO_PORT166, 1);
/* GETHER */ /* GETHER */
gpio_request(GPIO_FN_ET_CRS, NULL); gpio_request(GPIO_FN_ET_CRS, NULL);
@ -1024,12 +1028,10 @@ static void __init eva_init(void)
gpio_request(GPIO_FN_ET_RX_DV, NULL); gpio_request(GPIO_FN_ET_RX_DV, NULL);
gpio_request(GPIO_FN_ET_RX_CLK, NULL); gpio_request(GPIO_FN_ET_RX_CLK, NULL);
gpio_request(GPIO_PORT18, NULL); /* PHY_RST */ gpio_request_one(GPIO_PORT18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */
gpio_direction_output(GPIO_PORT18, 1);
/* USB */ /* USB */
gpio_request(GPIO_PORT159, NULL); /* USB_DEVICE_MODE */ gpio_request_one(GPIO_PORT159, GPIOF_IN, NULL); /* USB_DEVICE_MODE */
gpio_direction_input(GPIO_PORT159);
if (gpio_get_value(GPIO_PORT159)) { if (gpio_get_value(GPIO_PORT159)) {
/* USB Host */ /* USB Host */
@ -1043,8 +1045,7 @@ static void __init eva_init(void)
* and select GPIO_PORT209 here * and select GPIO_PORT209 here
*/ */
gpio_request(GPIO_FN_IRQ7_PORT209, NULL); gpio_request(GPIO_FN_IRQ7_PORT209, NULL);
gpio_request(GPIO_PORT209, NULL); gpio_request_one(GPIO_PORT209, GPIOF_IN, NULL);
gpio_direction_input(GPIO_PORT209);
platform_device_register(&usbhsf_device); platform_device_register(&usbhsf_device);
usb = &usbhsf_device; usb = &usbhsf_device;
@ -1059,12 +1060,9 @@ static void __init eva_init(void)
gpio_request(GPIO_FN_SDHI0_D3, NULL); gpio_request(GPIO_FN_SDHI0_D3, NULL);
gpio_request(GPIO_FN_SDHI0_WP, NULL); gpio_request(GPIO_FN_SDHI0_WP, NULL);
gpio_request(GPIO_PORT17, NULL); /* SDHI0_18/33_B */ gpio_request_one(GPIO_PORT17, GPIOF_OUT_INIT_LOW, NULL); /* SDHI0_18/33_B */
gpio_request(GPIO_PORT74, NULL); /* SDHI0_PON */ gpio_request_one(GPIO_PORT74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
gpio_request(GPIO_PORT75, NULL); /* SDSLOT1_PON */ gpio_request_one(GPIO_PORT75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
gpio_direction_output(GPIO_PORT17, 0);
gpio_direction_output(GPIO_PORT74, 1);
gpio_direction_output(GPIO_PORT75, 1);
/* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */ /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
@ -1101,12 +1099,10 @@ static void __init eva_init(void)
gpio_request(GPIO_FN_VIO_CKO, NULL); gpio_request(GPIO_FN_VIO_CKO, NULL);
/* CON1/CON15 Camera */ /* CON1/CON15 Camera */
gpio_request(GPIO_PORT173, NULL); /* STANDBY */ gpio_request_one(GPIO_PORT173, GPIOF_OUT_INIT_LOW, NULL); /* STANDBY */
gpio_request(GPIO_PORT172, NULL); /* RST */ gpio_request_one(GPIO_PORT172, GPIOF_OUT_INIT_HIGH, NULL); /* RST */
gpio_request(GPIO_PORT158, NULL); /* CAM_PON */ /* see mt9t111_power() */
gpio_direction_output(GPIO_PORT173, 0); gpio_request_one(GPIO_PORT158, GPIOF_OUT_INIT_LOW, NULL); /* CAM_PON */
gpio_direction_output(GPIO_PORT172, 1);
gpio_direction_output(GPIO_PORT158, 0); /* see mt9t111_power() */
/* FSI-WM8978 */ /* FSI-WM8978 */
gpio_request(GPIO_FN_FSIAIBT, NULL); gpio_request(GPIO_FN_FSIAIBT, NULL);
@ -1133,15 +1129,13 @@ static void __init eva_init(void)
* DBGMD/LCDC0/FSIA MUX * DBGMD/LCDC0/FSIA MUX
* DBGMD_SELECT_B should be set after setting PFC Function. * DBGMD_SELECT_B should be set after setting PFC Function.
*/ */
gpio_request(GPIO_PORT176, NULL); gpio_request_one(GPIO_PORT176, GPIOF_OUT_INIT_HIGH, NULL);
gpio_direction_output(GPIO_PORT176, 1);
/* /*
* We can switch CON8/CON14 by SW1.5, * We can switch CON8/CON14 by SW1.5,
* but it needs after DBGMD_SELECT_B * but it needs after DBGMD_SELECT_B
*/ */
gpio_request(GPIO_PORT6, NULL); gpio_request_one(GPIO_PORT6, GPIOF_IN, NULL);
gpio_direction_input(GPIO_PORT6);
if (gpio_get_value(GPIO_PORT6)) { if (gpio_get_value(GPIO_PORT6)) {
/* CON14 enable */ /* CON14 enable */
} else { } else {
@ -1155,8 +1149,8 @@ static void __init eva_init(void)
gpio_request(GPIO_FN_SDHI1_CD, NULL); gpio_request(GPIO_FN_SDHI1_CD, NULL);
gpio_request(GPIO_FN_SDHI1_WP, NULL); gpio_request(GPIO_FN_SDHI1_WP, NULL);
gpio_request(GPIO_PORT16, NULL); /* SDSLOT2_PON */ /* SDSLOT2_PON */
gpio_direction_output(GPIO_PORT16, 1); gpio_request_one(GPIO_PORT16, GPIOF_OUT_INIT_HIGH, NULL);
platform_device_register(&sdhi1_device); platform_device_register(&sdhi1_device);
} }
@ -1175,8 +1169,6 @@ static void __init eva_init(void)
platform_add_devices(eva_devices, platform_add_devices(eva_devices,
ARRAY_SIZE(eva_devices)); ARRAY_SIZE(eva_devices));
eva_clock_init();
rmobile_add_device_to_domain("A4LC", &lcdc0_device); rmobile_add_device_to_domain("A4LC", &lcdc0_device);
rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device); rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device);
if (usb) if (usb)
@ -1189,6 +1181,9 @@ static void __init eva_earlytimer_init(void)
{ {
r8a7740_clock_init(MD_CK0 | MD_CK2); r8a7740_clock_init(MD_CK0 | MD_CK2);
shmobile_earlytimer_init(); shmobile_earlytimer_init();
/* the rate of extal1 clock must be set before late_time_init */
eva_clock_init();
} }
static void __init eva_add_early_devices(void) static void __init eva_add_early_devices(void)

View File

@ -392,8 +392,7 @@ static void __init bonito_init(void)
/* /*
* base board settings * base board settings
*/ */
gpio_request(GPIO_PORT176, NULL); gpio_request_one(GPIO_PORT176, GPIOF_IN, NULL);
gpio_direction_input(GPIO_PORT176);
if (!gpio_get_value(GPIO_PORT176)) { if (!gpio_get_value(GPIO_PORT176)) {
u16 bsw2; u16 bsw2;
u16 bsw3; u16 bsw3;
@ -462,8 +461,8 @@ static void __init bonito_init(void)
gpio_request(GPIO_FN_LCD0_DISP, NULL); gpio_request(GPIO_FN_LCD0_DISP, NULL);
gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL); gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
gpio_request(GPIO_PORT61, NULL); /* LCDDON */ gpio_request_one(GPIO_PORT61, GPIOF_OUT_INIT_HIGH,
gpio_direction_output(GPIO_PORT61, 1); NULL); /* LCDDON */
/* backlight on */ /* backlight on */
bonito_fpga_write(LCDCR, 1); bonito_fpga_write(LCDCR, 1);

View File

@ -474,10 +474,8 @@ static void __init kota2_init(void)
gpio_request(GPIO_FN_D15_NAF15, NULL); gpio_request(GPIO_FN_D15_NAF15, NULL);
gpio_request(GPIO_FN_CS5A_, NULL); gpio_request(GPIO_FN_CS5A_, NULL);
gpio_request(GPIO_FN_WE0__FWE, NULL); gpio_request(GPIO_FN_WE0__FWE, NULL);
gpio_request(GPIO_PORT144, NULL); /* PINTA2 */ gpio_request_one(GPIO_PORT144, GPIOF_IN, NULL); /* PINTA2 */
gpio_direction_input(GPIO_PORT144); gpio_request_one(GPIO_PORT145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
gpio_request(GPIO_PORT145, NULL); /* RESET */
gpio_direction_output(GPIO_PORT145, 1);
/* KEYSC */ /* KEYSC */
gpio_request(GPIO_FN_KEYIN0_PU, NULL); gpio_request(GPIO_FN_KEYIN0_PU, NULL);
@ -509,8 +507,7 @@ static void __init kota2_init(void)
gpio_request(GPIO_FN_MMCD0_6, NULL); gpio_request(GPIO_FN_MMCD0_6, NULL);
gpio_request(GPIO_FN_MMCD0_7, NULL); gpio_request(GPIO_FN_MMCD0_7, NULL);
gpio_request(GPIO_FN_MMCCMD0, NULL); gpio_request(GPIO_FN_MMCCMD0, NULL);
gpio_request(GPIO_PORT208, NULL); /* Reset */ gpio_request_one(GPIO_PORT208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
gpio_direction_output(GPIO_PORT208, 1);
/* SDHI0 (microSD) */ /* SDHI0 (microSD) */
gpio_request(GPIO_FN_SDHICD0_PU, NULL); gpio_request(GPIO_FN_SDHICD0_PU, NULL);

View File

@ -623,7 +623,7 @@ static int __init as3711_enable_lcdc_backlight(void)
0x45, 0xf0, 0x45, 0xf0,
}; };
if (!machine_is_kzm9g()) if (!of_machine_is_compatible("renesas,kzm9g"))
return 0; return 0;
if (!a) if (!a)
@ -672,8 +672,7 @@ static void __init kzm_init(void)
gpio_request(GPIO_FN_CS4_, NULL); /* CS4 */ gpio_request(GPIO_FN_CS4_, NULL); /* CS4 */
/* SMSC */ /* SMSC */
gpio_request(GPIO_PORT224, NULL); /* IRQ3 */ gpio_request_one(GPIO_PORT224, GPIOF_IN, NULL); /* IRQ3 */
gpio_direction_input(GPIO_PORT224);
/* LCDC */ /* LCDC */
gpio_request(GPIO_FN_LCDD23, NULL); gpio_request(GPIO_FN_LCDD23, NULL);
@ -703,14 +702,11 @@ static void __init kzm_init(void)
gpio_request(GPIO_FN_LCDDISP, NULL); gpio_request(GPIO_FN_LCDDISP, NULL);
gpio_request(GPIO_FN_LCDDCK, NULL); gpio_request(GPIO_FN_LCDDCK, NULL);
gpio_request(GPIO_PORT222, NULL); /* LCDCDON */ gpio_request_one(GPIO_PORT222, GPIOF_OUT_INIT_HIGH, NULL); /* LCDCDON */
gpio_request(GPIO_PORT226, NULL); /* SC */ gpio_request_one(GPIO_PORT226, GPIOF_OUT_INIT_HIGH, NULL); /* SC */
gpio_direction_output(GPIO_PORT222, 1);
gpio_direction_output(GPIO_PORT226, 1);
/* Touchscreen */ /* Touchscreen */
gpio_request(GPIO_PORT223, NULL); /* IRQ8 */ gpio_request_one(GPIO_PORT223, GPIOF_IN, NULL); /* IRQ8 */
gpio_direction_input(GPIO_PORT223);
/* enable MMCIF */ /* enable MMCIF */
gpio_request(GPIO_FN_MMCCLK0, NULL); gpio_request(GPIO_FN_MMCCLK0, NULL);
@ -734,8 +730,7 @@ static void __init kzm_init(void)
gpio_request(GPIO_FN_SDHID0_1, NULL); gpio_request(GPIO_FN_SDHID0_1, NULL);
gpio_request(GPIO_FN_SDHID0_0, NULL); gpio_request(GPIO_FN_SDHID0_0, NULL);
gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL); gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
gpio_request(GPIO_PORT15, NULL); gpio_request_one(GPIO_PORT15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
gpio_direction_output(GPIO_PORT15, 1); /* power */
/* enable Micro SD */ /* enable Micro SD */
gpio_request(GPIO_FN_SDHID2_0, NULL); gpio_request(GPIO_FN_SDHID2_0, NULL);
@ -744,8 +739,7 @@ static void __init kzm_init(void)
gpio_request(GPIO_FN_SDHID2_3, NULL); gpio_request(GPIO_FN_SDHID2_3, NULL);
gpio_request(GPIO_FN_SDHICMD2, NULL); gpio_request(GPIO_FN_SDHICMD2, NULL);
gpio_request(GPIO_FN_SDHICLK2, NULL); gpio_request(GPIO_FN_SDHICLK2, NULL);
gpio_request(GPIO_PORT14, NULL); gpio_request_one(GPIO_PORT14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
gpio_direction_output(GPIO_PORT14, 1); /* power */
/* I2C 3 */ /* I2C 3 */
gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL); gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL);

View File

@ -202,9 +202,7 @@
* *
* it needs amixer settings for playing * it needs amixer settings for playing
* *
* amixer set "Headphone" on * amixer set "Headphone Enable" on
* amixer set "HPOUTL Mixer DACH" on
* amixer set "HPOUTR Mixer DACH" on
*/ */
/* Fixed 3.3V and 1.8V regulators to be used by multiple devices */ /* Fixed 3.3V and 1.8V regulators to be used by multiple devices */
@ -1404,11 +1402,10 @@ static void __init mackerel_init(void)
gpio_request(GPIO_FN_LCDDISP, NULL); gpio_request(GPIO_FN_LCDDISP, NULL);
gpio_request(GPIO_FN_LCDDCK, NULL); gpio_request(GPIO_FN_LCDDCK, NULL);
gpio_request(GPIO_PORT31, NULL); /* backlight */ /* backlight, off by default */
gpio_direction_output(GPIO_PORT31, 0); /* off by default */ gpio_request_one(GPIO_PORT31, GPIOF_OUT_INIT_LOW, NULL);
gpio_request(GPIO_PORT151, NULL); /* LCDDON */ gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
gpio_direction_output(GPIO_PORT151, 1);
/* USBHS0 */ /* USBHS0 */
gpio_request(GPIO_FN_VBUS0_0, NULL); gpio_request(GPIO_FN_VBUS0_0, NULL);
@ -1424,8 +1421,7 @@ static void __init mackerel_init(void)
gpio_request(GPIO_FN_FSIAILR, NULL); gpio_request(GPIO_FN_FSIAILR, NULL);
gpio_request(GPIO_FN_FSIAISLD, NULL); gpio_request(GPIO_FN_FSIAISLD, NULL);
gpio_request(GPIO_FN_FSIAOSLD, NULL); gpio_request(GPIO_FN_FSIAOSLD, NULL);
gpio_request(GPIO_PORT161, NULL); gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
gpio_direction_output(GPIO_PORT161, 0); /* slave */
gpio_request(GPIO_PORT9, NULL); gpio_request(GPIO_PORT9, NULL);
gpio_request(GPIO_PORT10, NULL); gpio_request(GPIO_PORT10, NULL);
@ -1479,8 +1475,7 @@ static void __init mackerel_init(void)
gpio_request(GPIO_FN_SDHID1_0, NULL); gpio_request(GPIO_FN_SDHID1_0, NULL);
#endif #endif
/* card detect pin for MMC slot (CN7) */ /* card detect pin for MMC slot (CN7) */
gpio_request(GPIO_PORT41, NULL); gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
gpio_direction_input(GPIO_PORT41);
/* enable SDHI2 */ /* enable SDHI2 */
gpio_request(GPIO_FN_SDHICMD2, NULL); gpio_request(GPIO_FN_SDHICMD2, NULL);
@ -1491,8 +1486,7 @@ static void __init mackerel_init(void)
gpio_request(GPIO_FN_SDHID2_0, NULL); gpio_request(GPIO_FN_SDHID2_0, NULL);
/* card detect pin for microSD slot (CN23) */ /* card detect pin for microSD slot (CN23) */
gpio_request(GPIO_PORT162, NULL); gpio_request_one(GPIO_PORT162, GPIOF_IN, NULL);
gpio_direction_input(GPIO_PORT162);
/* MMCIF */ /* MMCIF */
gpio_request(GPIO_FN_MMCD0_0, NULL); gpio_request(GPIO_FN_MMCD0_0, NULL);

View File

@ -291,30 +291,6 @@ static struct panel_config generic_dpi_panels[] = {
.name = "h4", .name = "h4",
}, },
/* Unknown panel used in Samsung OMAP2 Apollon */
{
{
.x_res = 480,
.y_res = 272,
.pixel_clock = 6250,
.hsw = 41,
.hfp = 2,
.hbp = 2,
.vsw = 10,
.vfp = 2,
.vbp = 2,
.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
.sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
},
.name = "apollon",
},
/* FocalTech ETM070003DH6 */ /* FocalTech ETM070003DH6 */
{ {
{ {