diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-18 19:59:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-18 19:59:30 -0400 |
commit | 9b59a0a4eefa132a3899b6e8d362f92559c67844 (patch) | |
tree | a0611ccf73e261f8cb55001138518bfcb56171ae /arch/arm | |
parent | c3a0bd7515c682f4529a35318b6712c9ae456edc (diff) | |
parent | 29b2ee5af5f3a02846bd38a1e2121d62ee5f6aca (diff) |
Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
ARM/OMAP: Remove the +x bit from a couple of source files
omap: McBSP: Drop unnecessary status/error bit clearing on reg_cacheretrieved register values
OMAP4: fix temporary hacks that break multi-omap PM
OMAP2: cpu_is_omap2*: fix compile-time removal of unused code
omap3: pandora: add missing i2c3 board_info
omap: mach-omap2/io.c: fix function declarations
omap: Fix gpio_resume_after_retention
omap3: Fix support for the LEDs connected to GPIO outputs on IGEP v2board
omap: Checkpatch cleanup for blizzard.h
omap: pass the reboot command to the boot loader
omap2/3/4: mailbox: remove compiler warning
OMAP2: serial.c: Fix number of uarts in early_init
omap: Enable PM_RUNTIME in defconfigs to avoid USB compile errors
omap2: Update n8x0 defconfig to test multi-omap and DMA api changes
omap2: add USB initialization for tusb6010
omap4: Fix build break by moving omap_smc1 into a separate .S
omap2/3/4: ehci: avoid compiler error with touchbook
omap3: Fix compile for Touch Book early_param
Diffstat (limited to 'arch/arm')
42 files changed, 403 insertions, 132 deletions
diff --git a/arch/arm/configs/cm_t35_defconfig b/arch/arm/configs/cm_t35_defconfig index 893cd267e075..032b49bad91f 100644 --- a/arch/arm/configs/cm_t35_defconfig +++ b/arch/arm/configs/cm_t35_defconfig | |||
@@ -358,7 +358,7 @@ CONFIG_PM_SLEEP=y | |||
358 | CONFIG_SUSPEND=y | 358 | CONFIG_SUSPEND=y |
359 | CONFIG_SUSPEND_FREEZER=y | 359 | CONFIG_SUSPEND_FREEZER=y |
360 | # CONFIG_APM_EMULATION is not set | 360 | # CONFIG_APM_EMULATION is not set |
361 | # CONFIG_PM_RUNTIME is not set | 361 | CONFIG_PM_RUNTIME=y |
362 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 362 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
363 | CONFIG_NET=y | 363 | CONFIG_NET=y |
364 | 364 | ||
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig index 75cae18fbcb6..de0c28aa43e7 100644 --- a/arch/arm/configs/n770_defconfig +++ b/arch/arm/configs/n770_defconfig | |||
@@ -308,6 +308,7 @@ CONFIG_PM_SLEEP=y | |||
308 | CONFIG_SUSPEND_UP_POSSIBLE=y | 308 | CONFIG_SUSPEND_UP_POSSIBLE=y |
309 | CONFIG_SUSPEND=y | 309 | CONFIG_SUSPEND=y |
310 | # CONFIG_APM_EMULATION is not set | 310 | # CONFIG_APM_EMULATION is not set |
311 | CONFIG_PM_RUNTIME=y | ||
311 | 312 | ||
312 | # | 313 | # |
313 | # Networking | 314 | # Networking |
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig index e6f667c5e58a..216ad00948af 100644 --- a/arch/arm/configs/n8x0_defconfig +++ b/arch/arm/configs/n8x0_defconfig | |||
@@ -191,6 +191,7 @@ CONFIG_ARCH_OMAP=y | |||
191 | # | 191 | # |
192 | CONFIG_ARCH_OMAP_OTG=y | 192 | CONFIG_ARCH_OMAP_OTG=y |
193 | # CONFIG_ARCH_OMAP1 is not set | 193 | # CONFIG_ARCH_OMAP1 is not set |
194 | CONFIG_ARCH_OMAP2PLUS=y | ||
194 | CONFIG_ARCH_OMAP2=y | 195 | CONFIG_ARCH_OMAP2=y |
195 | # CONFIG_ARCH_OMAP3 is not set | 196 | # CONFIG_ARCH_OMAP3 is not set |
196 | # CONFIG_ARCH_OMAP4 is not set | 197 | # CONFIG_ARCH_OMAP4 is not set |
@@ -198,8 +199,6 @@ CONFIG_ARCH_OMAP2=y | |||
198 | # | 199 | # |
199 | # OMAP Feature Selections | 200 | # OMAP Feature Selections |
200 | # | 201 | # |
201 | # CONFIG_OMAP_DEBUG_POWERDOMAIN is not set | ||
202 | # CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set | ||
203 | CONFIG_OMAP_RESET_CLOCKS=y | 202 | CONFIG_OMAP_RESET_CLOCKS=y |
204 | # CONFIG_OMAP_MUX is not set | 203 | # CONFIG_OMAP_MUX is not set |
205 | # CONFIG_OMAP_MCBSP is not set | 204 | # CONFIG_OMAP_MCBSP is not set |
@@ -208,15 +207,13 @@ CONFIG_OMAP_MBOX_FWK=y | |||
208 | CONFIG_OMAP_32K_TIMER=y | 207 | CONFIG_OMAP_32K_TIMER=y |
209 | CONFIG_OMAP_32K_TIMER_HZ=128 | 208 | CONFIG_OMAP_32K_TIMER_HZ=128 |
210 | CONFIG_OMAP_DM_TIMER=y | 209 | CONFIG_OMAP_DM_TIMER=y |
211 | # CONFIG_OMAP_LL_DEBUG_UART1 is not set | 210 | # CONFIG_OMAP_PM_NONE is not set |
212 | # CONFIG_OMAP_LL_DEBUG_UART2 is not set | 211 | CONFIG_OMAP_PM_NOOP=y |
213 | CONFIG_OMAP_LL_DEBUG_UART3=y | ||
214 | # CONFIG_MACH_OMAP_GENERIC is not set | 212 | # CONFIG_MACH_OMAP_GENERIC is not set |
215 | 213 | ||
216 | # | 214 | # |
217 | # OMAP Core Type | 215 | # OMAP Core Type |
218 | # | 216 | # |
219 | CONFIG_ARCH_OMAP24XX=y | ||
220 | CONFIG_ARCH_OMAP2420=y | 217 | CONFIG_ARCH_OMAP2420=y |
221 | # CONFIG_ARCH_OMAP2430 is not set | 218 | # CONFIG_ARCH_OMAP2430 is not set |
222 | 219 | ||
@@ -227,6 +224,9 @@ CONFIG_MACH_OMAP2_TUSB6010=y | |||
227 | # CONFIG_MACH_OMAP_H4 is not set | 224 | # CONFIG_MACH_OMAP_H4 is not set |
228 | # CONFIG_MACH_OMAP_APOLLON is not set | 225 | # CONFIG_MACH_OMAP_APOLLON is not set |
229 | # CONFIG_MACH_OMAP_2430SDP is not set | 226 | # CONFIG_MACH_OMAP_2430SDP is not set |
227 | CONFIG_MACH_NOKIA_N800=y | ||
228 | CONFIG_MACH_NOKIA_N810=y | ||
229 | CONFIG_MACH_NOKIA_N810_WIMAX=y | ||
230 | CONFIG_MACH_NOKIA_N8X0=y | 230 | CONFIG_MACH_NOKIA_N8X0=y |
231 | 231 | ||
232 | # | 232 | # |
@@ -303,7 +303,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
303 | CONFIG_ZBOOT_ROM_TEXT=0x10C08000 | 303 | CONFIG_ZBOOT_ROM_TEXT=0x10C08000 |
304 | CONFIG_ZBOOT_ROM_BSS=0x10200000 | 304 | CONFIG_ZBOOT_ROM_BSS=0x10200000 |
305 | # CONFIG_ZBOOT_ROM is not set | 305 | # CONFIG_ZBOOT_ROM is not set |
306 | CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 console=ttyS2,115200n8" | 306 | CONFIG_CMDLINE="root=/dev/mmcblk0p2 console=ttyS2,115200n8 debug earlyprintk rootwait" |
307 | # CONFIG_XIP_KERNEL is not set | 307 | # CONFIG_XIP_KERNEL is not set |
308 | # CONFIG_KEXEC is not set | 308 | # CONFIG_KEXEC is not set |
309 | 309 | ||
@@ -337,7 +337,14 @@ CONFIG_HAVE_AOUT=y | |||
337 | # | 337 | # |
338 | # Power management options | 338 | # Power management options |
339 | # | 339 | # |
340 | # CONFIG_PM is not set | 340 | CONFIG_PM=y |
341 | # CONFIG_PM_DEBUG is not set | ||
342 | CONFIG_PM_SLEEP=y | ||
343 | CONFIG_SUSPEND=y | ||
344 | CONFIG_SUSPEND_FREEZER=y | ||
345 | # CONFIG_APM_EMULATION is not set | ||
346 | CONFIG_PM_RUNTIME=y | ||
347 | CONFIG_PM_OPS=y | ||
341 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 348 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
342 | CONFIG_NET=y | 349 | CONFIG_NET=y |
343 | 350 | ||
@@ -617,7 +624,55 @@ CONFIG_UNIX98_PTYS=y | |||
617 | # CONFIG_R3964 is not set | 624 | # CONFIG_R3964 is not set |
618 | # CONFIG_RAW_DRIVER is not set | 625 | # CONFIG_RAW_DRIVER is not set |
619 | # CONFIG_TCG_TPM is not set | 626 | # CONFIG_TCG_TPM is not set |
620 | # CONFIG_I2C is not set | 627 | CONFIG_I2C=y |
628 | CONFIG_I2C_BOARDINFO=y | ||
629 | # CONFIG_I2C_COMPAT is not set | ||
630 | # CONFIG_I2C_CHARDEV is not set | ||
631 | # CONFIG_I2C_HELPER_AUTO is not set | ||
632 | # CONFIG_I2C_SMBUS is not set | ||
633 | |||
634 | # | ||
635 | # I2C Algorithms | ||
636 | # | ||
637 | # CONFIG_I2C_ALGOBIT is not set | ||
638 | # CONFIG_I2C_ALGOPCF is not set | ||
639 | # CONFIG_I2C_ALGOPCA is not set | ||
640 | |||
641 | # | ||
642 | # I2C Hardware Bus support | ||
643 | # | ||
644 | |||
645 | # | ||
646 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
647 | # | ||
648 | # CONFIG_I2C_DESIGNWARE is not set | ||
649 | # CONFIG_I2C_GPIO is not set | ||
650 | # CONFIG_I2C_OCORES is not set | ||
651 | CONFIG_I2C_OMAP=y | ||
652 | # CONFIG_I2C_SIMTEC is not set | ||
653 | # CONFIG_I2C_XILINX is not set | ||
654 | |||
655 | # | ||
656 | # External I2C/SMBus adapter drivers | ||
657 | # | ||
658 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
659 | # CONFIG_I2C_TAOS_EVM is not set | ||
660 | # CONFIG_I2C_TINY_USB is not set | ||
661 | |||
662 | # | ||
663 | # Other I2C/SMBus bus drivers | ||
664 | # | ||
665 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
666 | # CONFIG_I2C_STUB is not set | ||
667 | |||
668 | # | ||
669 | # Miscellaneous I2C Chip support | ||
670 | # | ||
671 | # CONFIG_SENSORS_TSL2550 is not set | ||
672 | # CONFIG_I2C_DEBUG_CORE is not set | ||
673 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
674 | # CONFIG_I2C_DEBUG_BUS is not set | ||
675 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
621 | CONFIG_SPI=y | 676 | CONFIG_SPI=y |
622 | # CONFIG_SPI_DEBUG is not set | 677 | # CONFIG_SPI_DEBUG is not set |
623 | CONFIG_SPI_MASTER=y | 678 | CONFIG_SPI_MASTER=y |
@@ -673,15 +728,44 @@ CONFIG_SSB_POSSIBLE=y | |||
673 | # Multifunction device drivers | 728 | # Multifunction device drivers |
674 | # | 729 | # |
675 | # CONFIG_MFD_CORE is not set | 730 | # CONFIG_MFD_CORE is not set |
731 | # CONFIG_MFD_88PM860X is not set | ||
676 | # CONFIG_MFD_SM501 is not set | 732 | # CONFIG_MFD_SM501 is not set |
677 | # CONFIG_MFD_ASIC3 is not set | 733 | # CONFIG_MFD_ASIC3 is not set |
678 | # CONFIG_HTC_EGPIO is not set | 734 | # CONFIG_HTC_EGPIO is not set |
679 | # CONFIG_HTC_PASIC3 is not set | 735 | # CONFIG_HTC_PASIC3 is not set |
736 | # CONFIG_HTC_I2CPLD is not set | ||
737 | # CONFIG_TPS65010 is not set | ||
738 | CONFIG_MENELAUS=y | ||
739 | # CONFIG_TWL4030_CORE is not set | ||
680 | # CONFIG_MFD_TMIO is not set | 740 | # CONFIG_MFD_TMIO is not set |
681 | # CONFIG_MFD_T7L66XB is not set | 741 | # CONFIG_MFD_T7L66XB is not set |
682 | # CONFIG_MFD_TC6387XB is not set | 742 | # CONFIG_MFD_TC6387XB is not set |
683 | # CONFIG_MFD_TC6393XB is not set | 743 | # CONFIG_MFD_TC6393XB is not set |
744 | # CONFIG_PMIC_DA903X is not set | ||
745 | # CONFIG_PMIC_ADP5520 is not set | ||
746 | # CONFIG_MFD_MAX8925 is not set | ||
747 | # CONFIG_MFD_WM8400 is not set | ||
748 | # CONFIG_MFD_WM831X is not set | ||
749 | # CONFIG_MFD_WM8350_I2C is not set | ||
750 | # CONFIG_MFD_WM8994 is not set | ||
751 | # CONFIG_MFD_PCF50633 is not set | ||
752 | # CONFIG_MFD_MC13783 is not set | ||
753 | # CONFIG_AB3100_CORE is not set | ||
684 | # CONFIG_EZX_PCAP is not set | 754 | # CONFIG_EZX_PCAP is not set |
755 | # CONFIG_AB4500_CORE is not set | ||
756 | CONFIG_REGULATOR=y | ||
757 | # CONFIG_REGULATOR_DEBUG is not set | ||
758 | # CONFIG_REGULATOR_DUMMY is not set | ||
759 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
760 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
761 | # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set | ||
762 | # CONFIG_REGULATOR_BQ24022 is not set | ||
763 | # CONFIG_REGULATOR_MAX1586 is not set | ||
764 | # CONFIG_REGULATOR_MAX8649 is not set | ||
765 | # CONFIG_REGULATOR_MAX8660 is not set | ||
766 | # CONFIG_REGULATOR_LP3971 is not set | ||
767 | # CONFIG_REGULATOR_TPS65023 is not set | ||
768 | # CONFIG_REGULATOR_TPS6507X is not set | ||
685 | # CONFIG_MEDIA_SUPPORT is not set | 769 | # CONFIG_MEDIA_SUPPORT is not set |
686 | 770 | ||
687 | # | 771 | # |
@@ -718,7 +802,10 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | |||
718 | CONFIG_USB_DEVICEFS=y | 802 | CONFIG_USB_DEVICEFS=y |
719 | CONFIG_USB_DEVICE_CLASS=y | 803 | CONFIG_USB_DEVICE_CLASS=y |
720 | # CONFIG_USB_DYNAMIC_MINORS is not set | 804 | # CONFIG_USB_DYNAMIC_MINORS is not set |
721 | # CONFIG_USB_OTG is not set | 805 | CONFIG_USB_SUSPEND=y |
806 | CONFIG_USB_OTG=y | ||
807 | # CONFIG_USB_OTG_WHITELIST is not set | ||
808 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
722 | # CONFIG_USB_MON is not set | 809 | # CONFIG_USB_MON is not set |
723 | # CONFIG_USB_WUSB is not set | 810 | # CONFIG_USB_WUSB is not set |
724 | # CONFIG_USB_WUSB_CBAF is not set | 811 | # CONFIG_USB_WUSB_CBAF is not set |
@@ -737,9 +824,10 @@ CONFIG_USB_DEVICE_CLASS=y | |||
737 | CONFIG_USB_MUSB_HDRC=y | 824 | CONFIG_USB_MUSB_HDRC=y |
738 | CONFIG_USB_TUSB6010=y | 825 | CONFIG_USB_TUSB6010=y |
739 | # CONFIG_USB_MUSB_HOST is not set | 826 | # CONFIG_USB_MUSB_HOST is not set |
740 | CONFIG_USB_MUSB_PERIPHERAL=y | 827 | # CONFIG_USB_MUSB_PERIPHERAL is not set |
741 | # CONFIG_USB_MUSB_OTG is not set | 828 | CONFIG_USB_MUSB_OTG=y |
742 | CONFIG_USB_GADGET_MUSB_HDRC=y | 829 | CONFIG_USB_GADGET_MUSB_HDRC=y |
830 | CONFIG_USB_MUSB_HDRC_HCD=y | ||
743 | # CONFIG_MUSB_PIO_ONLY is not set | 831 | # CONFIG_MUSB_PIO_ONLY is not set |
744 | # CONFIG_USB_INVENTRA_DMA is not set | 832 | # CONFIG_USB_INVENTRA_DMA is not set |
745 | # CONFIG_USB_TI_CPPI_DMA is not set | 833 | # CONFIG_USB_TI_CPPI_DMA is not set |
@@ -824,44 +912,77 @@ CONFIG_USB_GADGET_DUALSPEED=y | |||
824 | # CONFIG_USB_ZERO is not set | 912 | # CONFIG_USB_ZERO is not set |
825 | # CONFIG_USB_AUDIO is not set | 913 | # CONFIG_USB_AUDIO is not set |
826 | CONFIG_USB_ETH=y | 914 | CONFIG_USB_ETH=y |
827 | # CONFIG_USB_ETH_RNDIS is not set | 915 | CONFIG_USB_ETH_RNDIS=y |
916 | CONFIG_USB_ETH_EEM=y | ||
828 | # CONFIG_USB_GADGETFS is not set | 917 | # CONFIG_USB_GADGETFS is not set |
829 | # CONFIG_USB_FILE_STORAGE is not set | 918 | # CONFIG_USB_FILE_STORAGE is not set |
919 | # CONFIG_USB_MASS_STORAGE is not set | ||
830 | # CONFIG_USB_G_SERIAL is not set | 920 | # CONFIG_USB_G_SERIAL is not set |
831 | # CONFIG_USB_MIDI_GADGET is not set | 921 | # CONFIG_USB_MIDI_GADGET is not set |
832 | # CONFIG_USB_G_PRINTER is not set | 922 | # CONFIG_USB_G_PRINTER is not set |
833 | # CONFIG_USB_CDC_COMPOSITE is not set | 923 | # CONFIG_USB_CDC_COMPOSITE is not set |
924 | # CONFIG_USB_G_NOKIA is not set | ||
925 | # CONFIG_USB_G_MULTI is not set | ||
834 | 926 | ||
835 | # | 927 | # |
836 | # OTG and related infrastructure | 928 | # OTG and related infrastructure |
837 | # | 929 | # |
838 | CONFIG_USB_OTG_UTILS=y | 930 | CONFIG_USB_OTG_UTILS=y |
839 | # CONFIG_USB_GPIO_VBUS is not set | 931 | # CONFIG_USB_GPIO_VBUS is not set |
932 | # CONFIG_ISP1301_OMAP is not set | ||
933 | # CONFIG_USB_ULPI is not set | ||
840 | CONFIG_NOP_USB_XCEIV=y | 934 | CONFIG_NOP_USB_XCEIV=y |
841 | # CONFIG_MMC is not set | 935 | CONFIG_MMC=y |
936 | # CONFIG_MMC_DEBUG is not set | ||
937 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
938 | |||
939 | # | ||
940 | # MMC/SD/SDIO Card Drivers | ||
941 | # | ||
942 | CONFIG_MMC_BLOCK=y | ||
943 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
944 | # CONFIG_SDIO_UART is not set | ||
945 | # CONFIG_MMC_TEST is not set | ||
946 | |||
947 | # | ||
948 | # MMC/SD/SDIO Host Controller Drivers | ||
949 | # | ||
950 | # CONFIG_MMC_SDHCI is not set | ||
951 | CONFIG_MMC_OMAP=y | ||
952 | # CONFIG_MMC_SPI is not set | ||
842 | # CONFIG_MEMSTICK is not set | 953 | # CONFIG_MEMSTICK is not set |
843 | # CONFIG_ACCESSIBILITY is not set | ||
844 | # CONFIG_NEW_LEDS is not set | 954 | # CONFIG_NEW_LEDS is not set |
955 | # CONFIG_ACCESSIBILITY is not set | ||
845 | CONFIG_RTC_LIB=y | 956 | CONFIG_RTC_LIB=y |
846 | # CONFIG_RTC_CLASS is not set | 957 | # CONFIG_RTC_CLASS is not set |
847 | # CONFIG_DMADEVICES is not set | 958 | # CONFIG_DMADEVICES is not set |
848 | # CONFIG_AUXDISPLAY is not set | 959 | # CONFIG_AUXDISPLAY is not set |
849 | # CONFIG_REGULATOR is not set | ||
850 | # CONFIG_UIO is not set | 960 | # CONFIG_UIO is not set |
961 | |||
962 | # | ||
963 | # TI VLYNQ | ||
964 | # | ||
851 | # CONFIG_STAGING is not set | 965 | # CONFIG_STAGING is not set |
852 | 966 | ||
853 | # | 967 | # |
854 | # File systems | 968 | # File systems |
855 | # | 969 | # |
856 | # CONFIG_EXT2_FS is not set | 970 | # CONFIG_EXT2_FS is not set |
857 | # CONFIG_EXT3_FS is not set | 971 | CONFIG_EXT3_FS=y |
972 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
973 | CONFIG_EXT3_FS_XATTR=y | ||
974 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
975 | # CONFIG_EXT3_FS_SECURITY is not set | ||
858 | # CONFIG_EXT4_FS is not set | 976 | # CONFIG_EXT4_FS is not set |
977 | CONFIG_JBD=y | ||
978 | CONFIG_FS_MBCACHE=y | ||
859 | # CONFIG_REISERFS_FS is not set | 979 | # CONFIG_REISERFS_FS is not set |
860 | # CONFIG_JFS_FS is not set | 980 | # CONFIG_JFS_FS is not set |
861 | # CONFIG_FS_POSIX_ACL is not set | 981 | # CONFIG_FS_POSIX_ACL is not set |
862 | # CONFIG_XFS_FS is not set | 982 | # CONFIG_XFS_FS is not set |
863 | # CONFIG_OCFS2_FS is not set | 983 | # CONFIG_OCFS2_FS is not set |
864 | # CONFIG_BTRFS_FS is not set | 984 | # CONFIG_BTRFS_FS is not set |
985 | # CONFIG_NILFS2_FS is not set | ||
865 | CONFIG_FILE_LOCKING=y | 986 | CONFIG_FILE_LOCKING=y |
866 | CONFIG_FSNOTIFY=y | 987 | CONFIG_FSNOTIFY=y |
867 | CONFIG_DNOTIFY=y | 988 | CONFIG_DNOTIFY=y |
@@ -886,8 +1007,11 @@ CONFIG_INOTIFY_USER=y | |||
886 | # | 1007 | # |
887 | # DOS/FAT/NT Filesystems | 1008 | # DOS/FAT/NT Filesystems |
888 | # | 1009 | # |
1010 | CONFIG_FAT_FS=y | ||
889 | # CONFIG_MSDOS_FS is not set | 1011 | # CONFIG_MSDOS_FS is not set |
890 | # CONFIG_VFAT_FS is not set | 1012 | CONFIG_VFAT_FS=y |
1013 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1014 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
891 | # CONFIG_NTFS_FS is not set | 1015 | # CONFIG_NTFS_FS is not set |
892 | 1016 | ||
893 | # | 1017 | # |
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig index c7999f5b1c9a..5a9e95fa728b 100644 --- a/arch/arm/configs/omap3_beagle_defconfig +++ b/arch/arm/configs/omap3_beagle_defconfig | |||
@@ -324,6 +324,7 @@ CONFIG_PM_SLEEP=y | |||
324 | CONFIG_SUSPEND=y | 324 | CONFIG_SUSPEND=y |
325 | CONFIG_SUSPEND_FREEZER=y | 325 | CONFIG_SUSPEND_FREEZER=y |
326 | # CONFIG_APM_EMULATION is not set | 326 | # CONFIG_APM_EMULATION is not set |
327 | CONFIG_PM_RUNTIME=y | ||
327 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 328 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
328 | CONFIG_NET=y | 329 | CONFIG_NET=y |
329 | 330 | ||
diff --git a/arch/arm/configs/omap3_defconfig b/arch/arm/configs/omap3_defconfig index 714835e5ebec..d6ad92177324 100644 --- a/arch/arm/configs/omap3_defconfig +++ b/arch/arm/configs/omap3_defconfig | |||
@@ -450,7 +450,7 @@ CONFIG_SUSPEND=y | |||
450 | # CONFIG_PM_TEST_SUSPEND is not set | 450 | # CONFIG_PM_TEST_SUSPEND is not set |
451 | CONFIG_SUSPEND_FREEZER=y | 451 | CONFIG_SUSPEND_FREEZER=y |
452 | # CONFIG_APM_EMULATION is not set | 452 | # CONFIG_APM_EMULATION is not set |
453 | # CONFIG_PM_RUNTIME is not set | 453 | CONFIG_PM_RUNTIME=y |
454 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 454 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
455 | CONFIG_NET=y | 455 | CONFIG_NET=y |
456 | 456 | ||
diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig index e2ad859fbec6..a6dd6d1af806 100644 --- a/arch/arm/configs/omap3_evm_defconfig +++ b/arch/arm/configs/omap3_evm_defconfig | |||
@@ -340,6 +340,7 @@ CONFIG_PM_SLEEP=y | |||
340 | CONFIG_SUSPEND=y | 340 | CONFIG_SUSPEND=y |
341 | CONFIG_SUSPEND_FREEZER=y | 341 | CONFIG_SUSPEND_FREEZER=y |
342 | # CONFIG_APM_EMULATION is not set | 342 | # CONFIG_APM_EMULATION is not set |
343 | CONFIG_PM_RUNTIME=y | ||
343 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 344 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
344 | CONFIG_NET=y | 345 | CONFIG_NET=y |
345 | 346 | ||
diff --git a/arch/arm/configs/omap3_touchbook_defconfig b/arch/arm/configs/omap3_touchbook_defconfig index 74fe6be9c5ec..968fbaa8f04d 100644 --- a/arch/arm/configs/omap3_touchbook_defconfig +++ b/arch/arm/configs/omap3_touchbook_defconfig | |||
@@ -368,7 +368,7 @@ CONFIG_SUSPEND=y | |||
368 | # CONFIG_PM_TEST_SUSPEND is not set | 368 | # CONFIG_PM_TEST_SUSPEND is not set |
369 | CONFIG_SUSPEND_FREEZER=y | 369 | CONFIG_SUSPEND_FREEZER=y |
370 | # CONFIG_APM_EMULATION is not set | 370 | # CONFIG_APM_EMULATION is not set |
371 | # CONFIG_PM_RUNTIME is not set | 371 | CONFIG_PM_RUNTIME=y |
372 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 372 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
373 | CONFIG_NET=y | 373 | CONFIG_NET=y |
374 | 374 | ||
diff --git a/arch/arm/configs/omap_3430sdp_defconfig b/arch/arm/configs/omap_3430sdp_defconfig index bb2917e5cb47..ddde429a7d9b 100644 --- a/arch/arm/configs/omap_3430sdp_defconfig +++ b/arch/arm/configs/omap_3430sdp_defconfig | |||
@@ -363,6 +363,7 @@ CONFIG_PM_SLEEP=y | |||
363 | CONFIG_SUSPEND=y | 363 | CONFIG_SUSPEND=y |
364 | CONFIG_SUSPEND_FREEZER=y | 364 | CONFIG_SUSPEND_FREEZER=y |
365 | # CONFIG_APM_EMULATION is not set | 365 | # CONFIG_APM_EMULATION is not set |
366 | CONFIG_PM_RUNTIME=y | ||
366 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 367 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
367 | CONFIG_NET=y | 368 | CONFIG_NET=y |
368 | 369 | ||
diff --git a/arch/arm/configs/omap_3630sdp_defconfig b/arch/arm/configs/omap_3630sdp_defconfig index d25c3d4424ca..609f348b1055 100644 --- a/arch/arm/configs/omap_3630sdp_defconfig +++ b/arch/arm/configs/omap_3630sdp_defconfig | |||
@@ -361,7 +361,7 @@ CONFIG_SUSPEND=y | |||
361 | # CONFIG_PM_TEST_SUSPEND is not set | 361 | # CONFIG_PM_TEST_SUSPEND is not set |
362 | CONFIG_SUSPEND_FREEZER=y | 362 | CONFIG_SUSPEND_FREEZER=y |
363 | # CONFIG_APM_EMULATION is not set | 363 | # CONFIG_APM_EMULATION is not set |
364 | # CONFIG_PM_RUNTIME is not set | 364 | CONFIG_PM_RUNTIME=y |
365 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 365 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
366 | CONFIG_NET=y | 366 | CONFIG_NET=y |
367 | 367 | ||
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig index 523189586a4b..91ef2ed0f80a 100644 --- a/arch/arm/configs/omap_h2_1610_defconfig +++ b/arch/arm/configs/omap_h2_1610_defconfig | |||
@@ -331,6 +331,7 @@ CONFIG_PM_SLEEP=y | |||
331 | CONFIG_SUSPEND=y | 331 | CONFIG_SUSPEND=y |
332 | CONFIG_SUSPEND_FREEZER=y | 332 | CONFIG_SUSPEND_FREEZER=y |
333 | # CONFIG_APM_EMULATION is not set | 333 | # CONFIG_APM_EMULATION is not set |
334 | CONFIG_PM_RUNTIME=y | ||
334 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 335 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
335 | 336 | ||
336 | # | 337 | # |
diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig index a82e81332a03..f5c6e11cf189 100644 --- a/arch/arm/configs/omap_zoom2_defconfig +++ b/arch/arm/configs/omap_zoom2_defconfig | |||
@@ -343,6 +343,7 @@ CONFIG_SUSPEND=y | |||
343 | # CONFIG_PM_TEST_SUSPEND is not set | 343 | # CONFIG_PM_TEST_SUSPEND is not set |
344 | CONFIG_SUSPEND_FREEZER=y | 344 | CONFIG_SUSPEND_FREEZER=y |
345 | # CONFIG_APM_EMULATION is not set | 345 | # CONFIG_APM_EMULATION is not set |
346 | CONFIG_PM_RUNTIME=y | ||
346 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 347 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
347 | CONFIG_NET=y | 348 | CONFIG_NET=y |
348 | 349 | ||
diff --git a/arch/arm/configs/omap_zoom3_defconfig b/arch/arm/configs/omap_zoom3_defconfig index ff8ac3dcc31d..ea9a5012d332 100644 --- a/arch/arm/configs/omap_zoom3_defconfig +++ b/arch/arm/configs/omap_zoom3_defconfig | |||
@@ -361,7 +361,7 @@ CONFIG_SUSPEND=y | |||
361 | # CONFIG_PM_TEST_SUSPEND is not set | 361 | # CONFIG_PM_TEST_SUSPEND is not set |
362 | CONFIG_SUSPEND_FREEZER=y | 362 | CONFIG_SUSPEND_FREEZER=y |
363 | # CONFIG_APM_EMULATION is not set | 363 | # CONFIG_APM_EMULATION is not set |
364 | # CONFIG_PM_RUNTIME is not set | 364 | CONFIG_PM_RUNTIME=y |
365 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 365 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
366 | CONFIG_NET=y | 366 | CONFIG_NET=y |
367 | 367 | ||
diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig index 193bd334fbbf..45135ffadc57 100644 --- a/arch/arm/configs/rx51_defconfig +++ b/arch/arm/configs/rx51_defconfig | |||
@@ -322,6 +322,7 @@ CONFIG_PM_SLEEP=y | |||
322 | CONFIG_SUSPEND=y | 322 | CONFIG_SUSPEND=y |
323 | CONFIG_SUSPEND_FREEZER=y | 323 | CONFIG_SUSPEND_FREEZER=y |
324 | # CONFIG_APM_EMULATION is not set | 324 | # CONFIG_APM_EMULATION is not set |
325 | CONFIG_PM_RUNTIME=y | ||
325 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 326 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
326 | CONFIG_NET=y | 327 | CONFIG_NET=y |
327 | 328 | ||
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 2069fb33baaa..4b9fc57770db 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -22,6 +22,9 @@ obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o | |||
22 | # SMP support ONLY available for OMAP4 | 22 | # SMP support ONLY available for OMAP4 |
23 | obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o | 23 | obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o |
24 | obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o | 24 | obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o |
25 | obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o | ||
26 | |||
27 | AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a | ||
25 | 28 | ||
26 | # Functions loaded to SRAM | 29 | # Functions loaded to SRAM |
27 | obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o | 30 | obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o |
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index a101029ceb6f..5822bcf7b15f 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c | |||
@@ -648,7 +648,7 @@ static void enable_board_wakeup_source(void) | |||
648 | OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); | 648 | OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); |
649 | } | 649 | } |
650 | 650 | ||
651 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 651 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
652 | 652 | ||
653 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 653 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
654 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 654 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index 4386d2b4a785..a0a2a113465c 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c | |||
@@ -54,7 +54,7 @@ static void enable_board_wakeup_source(void) | |||
54 | OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); | 54 | OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); |
55 | } | 55 | } |
56 | 56 | ||
57 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 57 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
58 | 58 | ||
59 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 59 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
60 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 60 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 180ac112e527..b88f28c5814b 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -50,33 +50,9 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = { | |||
50 | }; | 50 | }; |
51 | 51 | ||
52 | #ifdef CONFIG_CACHE_L2X0 | 52 | #ifdef CONFIG_CACHE_L2X0 |
53 | noinline void omap_smc1(u32 fn, u32 arg) | ||
54 | { | ||
55 | register u32 r12 asm("r12") = fn; | ||
56 | register u32 r0 asm("r0") = arg; | ||
57 | |||
58 | /* This is common routine cache secure monitor API used to | ||
59 | * modify the PL310 secure registers. | ||
60 | * r0 contains the value to be modified and "r12" contains | ||
61 | * the monitor API number. It uses few CPU registers | ||
62 | * internally and hence they need be backed up including | ||
63 | * link register "lr". | ||
64 | * Explicitly save r11 and r12 the compiler generated code | ||
65 | * won't save it. | ||
66 | */ | ||
67 | asm volatile( | ||
68 | "stmfd r13!, {r11,r12}\n" | ||
69 | "dsb\n" | ||
70 | "smc\n" | ||
71 | "ldmfd r13!, {r11,r12}\n" | ||
72 | : "+r" (r0), "+r" (r12) | ||
73 | : | ||
74 | : "r4", "r5", "r10", "lr", "cc"); | ||
75 | } | ||
76 | EXPORT_SYMBOL(omap_smc1); | ||
77 | |||
78 | static int __init omap_l2_cache_init(void) | 53 | static int __init omap_l2_cache_init(void) |
79 | { | 54 | { |
55 | extern void omap_smc1(u32 fn, u32 arg); | ||
80 | void __iomem *l2cache_base; | 56 | void __iomem *l2cache_base; |
81 | 57 | ||
82 | /* To avoid code running on other OMAPs in | 58 | /* To avoid code running on other OMAPs in |
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index 70c18614773c..6ae880585d54 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c | |||
@@ -273,7 +273,7 @@ static void __init am3517_evm_init_irq(void) | |||
273 | omap_gpio_init(); | 273 | omap_gpio_init(); |
274 | } | 274 | } |
275 | 275 | ||
276 | static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { | 276 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
277 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 277 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
278 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 278 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
279 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 279 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index afa77caaff4d..2de4f79f03a0 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
@@ -612,7 +612,7 @@ static struct omap2_hsmmc_info mmc[] = { | |||
612 | {} /* Terminator */ | 612 | {} /* Terminator */ |
613 | }; | 613 | }; |
614 | 614 | ||
615 | static struct ehci_hcd_omap_platform_data ehci_pdata = { | 615 | static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { |
616 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 616 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
617 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 617 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
618 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 618 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 371019054b49..5bfc13b3176c 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
@@ -636,7 +636,7 @@ static struct omap_musb_board_data musb_board_data = { | |||
636 | .power = 100, | 636 | .power = 100, |
637 | }; | 637 | }; |
638 | 638 | ||
639 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 639 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
640 | 640 | ||
641 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 641 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
642 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 642 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 9958987a3d0a..3c7789d45051 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/clk.h> | 16 | #include <linux/clk.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/leds.h> | ||
20 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
21 | 20 | ||
22 | #include <linux/regulator/machine.h> | 21 | #include <linux/regulator/machine.h> |
@@ -39,8 +38,8 @@ | |||
39 | #define IGEP2_SMSC911X_CS 5 | 38 | #define IGEP2_SMSC911X_CS 5 |
40 | #define IGEP2_SMSC911X_GPIO 176 | 39 | #define IGEP2_SMSC911X_GPIO 176 |
41 | #define IGEP2_GPIO_USBH_NRESET 24 | 40 | #define IGEP2_GPIO_USBH_NRESET 24 |
42 | #define IGEP2_GPIO_LED0_RED 26 | 41 | #define IGEP2_GPIO_LED0_GREEN 26 |
43 | #define IGEP2_GPIO_LED0_GREEN 27 | 42 | #define IGEP2_GPIO_LED0_RED 27 |
44 | #define IGEP2_GPIO_LED1_RED 28 | 43 | #define IGEP2_GPIO_LED1_RED 28 |
45 | #define IGEP2_GPIO_DVI_PUP 170 | 44 | #define IGEP2_GPIO_DVI_PUP 170 |
46 | #define IGEP2_GPIO_WIFI_NPD 94 | 45 | #define IGEP2_GPIO_WIFI_NPD 94 |
@@ -355,34 +354,50 @@ static void __init igep2_display_init(void) | |||
355 | gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1)) | 354 | gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1)) |
356 | pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n"); | 355 | pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n"); |
357 | } | 356 | } |
358 | #ifdef CONFIG_LEDS_TRIGGERS | 357 | |
359 | static struct gpio_led gpio_leds[] = { | 358 | #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) |
359 | #include <linux/leds.h> | ||
360 | |||
361 | static struct gpio_led igep2_gpio_leds[] = { | ||
360 | { | 362 | { |
361 | .name = "GPIO_LED1_RED", | 363 | .name = "led0:red", |
364 | .gpio = IGEP2_GPIO_LED0_RED, | ||
365 | }, | ||
366 | { | ||
367 | .name = "led0:green", | ||
362 | .default_trigger = "heartbeat", | 368 | .default_trigger = "heartbeat", |
369 | .gpio = IGEP2_GPIO_LED0_GREEN, | ||
370 | }, | ||
371 | { | ||
372 | .name = "led1:red", | ||
363 | .gpio = IGEP2_GPIO_LED1_RED, | 373 | .gpio = IGEP2_GPIO_LED1_RED, |
364 | }, | 374 | }, |
365 | }; | 375 | }; |
366 | 376 | ||
367 | static struct gpio_led_platform_data gpio_leds_info = { | 377 | static struct gpio_led_platform_data igep2_led_pdata = { |
368 | .leds = gpio_leds, | 378 | .leds = igep2_gpio_leds, |
369 | .num_leds = ARRAY_SIZE(gpio_leds), | 379 | .num_leds = ARRAY_SIZE(igep2_gpio_leds), |
370 | }; | 380 | }; |
371 | 381 | ||
372 | static struct platform_device leds_gpio = { | 382 | static struct platform_device igep2_led_device = { |
373 | .name = "leds-gpio", | 383 | .name = "leds-gpio", |
374 | .id = -1, | 384 | .id = -1, |
375 | .dev = { | 385 | .dev = { |
376 | .platform_data = &gpio_leds_info, | 386 | .platform_data = &igep2_led_pdata, |
377 | }, | 387 | }, |
378 | }; | 388 | }; |
389 | |||
390 | static void __init igep2_init_led(void) | ||
391 | { | ||
392 | platform_device_register(&igep2_led_device); | ||
393 | } | ||
394 | |||
395 | #else | ||
396 | static inline void igep2_init_led(void) {} | ||
379 | #endif | 397 | #endif |
380 | 398 | ||
381 | static struct platform_device *igep2_devices[] __initdata = { | 399 | static struct platform_device *igep2_devices[] __initdata = { |
382 | &igep2_dss_device, | 400 | &igep2_dss_device, |
383 | #ifdef CONFIG_LEDS_TRIGGERS | ||
384 | &leds_gpio, | ||
385 | #endif | ||
386 | }; | 401 | }; |
387 | 402 | ||
388 | static void __init igep2_init_irq(void) | 403 | static void __init igep2_init_irq(void) |
@@ -442,7 +457,7 @@ static struct omap_musb_board_data musb_board_data = { | |||
442 | .power = 100, | 457 | .power = 100, |
443 | }; | 458 | }; |
444 | 459 | ||
445 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 460 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
446 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 461 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
447 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 462 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
448 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 463 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
@@ -471,31 +486,34 @@ static void __init igep2_init(void) | |||
471 | usb_ehci_init(&ehci_pdata); | 486 | usb_ehci_init(&ehci_pdata); |
472 | 487 | ||
473 | igep2_flash_init(); | 488 | igep2_flash_init(); |
489 | igep2_init_led(); | ||
474 | igep2_display_init(); | 490 | igep2_display_init(); |
475 | igep2_init_smsc911x(); | 491 | igep2_init_smsc911x(); |
476 | 492 | ||
477 | /* GPIO userspace leds */ | 493 | /* GPIO userspace leds */ |
478 | if ((gpio_request(IGEP2_GPIO_LED0_RED, "GPIO_LED0_RED") == 0) && | 494 | #if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) |
495 | if ((gpio_request(IGEP2_GPIO_LED0_RED, "led0:red") == 0) && | ||
479 | (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) { | 496 | (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) { |
480 | gpio_export(IGEP2_GPIO_LED0_RED, 0); | 497 | gpio_export(IGEP2_GPIO_LED0_RED, 0); |
481 | gpio_set_value(IGEP2_GPIO_LED0_RED, 0); | 498 | gpio_set_value(IGEP2_GPIO_LED0_RED, 0); |
482 | } else | 499 | } else |
483 | pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n"); | 500 | pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n"); |
484 | 501 | ||
485 | if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "GPIO_LED0_GREEN") == 0) && | 502 | if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "led0:green") == 0) && |
486 | (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) { | 503 | (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) { |
487 | gpio_export(IGEP2_GPIO_LED0_GREEN, 0); | 504 | gpio_export(IGEP2_GPIO_LED0_GREEN, 0); |
488 | gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0); | 505 | gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0); |
489 | } else | 506 | } else |
490 | pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n"); | 507 | pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n"); |
491 | #ifndef CONFIG_LEDS_TRIGGERS | 508 | |
492 | if ((gpio_request(IGEP2_GPIO_LED1_RED, "GPIO_LED1_RED") == 0) && | 509 | if ((gpio_request(IGEP2_GPIO_LED1_RED, "led1:red") == 0) && |
493 | (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) { | 510 | (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) { |
494 | gpio_export(IGEP2_GPIO_LED1_RED, 0); | 511 | gpio_export(IGEP2_GPIO_LED1_RED, 0); |
495 | gpio_set_value(IGEP2_GPIO_LED1_RED, 0); | 512 | gpio_set_value(IGEP2_GPIO_LED1_RED, 0); |
496 | } else | 513 | } else |
497 | pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n"); | 514 | pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n"); |
498 | #endif | 515 | #endif |
516 | |||
499 | /* GPIO W-LAN + Bluetooth combo module */ | 517 | /* GPIO W-LAN + Bluetooth combo module */ |
500 | if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) && | 518 | if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) && |
501 | (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) { | 519 | (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) { |
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c index 4cab0522d7ce..da9bcb898991 100644 --- a/arch/arm/mach-omap2/board-n8x0.c +++ b/arch/arm/mach-omap2/board-n8x0.c | |||
@@ -37,6 +37,103 @@ static int slot1_cover_open; | |||
37 | static int slot2_cover_open; | 37 | static int slot2_cover_open; |
38 | static struct device *mmc_device; | 38 | static struct device *mmc_device; |
39 | 39 | ||
40 | #define TUSB6010_ASYNC_CS 1 | ||
41 | #define TUSB6010_SYNC_CS 4 | ||
42 | #define TUSB6010_GPIO_INT 58 | ||
43 | #define TUSB6010_GPIO_ENABLE 0 | ||
44 | #define TUSB6010_DMACHAN 0x3f | ||
45 | |||
46 | #if defined(CONFIG_USB_TUSB6010) || \ | ||
47 | defined(CONFIG_USB_TUSB6010_MODULE) | ||
48 | /* | ||
49 | * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and | ||
50 | * 1.5 V voltage regulators of PM companion chip. Companion chip will then | ||
51 | * provide then PGOOD signal to TUSB6010 which will release it from reset. | ||
52 | */ | ||
53 | static int tusb_set_power(int state) | ||
54 | { | ||
55 | int i, retval = 0; | ||
56 | |||
57 | if (state) { | ||
58 | gpio_set_value(TUSB6010_GPIO_ENABLE, 1); | ||
59 | msleep(1); | ||
60 | |||
61 | /* Wait until TUSB6010 pulls INT pin down */ | ||
62 | i = 100; | ||
63 | while (i && gpio_get_value(TUSB6010_GPIO_INT)) { | ||
64 | msleep(1); | ||
65 | i--; | ||
66 | } | ||
67 | |||
68 | if (!i) { | ||
69 | printk(KERN_ERR "tusb: powerup failed\n"); | ||
70 | retval = -ENODEV; | ||
71 | } | ||
72 | } else { | ||
73 | gpio_set_value(TUSB6010_GPIO_ENABLE, 0); | ||
74 | msleep(10); | ||
75 | } | ||
76 | |||
77 | return retval; | ||
78 | } | ||
79 | |||
80 | static struct musb_hdrc_config musb_config = { | ||
81 | .multipoint = 1, | ||
82 | .dyn_fifo = 1, | ||
83 | .num_eps = 16, | ||
84 | .ram_bits = 12, | ||
85 | }; | ||
86 | |||
87 | static struct musb_hdrc_platform_data tusb_data = { | ||
88 | #if defined(CONFIG_USB_MUSB_OTG) | ||
89 | .mode = MUSB_OTG, | ||
90 | #elif defined(CONFIG_USB_MUSB_PERIPHERAL) | ||
91 | .mode = MUSB_PERIPHERAL, | ||
92 | #else /* defined(CONFIG_USB_MUSB_HOST) */ | ||
93 | .mode = MUSB_HOST, | ||
94 | #endif | ||
95 | .set_power = tusb_set_power, | ||
96 | .min_power = 25, /* x2 = 50 mA drawn from VBUS as peripheral */ | ||
97 | .power = 100, /* Max 100 mA VBUS for host mode */ | ||
98 | .config = &musb_config, | ||
99 | }; | ||
100 | |||
101 | static void __init n8x0_usb_init(void) | ||
102 | { | ||
103 | int ret = 0; | ||
104 | static char announce[] __initdata = KERN_INFO "TUSB 6010\n"; | ||
105 | |||
106 | /* PM companion chip power control pin */ | ||
107 | ret = gpio_request(TUSB6010_GPIO_ENABLE, "TUSB6010 enable"); | ||
108 | if (ret != 0) { | ||
109 | printk(KERN_ERR "Could not get TUSB power GPIO%i\n", | ||
110 | TUSB6010_GPIO_ENABLE); | ||
111 | return; | ||
112 | } | ||
113 | gpio_direction_output(TUSB6010_GPIO_ENABLE, 0); | ||
114 | |||
115 | tusb_set_power(0); | ||
116 | |||
117 | ret = tusb6010_setup_interface(&tusb_data, TUSB6010_REFCLK_19, 2, | ||
118 | TUSB6010_ASYNC_CS, TUSB6010_SYNC_CS, | ||
119 | TUSB6010_GPIO_INT, TUSB6010_DMACHAN); | ||
120 | if (ret != 0) | ||
121 | goto err; | ||
122 | |||
123 | printk(announce); | ||
124 | |||
125 | return; | ||
126 | |||
127 | err: | ||
128 | gpio_free(TUSB6010_GPIO_ENABLE); | ||
129 | } | ||
130 | #else | ||
131 | |||
132 | static void __init n8x0_usb_init(void) {} | ||
133 | |||
134 | #endif /*CONFIG_USB_TUSB6010 */ | ||
135 | |||
136 | |||
40 | static struct omap2_mcspi_device_config p54spi_mcspi_config = { | 137 | static struct omap2_mcspi_device_config p54spi_mcspi_config = { |
41 | .turbo_mode = 0, | 138 | .turbo_mode = 0, |
42 | .single_channel = 1, | 139 | .single_channel = 1, |
@@ -562,6 +659,7 @@ static void __init n8x0_init_machine(void) | |||
562 | n8x0_menelaus_init(); | 659 | n8x0_menelaus_init(); |
563 | n8x0_onenand_init(); | 660 | n8x0_onenand_init(); |
564 | n8x0_mmc_init(); | 661 | n8x0_mmc_init(); |
662 | n8x0_usb_init(); | ||
565 | } | 663 | } |
566 | 664 | ||
567 | MACHINE_START(NOKIA_N800, "Nokia N800") | 665 | MACHINE_START(NOKIA_N800, "Nokia N800") |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 6eb77e1f7c82..962d377970e9 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -410,7 +410,7 @@ static void __init omap3beagle_flash_init(void) | |||
410 | } | 410 | } |
411 | } | 411 | } |
412 | 412 | ||
413 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 413 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
414 | 414 | ||
415 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 415 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
416 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 416 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index d6bc88c426b5..017bb2f4f7d2 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -635,7 +635,7 @@ static struct platform_device *omap3_evm_devices[] __initdata = { | |||
635 | &omap3_evm_dss_device, | 635 | &omap3_evm_dss_device, |
636 | }; | 636 | }; |
637 | 637 | ||
638 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 638 | static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { |
639 | 639 | ||
640 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 640 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
641 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 641 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 4827f4658df3..395d049bf010 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c | |||
@@ -459,12 +459,20 @@ static struct i2c_board_info __initdata omap3pandora_i2c_boardinfo[] = { | |||
459 | }, | 459 | }, |
460 | }; | 460 | }; |
461 | 461 | ||
462 | static struct i2c_board_info __initdata omap3pandora_i2c3_boardinfo[] = { | ||
463 | { | ||
464 | I2C_BOARD_INFO("bq27500", 0x55), | ||
465 | .flags = I2C_CLIENT_WAKE, | ||
466 | }, | ||
467 | }; | ||
468 | |||
462 | static int __init omap3pandora_i2c_init(void) | 469 | static int __init omap3pandora_i2c_init(void) |
463 | { | 470 | { |
464 | omap_register_i2c_bus(1, 2600, omap3pandora_i2c_boardinfo, | 471 | omap_register_i2c_bus(1, 2600, omap3pandora_i2c_boardinfo, |
465 | ARRAY_SIZE(omap3pandora_i2c_boardinfo)); | 472 | ARRAY_SIZE(omap3pandora_i2c_boardinfo)); |
466 | /* i2c2 pins are not connected */ | 473 | /* i2c2 pins are not connected */ |
467 | omap_register_i2c_bus(3, 100, NULL, 0); | 474 | omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo, |
475 | ARRAY_SIZE(omap3pandora_i2c3_boardinfo)); | ||
468 | return 0; | 476 | return 0; |
469 | } | 477 | } |
470 | 478 | ||
@@ -537,7 +545,7 @@ static struct platform_device *omap3pandora_devices[] __initdata = { | |||
537 | &pandora_dss_device, | 545 | &pandora_dss_device, |
538 | }; | 546 | }; |
539 | 547 | ||
540 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 548 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
541 | 549 | ||
542 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 550 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
543 | .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 551 | .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index 3943d0f8322c..2504d41f923e 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c | |||
@@ -493,7 +493,7 @@ static void __init omap3touchbook_flash_init(void) | |||
493 | } | 493 | } |
494 | } | 494 | } |
495 | 495 | ||
496 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 496 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
497 | 497 | ||
498 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, | 498 | .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, |
499 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 499 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
@@ -518,14 +518,14 @@ static void omap3_touchbook_poweroff(void) | |||
518 | gpio_direction_output(TB_KILL_POWER_GPIO, 0); | 518 | gpio_direction_output(TB_KILL_POWER_GPIO, 0); |
519 | } | 519 | } |
520 | 520 | ||
521 | static void __init early_touchbook_revision(char **p) | 521 | static int __init early_touchbook_revision(char *p) |
522 | { | 522 | { |
523 | if (!*p) | 523 | if (!p) |
524 | return; | 524 | return 0; |
525 | 525 | ||
526 | strict_strtoul(*p, 10, &touchbook_revision); | 526 | return strict_strtoul(p, 10, &touchbook_revision); |
527 | } | 527 | } |
528 | __early_param("tbr=", early_touchbook_revision); | 528 | early_param("tbr", early_touchbook_revision); |
529 | 529 | ||
530 | static struct omap_musb_board_data musb_board_data = { | 530 | static struct omap_musb_board_data musb_board_data = { |
531 | .interface_type = MUSB_INTERFACE_ULPI, | 531 | .interface_type = MUSB_INTERFACE_ULPI, |
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index 50872a42bec7..8848c7c5ce48 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c | |||
@@ -394,7 +394,7 @@ static struct platform_device *overo_devices[] __initdata = { | |||
394 | &overo_lcd_device, | 394 | &overo_lcd_device, |
395 | }; | 395 | }; |
396 | 396 | ||
397 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 397 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
398 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 398 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
399 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 399 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
400 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 400 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
diff --git a/arch/arm/mach-omap2/board-zoom3.c b/arch/arm/mach-omap2/board-zoom3.c index d3e3cd5170d1..cd3e40cf3ac1 100644 --- a/arch/arm/mach-omap2/board-zoom3.c +++ b/arch/arm/mach-omap2/board-zoom3.c | |||
@@ -52,7 +52,7 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
52 | #define board_mux NULL | 52 | #define board_mux NULL |
53 | #endif | 53 | #endif |
54 | 54 | ||
55 | static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | 55 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { |
56 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 56 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
57 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | 57 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, |
58 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, | 58 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, |
diff --git a/arch/arm/mach-omap2/clock2420_data.c b/arch/arm/mach-omap2/clock2420_data.c index f12af95ead45..d932b142d0b6 100644 --- a/arch/arm/mach-omap2/clock2420_data.c +++ b/arch/arm/mach-omap2/clock2420_data.c | |||
@@ -1841,6 +1841,7 @@ static struct omap_clk omap2420_clks[] = { | |||
1841 | CLK(NULL, "aes_ick", &aes_ick, CK_242X), | 1841 | CLK(NULL, "aes_ick", &aes_ick, CK_242X), |
1842 | CLK(NULL, "pka_ick", &pka_ick, CK_242X), | 1842 | CLK(NULL, "pka_ick", &pka_ick, CK_242X), |
1843 | CLK(NULL, "usb_fck", &usb_fck, CK_242X), | 1843 | CLK(NULL, "usb_fck", &usb_fck, CK_242X), |
1844 | CLK("musb_hdrc", "fck", &osc_ck, CK_242X), | ||
1844 | }; | 1845 | }; |
1845 | 1846 | ||
1846 | /* | 1847 | /* |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 402e8f0d0f21..87f676acf61d 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -237,7 +237,7 @@ static void __init _omap2_map_common_io(void) | |||
237 | } | 237 | } |
238 | 238 | ||
239 | #ifdef CONFIG_ARCH_OMAP2420 | 239 | #ifdef CONFIG_ARCH_OMAP2420 |
240 | void __init omap242x_map_common_io() | 240 | void __init omap242x_map_common_io(void) |
241 | { | 241 | { |
242 | iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); | 242 | iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); |
243 | iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc)); | 243 | iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc)); |
@@ -246,7 +246,7 @@ void __init omap242x_map_common_io() | |||
246 | #endif | 246 | #endif |
247 | 247 | ||
248 | #ifdef CONFIG_ARCH_OMAP2430 | 248 | #ifdef CONFIG_ARCH_OMAP2430 |
249 | void __init omap243x_map_common_io() | 249 | void __init omap243x_map_common_io(void) |
250 | { | 250 | { |
251 | iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); | 251 | iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); |
252 | iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc)); | 252 | iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc)); |
@@ -255,7 +255,7 @@ void __init omap243x_map_common_io() | |||
255 | #endif | 255 | #endif |
256 | 256 | ||
257 | #ifdef CONFIG_ARCH_OMAP3 | 257 | #ifdef CONFIG_ARCH_OMAP3 |
258 | void __init omap34xx_map_common_io() | 258 | void __init omap34xx_map_common_io(void) |
259 | { | 259 | { |
260 | iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc)); | 260 | iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc)); |
261 | _omap2_map_common_io(); | 261 | _omap2_map_common_io(); |
@@ -263,7 +263,7 @@ void __init omap34xx_map_common_io() | |||
263 | #endif | 263 | #endif |
264 | 264 | ||
265 | #ifdef CONFIG_ARCH_OMAP4 | 265 | #ifdef CONFIG_ARCH_OMAP4 |
266 | void __init omap44xx_map_common_io() | 266 | void __init omap44xx_map_common_io(void) |
267 | { | 267 | { |
268 | iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc)); | 268 | iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc)); |
269 | _omap2_map_common_io(); | 269 | _omap2_map_common_io(); |
@@ -309,7 +309,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, | |||
309 | { | 309 | { |
310 | pwrdm_init(powerdomains_omap); | 310 | pwrdm_init(powerdomains_omap); |
311 | clkdm_init(clockdomains_omap, clkdm_autodeps); | 311 | clkdm_init(clockdomains_omap, clkdm_autodeps); |
312 | #ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */ | ||
313 | if (cpu_is_omap242x()) | 312 | if (cpu_is_omap242x()) |
314 | omap2420_hwmod_init(); | 313 | omap2420_hwmod_init(); |
315 | else if (cpu_is_omap243x()) | 314 | else if (cpu_is_omap243x()) |
@@ -319,7 +318,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, | |||
319 | omap2_mux_init(); | 318 | omap2_mux_init(); |
320 | /* The OPP tables have to be registered before a clk init */ | 319 | /* The OPP tables have to be registered before a clk init */ |
321 | omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); | 320 | omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); |
322 | #endif | ||
323 | 321 | ||
324 | if (cpu_is_omap2420()) | 322 | if (cpu_is_omap2420()) |
325 | omap2420_clk_init(); | 323 | omap2420_clk_init(); |
@@ -333,11 +331,12 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, | |||
333 | pr_err("Could not init clock framework - unknown CPU\n"); | 331 | pr_err("Could not init clock framework - unknown CPU\n"); |
334 | 332 | ||
335 | omap_serial_early_init(); | 333 | omap_serial_early_init(); |
336 | #ifndef CONFIG_ARCH_OMAP4 | 334 | if (cpu_is_omap24xx() || cpu_is_omap34xx()) /* FIXME: OMAP4 */ |
337 | omap_hwmod_late_init(); | 335 | omap_hwmod_late_init(); |
338 | omap_pm_if_init(); | 336 | omap_pm_if_init(); |
339 | omap2_sdrc_init(sdrc_cs0, sdrc_cs1); | 337 | if (cpu_is_omap24xx() || cpu_is_omap34xx()) { |
340 | _omap2_init_reprogram_sdrc(); | 338 | omap2_sdrc_init(sdrc_cs0, sdrc_cs1); |
341 | #endif | 339 | _omap2_init_reprogram_sdrc(); |
340 | } | ||
342 | gpmc_init(); | 341 | gpmc_init(); |
343 | } | 342 | } |
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 52a981cb8fdd..318f3638653c 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c | |||
@@ -430,19 +430,19 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev) | |||
430 | if (unlikely(!res)) { | 430 | if (unlikely(!res)) { |
431 | dev_err(&pdev->dev, "invalid irq resource\n"); | 431 | dev_err(&pdev->dev, "invalid irq resource\n"); |
432 | ret = -ENODEV; | 432 | ret = -ENODEV; |
433 | goto err_iva1; | 433 | omap_mbox_unregister(&mbox_dsp_info); |
434 | goto err_dsp; | ||
434 | } | 435 | } |
435 | mbox_iva_info.irq = res->start; | 436 | mbox_iva_info.irq = res->start; |
436 | ret = omap_mbox_register(&pdev->dev, &mbox_iva_info); | 437 | ret = omap_mbox_register(&pdev->dev, &mbox_iva_info); |
437 | if (ret) | 438 | if (ret) { |
438 | goto err_iva1; | 439 | omap_mbox_unregister(&mbox_dsp_info); |
440 | goto err_dsp; | ||
441 | } | ||
439 | } | 442 | } |
440 | #endif | 443 | #endif |
441 | return 0; | 444 | return 0; |
442 | 445 | ||
443 | err_iva1: | ||
444 | omap_mbox_unregister(&mbox_dsp_info); | ||
445 | |||
446 | err_dsp: | 446 | err_dsp: |
447 | iounmap(mbox_base); | 447 | iounmap(mbox_base); |
448 | return ret; | 448 | return ret; |
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S b/arch/arm/mach-omap2/omap44xx-smc.S new file mode 100644 index 000000000000..89bb2b141473 --- /dev/null +++ b/arch/arm/mach-omap2/omap44xx-smc.S | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * OMAP44xx secure APIs file. | ||
3 | * | ||
4 | * Copyright (C) 2010 Texas Instruments, Inc. | ||
5 | * Written by Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
6 | * | ||
7 | * | ||
8 | * This program is free software,you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include <linux/linkage.h> | ||
14 | |||
15 | /* | ||
16 | * This is common routine to manage secure monitor API | ||
17 | * used to modify the PL310 secure registers. | ||
18 | * 'r0' contains the value to be modified and 'r12' contains | ||
19 | * the monitor API number. It uses few CPU registers | ||
20 | * internally and hence they need be backed up including | ||
21 | * link register "lr". | ||
22 | * Function signature : void omap_smc1(u32 fn, u32 arg) | ||
23 | */ | ||
24 | |||
25 | ENTRY(omap_smc1) | ||
26 | stmfd sp!, {r2-r12, lr} | ||
27 | mov r12, r0 | ||
28 | mov r0, r1 | ||
29 | dsb | ||
30 | smc | ||
31 | ldmfd sp!, {r2-r12, pc} | ||
32 | END(omap_smc1) | ||
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index 81872aacb801..9537f6f2352d 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -133,7 +133,7 @@ u32 omap_prcm_get_reset_sources(void) | |||
133 | EXPORT_SYMBOL(omap_prcm_get_reset_sources); | 133 | EXPORT_SYMBOL(omap_prcm_get_reset_sources); |
134 | 134 | ||
135 | /* Resets clock rates and reboots the system. Only called from system.h */ | 135 | /* Resets clock rates and reboots the system. Only called from system.h */ |
136 | void omap_prcm_arch_reset(char mode) | 136 | void omap_prcm_arch_reset(char mode, const char *cmd) |
137 | { | 137 | { |
138 | s16 prcm_offs = 0; | 138 | s16 prcm_offs = 0; |
139 | 139 | ||
@@ -145,7 +145,7 @@ void omap_prcm_arch_reset(char mode) | |||
145 | u32 l; | 145 | u32 l; |
146 | 146 | ||
147 | prcm_offs = OMAP3430_GR_MOD; | 147 | prcm_offs = OMAP3430_GR_MOD; |
148 | l = ('B' << 24) | ('M' << 16) | mode; | 148 | l = ('B' << 24) | ('M' << 16) | (cmd ? (u8)*cmd : 0); |
149 | /* Reserve the first word in scratchpad for communicating | 149 | /* Reserve the first word in scratchpad for communicating |
150 | * with the boot ROM. A pointer to a data structure | 150 | * with the boot ROM. A pointer to a data structure |
151 | * describing the boot process can be stored there, | 151 | * describing the boot process can be stored there, |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index b79bc8926cc9..da77930480e9 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value) | |||
644 | } | 644 | } |
645 | void __init omap_serial_early_init(void) | 645 | void __init omap_serial_early_init(void) |
646 | { | 646 | { |
647 | int i; | 647 | int i, nr_ports; |
648 | char name[16]; | 648 | char name[16]; |
649 | 649 | ||
650 | if (!(cpu_is_omap3630() || cpu_is_omap4430())) | ||
651 | nr_ports = 3; | ||
652 | else | ||
653 | nr_ports = ARRAY_SIZE(omap_uart); | ||
654 | |||
650 | /* | 655 | /* |
651 | * Make sure the serial ports are muxed on at this point. | 656 | * Make sure the serial ports are muxed on at this point. |
652 | * You have to mux them off in device drivers later on | 657 | * You have to mux them off in device drivers later on |
653 | * if not needed. | 658 | * if not needed. |
654 | */ | 659 | */ |
655 | 660 | ||
656 | for (i = 0; i < ARRAY_SIZE(omap_uart); i++) { | 661 | for (i = 0; i < nr_ports; i++) { |
657 | struct omap_uart_state *uart = &omap_uart[i]; | 662 | struct omap_uart_state *uart = &omap_uart[i]; |
658 | struct platform_device *pdev = &uart->pdev; | 663 | struct platform_device *pdev = &uart->pdev; |
659 | struct device *dev = &pdev->dev; | 664 | struct device *dev = &pdev->dev; |
@@ -669,17 +674,17 @@ void __init omap_serial_early_init(void) | |||
669 | continue; | 674 | continue; |
670 | } | 675 | } |
671 | 676 | ||
672 | sprintf(name, "uart%d_ick", i+1); | 677 | sprintf(name, "uart%d_ick", i + 1); |
673 | uart->ick = clk_get(NULL, name); | 678 | uart->ick = clk_get(NULL, name); |
674 | if (IS_ERR(uart->ick)) { | 679 | if (IS_ERR(uart->ick)) { |
675 | printk(KERN_ERR "Could not get uart%d_ick\n", i+1); | 680 | printk(KERN_ERR "Could not get uart%d_ick\n", i + 1); |
676 | uart->ick = NULL; | 681 | uart->ick = NULL; |
677 | } | 682 | } |
678 | 683 | ||
679 | sprintf(name, "uart%d_fck", i+1); | 684 | sprintf(name, "uart%d_fck", i+1); |
680 | uart->fck = clk_get(NULL, name); | 685 | uart->fck = clk_get(NULL, name); |
681 | if (IS_ERR(uart->fck)) { | 686 | if (IS_ERR(uart->fck)) { |
682 | printk(KERN_ERR "Could not get uart%d_fck\n", i+1); | 687 | printk(KERN_ERR "Could not get uart%d_fck\n", i + 1); |
683 | uart->fck = NULL; | 688 | uart->fck = NULL; |
684 | } | 689 | } |
685 | 690 | ||
diff --git a/arch/arm/mach-omap2/usb-ehci.c b/arch/arm/mach-omap2/usb-ehci.c index f1df873d59db..ee9f548d5d81 100644 --- a/arch/arm/mach-omap2/usb-ehci.c +++ b/arch/arm/mach-omap2/usb-ehci.c | |||
@@ -70,7 +70,7 @@ static struct platform_device ehci_device = { | |||
70 | /* | 70 | /* |
71 | * setup_ehci_io_mux - initialize IO pad mux for USBHOST | 71 | * setup_ehci_io_mux - initialize IO pad mux for USBHOST |
72 | */ | 72 | */ |
73 | static void setup_ehci_io_mux(enum ehci_hcd_omap_mode *port_mode) | 73 | static void setup_ehci_io_mux(const enum ehci_hcd_omap_mode *port_mode) |
74 | { | 74 | { |
75 | switch (port_mode[0]) { | 75 | switch (port_mode[0]) { |
76 | case EHCI_HCD_OMAP_MODE_PHY: | 76 | case EHCI_HCD_OMAP_MODE_PHY: |
@@ -213,7 +213,7 @@ static void setup_ehci_io_mux(enum ehci_hcd_omap_mode *port_mode) | |||
213 | return; | 213 | return; |
214 | } | 214 | } |
215 | 215 | ||
216 | void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) | 216 | void __init usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata) |
217 | { | 217 | { |
218 | platform_device_add_data(&ehci_device, pdata, sizeof(*pdata)); | 218 | platform_device_add_data(&ehci_device, pdata, sizeof(*pdata)); |
219 | 219 | ||
@@ -229,7 +229,7 @@ void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) | |||
229 | 229 | ||
230 | #else | 230 | #else |
231 | 231 | ||
232 | void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) | 232 | void __init usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata) |
233 | 233 | ||
234 | { | 234 | { |
235 | } | 235 | } |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 337199ed3479..76a347b3ce07 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -2140,18 +2140,18 @@ void omap2_gpio_resume_after_retention(void) | |||
2140 | if (gen) { | 2140 | if (gen) { |
2141 | u32 old0, old1; | 2141 | u32 old0, old1; |
2142 | 2142 | ||
2143 | if (cpu_is_omap24xx() || cpu_is_omap44xx()) { | 2143 | if (cpu_is_omap24xx() || cpu_is_omap34xx()) { |
2144 | old0 = __raw_readl(bank->base + | 2144 | old0 = __raw_readl(bank->base + |
2145 | OMAP24XX_GPIO_LEVELDETECT0); | 2145 | OMAP24XX_GPIO_LEVELDETECT0); |
2146 | old1 = __raw_readl(bank->base + | 2146 | old1 = __raw_readl(bank->base + |
2147 | OMAP24XX_GPIO_LEVELDETECT1); | 2147 | OMAP24XX_GPIO_LEVELDETECT1); |
2148 | __raw_writel(old0 | gen, bank->base + | 2148 | __raw_writel(old0 | gen, bank->base + |
2149 | OMAP24XX_GPIO_LEVELDETECT0); | 2149 | OMAP24XX_GPIO_LEVELDETECT0); |
2150 | __raw_writel(old1 | gen, bank->base + | 2150 | __raw_writel(old1 | gen, bank->base + |
2151 | OMAP24XX_GPIO_LEVELDETECT1); | 2151 | OMAP24XX_GPIO_LEVELDETECT1); |
2152 | __raw_writel(old0, bank->base + | 2152 | __raw_writel(old0, bank->base + |
2153 | OMAP24XX_GPIO_LEVELDETECT0); | 2153 | OMAP24XX_GPIO_LEVELDETECT0); |
2154 | __raw_writel(old1, bank->base + | 2154 | __raw_writel(old1, bank->base + |
2155 | OMAP24XX_GPIO_LEVELDETECT1); | 2155 | OMAP24XX_GPIO_LEVELDETECT1); |
2156 | } | 2156 | } |
2157 | 2157 | ||
diff --git a/arch/arm/plat-omap/include/plat/blizzard.h b/arch/arm/plat-omap/include/plat/blizzard.h index 8d160f171372..56e7f2e7d12f 100644 --- a/arch/arm/plat-omap/include/plat/blizzard.h +++ b/arch/arm/plat-omap/include/plat/blizzard.h | |||
@@ -6,7 +6,7 @@ struct blizzard_platform_data { | |||
6 | void (*power_down)(struct device *dev); | 6 | void (*power_down)(struct device *dev); |
7 | unsigned long (*get_clock_rate)(struct device *dev); | 7 | unsigned long (*get_clock_rate)(struct device *dev); |
8 | 8 | ||
9 | unsigned te_connected : 1; | 9 | unsigned te_connected:1; |
10 | }; | 10 | }; |
11 | 11 | ||
12 | #endif | 12 | #endif |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index ed8786c41df2..75141742300c 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -167,10 +167,14 @@ IS_OMAP_SUBCLASS(443x, 0x443) | |||
167 | #if defined(MULTI_OMAP2) | 167 | #if defined(MULTI_OMAP2) |
168 | # if defined(CONFIG_ARCH_OMAP2) | 168 | # if defined(CONFIG_ARCH_OMAP2) |
169 | # undef cpu_is_omap24xx | 169 | # undef cpu_is_omap24xx |
170 | # undef cpu_is_omap242x | ||
171 | # undef cpu_is_omap243x | ||
172 | # define cpu_is_omap24xx() is_omap24xx() | 170 | # define cpu_is_omap24xx() is_omap24xx() |
171 | # endif | ||
172 | # if defined (CONFIG_ARCH_OMAP2420) | ||
173 | # undef cpu_is_omap242x | ||
173 | # define cpu_is_omap242x() is_omap242x() | 174 | # define cpu_is_omap242x() is_omap242x() |
175 | # endif | ||
176 | # if defined (CONFIG_ARCH_OMAP2430) | ||
177 | # undef cpu_is_omap243x | ||
174 | # define cpu_is_omap243x() is_omap243x() | 178 | # define cpu_is_omap243x() is_omap243x() |
175 | # endif | 179 | # endif |
176 | # if defined(CONFIG_ARCH_OMAP3) | 180 | # if defined(CONFIG_ARCH_OMAP3) |
diff --git a/arch/arm/plat-omap/include/plat/prcm.h b/arch/arm/plat-omap/include/plat/prcm.h index d6a0e27d5a7f..9fbd91419cd1 100644 --- a/arch/arm/plat-omap/include/plat/prcm.h +++ b/arch/arm/plat-omap/include/plat/prcm.h | |||
@@ -24,7 +24,7 @@ | |||
24 | #define __ASM_ARM_ARCH_OMAP_PRCM_H | 24 | #define __ASM_ARM_ARCH_OMAP_PRCM_H |
25 | 25 | ||
26 | u32 omap_prcm_get_reset_sources(void); | 26 | u32 omap_prcm_get_reset_sources(void); |
27 | void omap_prcm_arch_reset(char mode); | 27 | void omap_prcm_arch_reset(char mode, const char *cmd); |
28 | int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest, | 28 | int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest, |
29 | const char *name); | 29 | const char *name); |
30 | 30 | ||
diff --git a/arch/arm/plat-omap/include/plat/system.h b/arch/arm/plat-omap/include/plat/system.h index c58a4ef42a45..d0a119f735b4 100644 --- a/arch/arm/plat-omap/include/plat/system.h +++ b/arch/arm/plat-omap/include/plat/system.h | |||
@@ -22,7 +22,7 @@ static inline void arch_idle(void) | |||
22 | cpu_do_idle(); | 22 | cpu_do_idle(); |
23 | } | 23 | } |
24 | 24 | ||
25 | static inline void omap1_arch_reset(char mode) | 25 | static inline void omap1_arch_reset(char mode, const char *cmd) |
26 | { | 26 | { |
27 | /* | 27 | /* |
28 | * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 | 28 | * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 |
@@ -43,9 +43,9 @@ static inline void omap1_arch_reset(char mode) | |||
43 | static inline void arch_reset(char mode, const char *cmd) | 43 | static inline void arch_reset(char mode, const char *cmd) |
44 | { | 44 | { |
45 | if (!cpu_class_is_omap2()) | 45 | if (!cpu_class_is_omap2()) |
46 | omap1_arch_reset(mode); | 46 | omap1_arch_reset(mode, cmd); |
47 | else | 47 | else |
48 | omap_prcm_arch_reset(mode); | 48 | omap_prcm_arch_reset(mode, cmd); |
49 | } | 49 | } |
50 | 50 | ||
51 | #endif | 51 | #endif |
diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h index 288e29e1c06f..568578db93b6 100644 --- a/arch/arm/plat-omap/include/plat/usb.h +++ b/arch/arm/plat-omap/include/plat/usb.h | |||
@@ -53,7 +53,7 @@ enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI}; | |||
53 | 53 | ||
54 | extern void usb_musb_init(struct omap_musb_board_data *board_data); | 54 | extern void usb_musb_init(struct omap_musb_board_data *board_data); |
55 | 55 | ||
56 | extern void usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata); | 56 | extern void usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata); |
57 | 57 | ||
58 | #endif | 58 | #endif |
59 | 59 | ||
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index e47686e0a633..52dfcc81511e 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c | |||
@@ -133,8 +133,7 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id) | |||
133 | dev_err(mcbsp_tx->dev, "TX Frame Sync Error! : 0x%x\n", | 133 | dev_err(mcbsp_tx->dev, "TX Frame Sync Error! : 0x%x\n", |
134 | irqst_spcr2); | 134 | irqst_spcr2); |
135 | /* Writing zero to XSYNC_ERR clears the IRQ */ | 135 | /* Writing zero to XSYNC_ERR clears the IRQ */ |
136 | MCBSP_WRITE(mcbsp_tx, SPCR2, | 136 | MCBSP_WRITE(mcbsp_tx, SPCR2, MCBSP_READ_CACHE(mcbsp_tx, SPCR2)); |
137 | MCBSP_READ_CACHE(mcbsp_tx, SPCR2) & ~(XSYNC_ERR)); | ||
138 | } else { | 137 | } else { |
139 | complete(&mcbsp_tx->tx_irq_completion); | 138 | complete(&mcbsp_tx->tx_irq_completion); |
140 | } | 139 | } |
@@ -154,8 +153,7 @@ static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id) | |||
154 | dev_err(mcbsp_rx->dev, "RX Frame Sync Error! : 0x%x\n", | 153 | dev_err(mcbsp_rx->dev, "RX Frame Sync Error! : 0x%x\n", |
155 | irqst_spcr1); | 154 | irqst_spcr1); |
156 | /* Writing zero to RSYNC_ERR clears the IRQ */ | 155 | /* Writing zero to RSYNC_ERR clears the IRQ */ |
157 | MCBSP_WRITE(mcbsp_rx, SPCR1, | 156 | MCBSP_WRITE(mcbsp_rx, SPCR1, MCBSP_READ_CACHE(mcbsp_rx, SPCR1)); |
158 | MCBSP_READ_CACHE(mcbsp_rx, SPCR1) & ~(RSYNC_ERR)); | ||
159 | } else { | 157 | } else { |
160 | complete(&mcbsp_rx->tx_irq_completion); | 158 | complete(&mcbsp_rx->tx_irq_completion); |
161 | } | 159 | } |
@@ -934,8 +932,7 @@ int omap_mcbsp_pollwrite(unsigned int id, u16 buf) | |||
934 | /* if frame sync error - clear the error */ | 932 | /* if frame sync error - clear the error */ |
935 | if (MCBSP_READ(mcbsp, SPCR2) & XSYNC_ERR) { | 933 | if (MCBSP_READ(mcbsp, SPCR2) & XSYNC_ERR) { |
936 | /* clear error */ | 934 | /* clear error */ |
937 | MCBSP_WRITE(mcbsp, SPCR2, | 935 | MCBSP_WRITE(mcbsp, SPCR2, MCBSP_READ_CACHE(mcbsp, SPCR2)); |
938 | MCBSP_READ_CACHE(mcbsp, SPCR2) & (~XSYNC_ERR)); | ||
939 | /* resend */ | 936 | /* resend */ |
940 | return -1; | 937 | return -1; |
941 | } else { | 938 | } else { |
@@ -975,8 +972,7 @@ int omap_mcbsp_pollread(unsigned int id, u16 *buf) | |||
975 | /* if frame sync error - clear the error */ | 972 | /* if frame sync error - clear the error */ |
976 | if (MCBSP_READ(mcbsp, SPCR1) & RSYNC_ERR) { | 973 | if (MCBSP_READ(mcbsp, SPCR1) & RSYNC_ERR) { |
977 | /* clear error */ | 974 | /* clear error */ |
978 | MCBSP_WRITE(mcbsp, SPCR1, | 975 | MCBSP_WRITE(mcbsp, SPCR1, MCBSP_READ_CACHE(mcbsp, SPCR1)); |
979 | MCBSP_READ_CACHE(mcbsp, SPCR1) & (~RSYNC_ERR)); | ||
980 | /* resend */ | 976 | /* resend */ |
981 | return -1; | 977 | return -1; |
982 | } else { | 978 | } else { |