Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

Consolidate i.MX 5 platforms to be under the new shared i.MX 3/5/6 tree.

* tag 'arm-soc-imx-move' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM i.MX: Update defconfig
ARM i.MX: Merge i.MX5 support into mach-imx
ARM i.MX5: remove unnecessary includes from board files

Fix up fairly trivial conflicts due to various changes nearby in
arch/arm/{mach,plat}-imx/{Kconfig,Makefile}

Pull request had been sent to the wrong email address, but happened
before the merge window closed. I'm merging the MX 5 consolidation,
since it apparently will help the next development window and will avoid
conflicts later as per Arnd.

+391 -559
-1
arch/arm/Makefile
··· 160 160 machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 161 161 machine-$(CONFIG_ARCH_IMX_V4_V5) := imx 162 162 machine-$(CONFIG_ARCH_IMX_V6_V7) := imx 163 - machine-$(CONFIG_ARCH_MX5) := mx5 164 163 machine-$(CONFIG_ARCH_MXS) := mxs 165 164 machine-$(CONFIG_ARCH_NETX) := netx 166 165 machine-$(CONFIG_ARCH_NOMADIK) := nomadik
-144
arch/arm/configs/mx3_defconfig
··· 1 - CONFIG_EXPERIMENTAL=y 2 - CONFIG_SYSVIPC=y 3 - CONFIG_IKCONFIG=y 4 - CONFIG_IKCONFIG_PROC=y 5 - CONFIG_LOG_BUF_SHIFT=14 6 - CONFIG_EXPERT=y 7 - CONFIG_SLAB=y 8 - CONFIG_MODULES=y 9 - CONFIG_MODULE_UNLOAD=y 10 - CONFIG_MODULE_FORCE_UNLOAD=y 11 - CONFIG_MODVERSIONS=y 12 - # CONFIG_BLK_DEV_BSG is not set 13 - CONFIG_ARCH_MXC=y 14 - CONFIG_MACH_MX31ADS_WM1133_EV1=y 15 - CONFIG_MACH_MX31LILLY=y 16 - CONFIG_MACH_MX31LITE=y 17 - CONFIG_MACH_PCM037=y 18 - CONFIG_MACH_PCM037_EET=y 19 - CONFIG_MACH_MX31_3DS=y 20 - CONFIG_MACH_MX31MOBOARD=y 21 - CONFIG_MACH_QONG=y 22 - CONFIG_MACH_ARMADILLO5X0=y 23 - CONFIG_MACH_KZM_ARM11_01=y 24 - CONFIG_MACH_PCM043=y 25 - CONFIG_MACH_MX35_3DS=y 26 - CONFIG_MACH_EUKREA_CPUIMX35=y 27 - CONFIG_MXC_IRQ_PRIOR=y 28 - CONFIG_MXC_PWM=y 29 - CONFIG_ARM_ERRATA_411920=y 30 - CONFIG_NO_HZ=y 31 - CONFIG_HIGH_RES_TIMERS=y 32 - CONFIG_PREEMPT=y 33 - CONFIG_AEABI=y 34 - CONFIG_ZBOOT_ROM_TEXT=0x0 35 - CONFIG_ZBOOT_ROM_BSS=0x0 36 - CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off" 37 - CONFIG_VFP=y 38 - CONFIG_PM_DEBUG=y 39 - CONFIG_NET=y 40 - CONFIG_PACKET=y 41 - CONFIG_UNIX=y 42 - CONFIG_INET=y 43 - CONFIG_IP_PNP=y 44 - CONFIG_IP_PNP_DHCP=y 45 - # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 46 - # CONFIG_INET_XFRM_MODE_TUNNEL is not set 47 - # CONFIG_INET_XFRM_MODE_BEET is not set 48 - # CONFIG_INET_LRO is not set 49 - # CONFIG_INET_DIAG is not set 50 - # CONFIG_IPV6 is not set 51 - CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 52 - CONFIG_FW_LOADER=m 53 - CONFIG_MTD=y 54 - CONFIG_MTD_CMDLINE_PARTS=y 55 - CONFIG_MTD_CHAR=y 56 - CONFIG_MTD_BLOCK=y 57 - CONFIG_MTD_CFI=y 58 - CONFIG_MTD_PHYSMAP=y 59 - CONFIG_MTD_NAND=y 60 - CONFIG_MTD_NAND_MXC=y 61 - CONFIG_MTD_UBI=y 62 - # CONFIG_BLK_DEV is not set 63 - CONFIG_MISC_DEVICES=y 64 - CONFIG_EEPROM_AT24=y 65 - CONFIG_NETDEVICES=y 66 - CONFIG_SMSC_PHY=y 67 - CONFIG_NET_ETHERNET=y 68 - CONFIG_SMSC911X=y 69 - CONFIG_DNET=y 70 - # CONFIG_NETDEV_1000 is not set 71 - # CONFIG_NETDEV_10000 is not set 72 - # CONFIG_INPUT_MOUSEDEV is not set 73 - # CONFIG_KEYBOARD_ATKBD is not set 74 - CONFIG_KEYBOARD_IMX=y 75 - # CONFIG_INPUT_MOUSE is not set 76 - # CONFIG_SERIO is not set 77 - # CONFIG_VT is not set 78 - # CONFIG_LEGACY_PTYS is not set 79 - CONFIG_SERIAL_8250=m 80 - CONFIG_SERIAL_8250_EXTENDED=y 81 - CONFIG_SERIAL_8250_SHARE_IRQ=y 82 - CONFIG_SERIAL_IMX=y 83 - CONFIG_SERIAL_IMX_CONSOLE=y 84 - # CONFIG_HW_RANDOM is not set 85 - CONFIG_I2C=y 86 - CONFIG_I2C_CHARDEV=y 87 - CONFIG_I2C_IMX=y 88 - CONFIG_SPI=y 89 - CONFIG_W1=y 90 - CONFIG_W1_MASTER_MXC=y 91 - CONFIG_W1_SLAVE_THERM=y 92 - # CONFIG_HWMON is not set 93 - CONFIG_WATCHDOG=y 94 - CONFIG_IMX2_WDT=y 95 - CONFIG_MFD_WM8350_I2C=y 96 - CONFIG_REGULATOR=y 97 - CONFIG_REGULATOR_WM8350=y 98 - CONFIG_MEDIA_SUPPORT=y 99 - CONFIG_VIDEO_DEV=y 100 - # CONFIG_RC_CORE is not set 101 - # CONFIG_MEDIA_TUNER_CUSTOMISE is not set 102 - CONFIG_SOC_CAMERA=y 103 - CONFIG_SOC_CAMERA_MT9M001=y 104 - CONFIG_SOC_CAMERA_MT9M111=y 105 - CONFIG_SOC_CAMERA_MT9T031=y 106 - CONFIG_SOC_CAMERA_MT9V022=y 107 - CONFIG_SOC_CAMERA_TW9910=y 108 - CONFIG_SOC_CAMERA_OV772X=y 109 - CONFIG_VIDEO_MX3=y 110 - # CONFIG_RADIO_ADAPTERS is not set 111 - CONFIG_FB=y 112 - CONFIG_SOUND=y 113 - CONFIG_SND=y 114 - # CONFIG_SND_ARM is not set 115 - # CONFIG_SND_SPI is not set 116 - CONFIG_SND_SOC=y 117 - CONFIG_SND_IMX_SOC=y 118 - CONFIG_SND_MXC_SOC_WM1133_EV1=y 119 - CONFIG_SND_SOC_PHYCORE_AC97=y 120 - CONFIG_SND_SOC_EUKREA_TLV320=y 121 - CONFIG_USB=y 122 - CONFIG_USB_EHCI_HCD=y 123 - CONFIG_USB_EHCI_MXC=y 124 - CONFIG_USB_GADGET=m 125 - CONFIG_USB_FSL_USB2=m 126 - CONFIG_USB_G_SERIAL=m 127 - CONFIG_USB_ULPI=y 128 - CONFIG_MMC=y 129 - CONFIG_MMC_MXC=y 130 - CONFIG_RTC_CLASS=y 131 - CONFIG_RTC_MXC=y 132 - CONFIG_DMADEVICES=y 133 - # CONFIG_DNOTIFY is not set 134 - CONFIG_TMPFS=y 135 - CONFIG_JFFS2_FS=y 136 - CONFIG_UBIFS_FS=y 137 - CONFIG_NFS_FS=y 138 - CONFIG_NFS_V3=y 139 - CONFIG_NFS_V4=y 140 - CONFIG_ROOT_NFS=y 141 - # CONFIG_ENABLE_WARN_DEPRECATED is not set 142 - # CONFIG_ENABLE_MUST_CHECK is not set 143 - CONFIG_SYSCTL_SYSCALL_CHECK=y 144 - # CONFIG_CRYPTO_ANSI_CPRNG is not set
+35 -26
arch/arm/configs/mx5_defconfig arch/arm/configs/imx_v6_v7_defconfig
··· 3 3 CONFIG_KERNEL_LZO=y 4 4 CONFIG_SYSVIPC=y 5 5 CONFIG_LOG_BUF_SHIFT=18 6 + CONFIG_CGROUPS=y 6 7 CONFIG_RELAY=y 7 8 CONFIG_EXPERT=y 8 9 # CONFIG_SLUB_DEBUG is not set ··· 15 14 # CONFIG_LBDAF is not set 16 15 # CONFIG_BLK_DEV_BSG is not set 17 16 CONFIG_ARCH_MXC=y 18 - CONFIG_ARCH_MX5=y 19 - CONFIG_MACH_MX51_BABBAGE=y 17 + CONFIG_MACH_MX31LILLY=y 18 + CONFIG_MACH_MX31LITE=y 19 + CONFIG_MACH_PCM037=y 20 + CONFIG_MACH_PCM037_EET=y 21 + CONFIG_MACH_MX31_3DS=y 22 + CONFIG_MACH_MX31MOBOARD=y 23 + CONFIG_MACH_QONG=y 24 + CONFIG_MACH_ARMADILLO5X0=y 25 + CONFIG_MACH_KZM_ARM11_01=y 26 + CONFIG_MACH_PCM043=y 27 + CONFIG_MACH_MX35_3DS=y 28 + CONFIG_MACH_EUKREA_CPUIMX35=y 29 + CONFIG_MACH_VPR200=y 30 + CONFIG_MACH_IMX51_DT=y 20 31 CONFIG_MACH_MX51_3DS=y 21 32 CONFIG_MACH_EUKREA_CPUIMX51=y 22 33 CONFIG_MACH_EUKREA_CPUIMX51SD=y 23 34 CONFIG_MACH_MX51_EFIKAMX=y 24 35 CONFIG_MACH_MX51_EFIKASB=y 25 - CONFIG_MACH_MX53_EVK=y 26 - CONFIG_MACH_MX53_SMD=y 27 - CONFIG_MACH_MX53_LOCO=y 28 - CONFIG_MACH_MX53_ARD=y 36 + CONFIG_MACH_IMX53_DT=y 37 + CONFIG_SOC_IMX6Q=y 29 38 CONFIG_MXC_PWM=y 30 39 CONFIG_NO_HZ=y 31 40 CONFIG_HIGH_RES_TIMERS=y 41 + CONFIG_SMP=y 32 42 CONFIG_VMSPLIT_2G=y 33 43 CONFIG_PREEMPT_VOLUNTARY=y 34 44 CONFIG_AEABI=y ··· 61 49 # CONFIG_INET_XFRM_MODE_TUNNEL is not set 62 50 # CONFIG_INET_XFRM_MODE_BEET is not set 63 51 # CONFIG_INET_LRO is not set 64 - # CONFIG_IPV6 is not set 52 + CONFIG_IPV6=y 65 53 # CONFIG_WIRELESS is not set 66 54 CONFIG_DEVTMPFS=y 67 55 CONFIG_DEVTMPFS_MOUNT=y ··· 80 68 CONFIG_ATA=y 81 69 CONFIG_PATA_IMX=y 82 70 CONFIG_NETDEVICES=y 83 - CONFIG_MII=m 84 - CONFIG_MARVELL_PHY=y 85 - CONFIG_DAVICOM_PHY=y 86 - CONFIG_QSEMI_PHY=y 87 - CONFIG_LXT_PHY=y 88 - CONFIG_CICADA_PHY=y 89 - CONFIG_VITESSE_PHY=y 90 - CONFIG_SMSC_PHY=y 91 - CONFIG_BROADCOM_PHY=y 92 - CONFIG_ICPLUS_PHY=y 93 - CONFIG_REALTEK_PHY=y 94 - CONFIG_NATIONAL_PHY=y 95 - CONFIG_STE10XP=y 96 - CONFIG_LSI_ET1011C_PHY=y 97 - CONFIG_MICREL_PHY=y 98 - CONFIG_NET_ETHERNET=y 99 - # CONFIG_NETDEV_1000 is not set 100 - # CONFIG_NETDEV_10000 is not set 71 + # CONFIG_NET_VENDOR_BROADCOM is not set 72 + # CONFIG_NET_VENDOR_CHELSIO is not set 73 + # CONFIG_NET_VENDOR_FARADAY is not set 74 + CONFIG_FEC=y 75 + # CONFIG_NET_VENDOR_INTEL is not set 76 + # CONFIG_NET_VENDOR_MARVELL is not set 77 + # CONFIG_NET_VENDOR_MICREL is not set 78 + # CONFIG_NET_VENDOR_MICROCHIP is not set 79 + # CONFIG_NET_VENDOR_NATSEMI is not set 80 + # CONFIG_NET_VENDOR_SEEQ is not set 81 + CONFIG_SMC91X=y 82 + CONFIG_SMC911X=y 83 + CONFIG_SMSC911X=y 84 + # CONFIG_NET_VENDOR_STMICRO is not set 101 85 # CONFIG_WLAN is not set 102 86 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set 103 87 CONFIG_INPUT_EVDEV=y ··· 132 124 CONFIG_USB_EHCI_MXC=y 133 125 CONFIG_USB_STORAGE=y 134 126 CONFIG_MMC=y 135 - CONFIG_MMC_BLOCK=m 136 127 CONFIG_MMC_SDHCI=y 137 128 CONFIG_MMC_SDHCI_PLTFM=y 138 129 CONFIG_MMC_SDHCI_ESDHC_IMX=y ··· 140 133 CONFIG_RTC_CLASS=y 141 134 CONFIG_RTC_INTF_DEV_UIE_EMUL=y 142 135 CONFIG_RTC_MXC=y 136 + CONFIG_DMADEVICES=y 137 + CONFIG_IMX_SDMA=y 143 138 CONFIG_EXT2_FS=y 144 139 CONFIG_EXT2_FS_XATTR=y 145 140 CONFIG_EXT2_FS_POSIX_ACL=y
+239
arch/arm/mach-imx/Kconfig
··· 22 22 config MACH_MX27 23 23 bool 24 24 25 + config ARCH_MX5 26 + bool 27 + 28 + config ARCH_MX50 29 + bool 30 + 31 + config ARCH_MX51 32 + bool 33 + 34 + config ARCH_MX53 35 + bool 36 + 25 37 config SOC_IMX1 26 38 bool 27 39 select ARCH_MX1 ··· 85 73 select MXC_AVIC 86 74 select SMP_ON_UP if SMP 87 75 76 + config SOC_IMX5 77 + select CPU_V7 78 + select ARM_L1_CACHE_SHIFT_6 79 + select MXC_TZIC 80 + select ARCH_MXC_IOMUX_V3 81 + select ARCH_MXC_AUDMUX_V2 82 + select ARCH_HAS_CPUFREQ 83 + select ARCH_MX5 84 + bool 85 + 86 + config SOC_IMX50 87 + bool 88 + select SOC_IMX5 89 + select ARCH_MX50 90 + 91 + config SOC_IMX51 92 + bool 93 + select SOC_IMX5 94 + select ARCH_MX5 95 + select ARCH_MX51 96 + 97 + config SOC_IMX53 98 + bool 99 + select SOC_IMX5 100 + select ARCH_MX5 101 + select ARCH_MX53 88 102 89 103 if ARCH_IMX_V4_V5 90 104 ··· 628 590 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 629 591 help 630 592 Include support for VPR200 platform. This includes specific 593 + configurations for the board and its peripherals. 594 + 595 + comment "i.MX5 platforms:" 596 + 597 + config MACH_MX50_RDP 598 + bool "Support MX50 reference design platform" 599 + depends on BROKEN 600 + select SOC_IMX50 601 + select IMX_HAVE_PLATFORM_IMX_I2C 602 + select IMX_HAVE_PLATFORM_IMX_UART 603 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 604 + select IMX_HAVE_PLATFORM_SPI_IMX 605 + help 606 + Include support for MX50 reference design platform (RDP) board. This 607 + includes specific configurations for the board and its peripherals. 608 + 609 + comment "i.MX51 machines:" 610 + 611 + config MACH_IMX51_DT 612 + bool "Support i.MX51 platforms from device tree" 613 + select SOC_IMX51 614 + select USE_OF 615 + select MACH_MX51_BABBAGE 616 + help 617 + Include support for Freescale i.MX51 based platforms 618 + using the device tree for discovery 619 + 620 + config MACH_MX51_BABBAGE 621 + bool "Support MX51 BABBAGE platforms" 622 + select SOC_IMX51 623 + select IMX_HAVE_PLATFORM_FSL_USB2_UDC 624 + select IMX_HAVE_PLATFORM_IMX2_WDT 625 + select IMX_HAVE_PLATFORM_IMX_I2C 626 + select IMX_HAVE_PLATFORM_IMX_UART 627 + select IMX_HAVE_PLATFORM_MXC_EHCI 628 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 629 + select IMX_HAVE_PLATFORM_SPI_IMX 630 + help 631 + Include support for MX51 Babbage platform, also known as MX51EVK in 632 + u-boot. This includes specific configurations for the board and its 633 + peripherals. 634 + 635 + config MACH_MX51_3DS 636 + bool "Support MX51PDK (3DS)" 637 + select SOC_IMX51 638 + select IMX_HAVE_PLATFORM_IMX2_WDT 639 + select IMX_HAVE_PLATFORM_IMX_KEYPAD 640 + select IMX_HAVE_PLATFORM_IMX_UART 641 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 642 + select IMX_HAVE_PLATFORM_SPI_IMX 643 + select MXC_DEBUG_BOARD 644 + help 645 + Include support for MX51PDK (3DS) platform. This includes specific 646 + configurations for the board and its peripherals. 647 + 648 + config MACH_EUKREA_CPUIMX51 649 + bool "Support Eukrea CPUIMX51 module" 650 + select SOC_IMX51 651 + select IMX_HAVE_PLATFORM_FSL_USB2_UDC 652 + select IMX_HAVE_PLATFORM_IMX_I2C 653 + select IMX_HAVE_PLATFORM_IMX_UART 654 + select IMX_HAVE_PLATFORM_MXC_EHCI 655 + select IMX_HAVE_PLATFORM_MXC_NAND 656 + select IMX_HAVE_PLATFORM_SPI_IMX 657 + help 658 + Include support for Eukrea CPUIMX51 platform. This includes 659 + specific configurations for the module and its peripherals. 660 + 661 + choice 662 + prompt "Baseboard" 663 + depends on MACH_EUKREA_CPUIMX51 664 + default MACH_EUKREA_MBIMX51_BASEBOARD 665 + 666 + config MACH_EUKREA_MBIMX51_BASEBOARD 667 + prompt "Eukrea MBIMX51 development board" 668 + bool 669 + select IMX_HAVE_PLATFORM_IMX_KEYPAD 670 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 671 + select LEDS_GPIO_REGISTER 672 + help 673 + This adds board specific devices that can be found on Eukrea's 674 + MBIMX51 evaluation board. 675 + 676 + endchoice 677 + 678 + config MACH_EUKREA_CPUIMX51SD 679 + bool "Support Eukrea CPUIMX51SD module" 680 + select SOC_IMX51 681 + select IMX_HAVE_PLATFORM_FSL_USB2_UDC 682 + select IMX_HAVE_PLATFORM_IMX_I2C 683 + select IMX_HAVE_PLATFORM_IMX_UART 684 + select IMX_HAVE_PLATFORM_MXC_EHCI 685 + select IMX_HAVE_PLATFORM_MXC_NAND 686 + select IMX_HAVE_PLATFORM_SPI_IMX 687 + help 688 + Include support for Eukrea CPUIMX51SD platform. This includes 689 + specific configurations for the module and its peripherals. 690 + 691 + choice 692 + prompt "Baseboard" 693 + depends on MACH_EUKREA_CPUIMX51SD 694 + default MACH_EUKREA_MBIMXSD51_BASEBOARD 695 + 696 + config MACH_EUKREA_MBIMXSD51_BASEBOARD 697 + prompt "Eukrea MBIMXSD development board" 698 + bool 699 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 700 + select LEDS_GPIO_REGISTER 701 + help 702 + This adds board specific devices that can be found on Eukrea's 703 + MBIMXSD evaluation board. 704 + 705 + endchoice 706 + 707 + config MX51_EFIKA_COMMON 708 + bool 709 + select SOC_IMX51 710 + select IMX_HAVE_PLATFORM_IMX_UART 711 + select IMX_HAVE_PLATFORM_MXC_EHCI 712 + select IMX_HAVE_PLATFORM_PATA_IMX 713 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 714 + select IMX_HAVE_PLATFORM_SPI_IMX 715 + select MXC_ULPI if USB_ULPI 716 + 717 + config MACH_MX51_EFIKAMX 718 + bool "Support MX51 Genesi Efika MX nettop" 719 + select LEDS_GPIO_REGISTER 720 + select MX51_EFIKA_COMMON 721 + help 722 + Include support for Genesi Efika MX nettop. This includes specific 723 + configurations for the board and its peripherals. 724 + 725 + config MACH_MX51_EFIKASB 726 + bool "Support MX51 Genesi Efika Smartbook" 727 + select LEDS_GPIO_REGISTER 728 + select MX51_EFIKA_COMMON 729 + help 730 + Include support for Genesi Efika Smartbook. This includes specific 731 + configurations for the board and its peripherals. 732 + 733 + comment "i.MX53 machines:" 734 + 735 + config MACH_IMX53_DT 736 + bool "Support i.MX53 platforms from device tree" 737 + select SOC_IMX53 738 + select USE_OF 739 + select MACH_MX53_ARD 740 + select MACH_MX53_EVK 741 + select MACH_MX53_LOCO 742 + select MACH_MX53_SMD 743 + help 744 + Include support for Freescale i.MX53 based platforms 745 + using the device tree for discovery 746 + 747 + config MACH_MX53_EVK 748 + bool "Support MX53 EVK platforms" 749 + select SOC_IMX53 750 + select IMX_HAVE_PLATFORM_IMX2_WDT 751 + select IMX_HAVE_PLATFORM_IMX_UART 752 + select IMX_HAVE_PLATFORM_IMX_I2C 753 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 754 + select IMX_HAVE_PLATFORM_SPI_IMX 755 + select LEDS_GPIO_REGISTER 756 + help 757 + Include support for MX53 EVK platform. This includes specific 758 + configurations for the board and its peripherals. 759 + 760 + config MACH_MX53_SMD 761 + bool "Support MX53 SMD platforms" 762 + select SOC_IMX53 763 + select IMX_HAVE_PLATFORM_IMX2_WDT 764 + select IMX_HAVE_PLATFORM_IMX_I2C 765 + select IMX_HAVE_PLATFORM_IMX_UART 766 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 767 + help 768 + Include support for MX53 SMD platform. This includes specific 769 + configurations for the board and its peripherals. 770 + 771 + config MACH_MX53_LOCO 772 + bool "Support MX53 LOCO platforms" 773 + select SOC_IMX53 774 + select IMX_HAVE_PLATFORM_IMX2_WDT 775 + select IMX_HAVE_PLATFORM_IMX_I2C 776 + select IMX_HAVE_PLATFORM_IMX_UART 777 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 778 + select IMX_HAVE_PLATFORM_GPIO_KEYS 779 + select LEDS_GPIO_REGISTER 780 + help 781 + Include support for MX53 LOCO platform. This includes specific 782 + configurations for the board and its peripherals. 783 + 784 + config MACH_MX53_ARD 785 + bool "Support MX53 ARD platforms" 786 + select SOC_IMX53 787 + select IMX_HAVE_PLATFORM_IMX2_WDT 788 + select IMX_HAVE_PLATFORM_IMX_I2C 789 + select IMX_HAVE_PLATFORM_IMX_UART 790 + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 791 + select IMX_HAVE_PLATFORM_GPIO_KEYS 792 + help 793 + Include support for MX53 ARD platform. This includes specific 631 794 configurations for the board and its peripherals. 632 795 633 796 comment "i.MX6 family:"
+21
arch/arm/mach-imx/Makefile
··· 11 11 obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o clock-imx31.o iomux-imx31.o ehci-imx31.o 12 12 obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o clock-imx35.o ehci-imx35.o 13 13 14 + obj-$(CONFIG_SOC_IMX5) += cpu-imx5.o mm-imx5.o clock-mx51-mx53.o ehci-imx5.o pm-imx5.o cpu_op-mx51.o 15 + 14 16 # Support for CMOS sensor interface 15 17 obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o 16 18 ··· 77 75 ifeq ($(CONFIG_PM),y) 78 76 obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o 79 77 endif 78 + 79 + # i.MX5 based machines 80 + obj-$(CONFIG_MACH_MX51_BABBAGE) += mach-mx51_babbage.o 81 + obj-$(CONFIG_MACH_MX51_3DS) += mach-mx51_3ds.o 82 + obj-$(CONFIG_MACH_MX53_EVK) += mach-mx53_evk.o 83 + obj-$(CONFIG_MACH_MX53_SMD) += mach-mx53_smd.o 84 + obj-$(CONFIG_MACH_MX53_LOCO) += mach-mx53_loco.o 85 + obj-$(CONFIG_MACH_MX53_ARD) += mach-mx53_ard.o 86 + obj-$(CONFIG_MACH_EUKREA_CPUIMX51) += mach-cpuimx51.o 87 + obj-$(CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD) += eukrea_mbimx51-baseboard.o 88 + obj-$(CONFIG_MACH_EUKREA_CPUIMX51SD) += mach-cpuimx51sd.o 89 + obj-$(CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD) += eukrea_mbimxsd-baseboard.o 90 + obj-$(CONFIG_MX51_EFIKA_COMMON) += mx51_efika.o 91 + obj-$(CONFIG_MACH_MX51_EFIKAMX) += mach-mx51_efikamx.o 92 + obj-$(CONFIG_MACH_MX51_EFIKASB) += mach-mx51_efikasb.o 93 + obj-$(CONFIG_MACH_MX50_RDP) += mach-mx50_rdp.o 94 + 95 + obj-$(CONFIG_MACH_IMX51_DT) += imx51-dt.o 96 + obj-$(CONFIG_MACH_IMX53_DT) += imx53-dt.o
+12
arch/arm/mach-imx/Makefile.boot
··· 22 22 params_phys-$(CONFIG_SOC_IMX35) := 0x80000100 23 23 initrd_phys-$(CONFIG_SOC_IMX35) := 0x80800000 24 24 25 + zreladdr-$(CONFIG_SOC_IMX50) += 0x70008000 26 + params_phys-$(CONFIG_SOC_IMX50) := 0x70000100 27 + initrd_phys-$(CONFIG_SOC_IMX50) := 0x70800000 28 + 29 + zreladdr-$(CONFIG_SOC_IMX51) += 0x90008000 30 + params_phys-$(CONFIG_SOC_IMX51) := 0x90000100 31 + initrd_phys-$(CONFIG_SOC_IMX51) := 0x90800000 32 + 33 + zreladdr-$(CONFIG_SOC_IMX53) += 0x70008000 34 + params_phys-$(CONFIG_SOC_IMX53) := 0x70000100 35 + initrd_phys-$(CONFIG_SOC_IMX53) := 0x70800000 36 + 25 37 zreladdr-$(CONFIG_SOC_IMX6Q) += 0x10008000 26 38 params_phys-$(CONFIG_SOC_IMX6Q) := 0x10000100 27 39 initrd_phys-$(CONFIG_SOC_IMX6Q) := 0x10800000
-244
arch/arm/mach-mx5/Kconfig
··· 1 - if ARCH_MX5 2 - 3 - # ARCH_MX5/50/53 are left to mark places where prevent multi-soc in single 4 - # image. So for most time, SOC_IMX50/51/53 should be used. 5 - 6 - config ARCH_MX51 7 - bool 8 - 9 - config ARCH_MX50 10 - bool 11 - 12 - config ARCH_MX53 13 - bool 14 - 15 - config SOC_IMX50 16 - bool 17 - select CPU_V7 18 - select ARM_L1_CACHE_SHIFT_6 19 - select MXC_TZIC 20 - select ARCH_MXC_IOMUX_V3 21 - select ARCH_MXC_AUDMUX_V2 22 - select ARCH_HAS_CPUFREQ 23 - select ARCH_MX50 24 - 25 - config SOC_IMX51 26 - bool 27 - select CPU_V7 28 - select ARM_L1_CACHE_SHIFT_6 29 - select MXC_TZIC 30 - select ARCH_MXC_IOMUX_V3 31 - select ARCH_MXC_AUDMUX_V2 32 - select ARCH_HAS_CPUFREQ 33 - select ARCH_MX51 34 - 35 - config SOC_IMX53 36 - bool 37 - select CPU_V7 38 - select ARM_L1_CACHE_SHIFT_6 39 - select MXC_TZIC 40 - select ARCH_MXC_IOMUX_V3 41 - select ARCH_MX53 42 - 43 - #comment "i.MX50 machines:" 44 - 45 - config MACH_MX50_RDP 46 - bool "Support MX50 reference design platform" 47 - depends on BROKEN 48 - select SOC_IMX50 49 - select IMX_HAVE_PLATFORM_IMX_I2C 50 - select IMX_HAVE_PLATFORM_IMX_UART 51 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 52 - select IMX_HAVE_PLATFORM_SPI_IMX 53 - help 54 - Include support for MX50 reference design platform (RDP) board. This 55 - includes specific configurations for the board and its peripherals. 56 - 57 - comment "i.MX51 machines:" 58 - 59 - config MACH_IMX51_DT 60 - bool "Support i.MX51 platforms from device tree" 61 - select SOC_IMX51 62 - select USE_OF 63 - select MACH_MX51_BABBAGE 64 - help 65 - Include support for Freescale i.MX51 based platforms 66 - using the device tree for discovery 67 - 68 - config MACH_MX51_BABBAGE 69 - bool "Support MX51 BABBAGE platforms" 70 - select SOC_IMX51 71 - select IMX_HAVE_PLATFORM_FSL_USB2_UDC 72 - select IMX_HAVE_PLATFORM_IMX2_WDT 73 - select IMX_HAVE_PLATFORM_IMX_I2C 74 - select IMX_HAVE_PLATFORM_IMX_UART 75 - select IMX_HAVE_PLATFORM_MXC_EHCI 76 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 77 - select IMX_HAVE_PLATFORM_SPI_IMX 78 - help 79 - Include support for MX51 Babbage platform, also known as MX51EVK in 80 - u-boot. This includes specific configurations for the board and its 81 - peripherals. 82 - 83 - config MACH_MX51_3DS 84 - bool "Support MX51PDK (3DS)" 85 - select SOC_IMX51 86 - select IMX_HAVE_PLATFORM_IMX2_WDT 87 - select IMX_HAVE_PLATFORM_IMX_KEYPAD 88 - select IMX_HAVE_PLATFORM_IMX_UART 89 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 90 - select IMX_HAVE_PLATFORM_SPI_IMX 91 - select MXC_DEBUG_BOARD 92 - help 93 - Include support for MX51PDK (3DS) platform. This includes specific 94 - configurations for the board and its peripherals. 95 - 96 - config MACH_EUKREA_CPUIMX51 97 - bool "Support Eukrea CPUIMX51 module" 98 - select SOC_IMX51 99 - select IMX_HAVE_PLATFORM_FSL_USB2_UDC 100 - select IMX_HAVE_PLATFORM_IMX_I2C 101 - select IMX_HAVE_PLATFORM_IMX_UART 102 - select IMX_HAVE_PLATFORM_MXC_EHCI 103 - select IMX_HAVE_PLATFORM_MXC_NAND 104 - select IMX_HAVE_PLATFORM_SPI_IMX 105 - help 106 - Include support for Eukrea CPUIMX51 platform. This includes 107 - specific configurations for the module and its peripherals. 108 - 109 - choice 110 - prompt "Baseboard" 111 - depends on MACH_EUKREA_CPUIMX51 112 - default MACH_EUKREA_MBIMX51_BASEBOARD 113 - 114 - config MACH_EUKREA_MBIMX51_BASEBOARD 115 - prompt "Eukrea MBIMX51 development board" 116 - bool 117 - select IMX_HAVE_PLATFORM_IMX_KEYPAD 118 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 119 - select LEDS_GPIO_REGISTER 120 - help 121 - This adds board specific devices that can be found on Eukrea's 122 - MBIMX51 evaluation board. 123 - 124 - endchoice 125 - 126 - config MACH_EUKREA_CPUIMX51SD 127 - bool "Support Eukrea CPUIMX51SD module" 128 - select SOC_IMX51 129 - select IMX_HAVE_PLATFORM_FSL_USB2_UDC 130 - select IMX_HAVE_PLATFORM_IMX_I2C 131 - select IMX_HAVE_PLATFORM_IMX_UART 132 - select IMX_HAVE_PLATFORM_MXC_EHCI 133 - select IMX_HAVE_PLATFORM_MXC_NAND 134 - select IMX_HAVE_PLATFORM_SPI_IMX 135 - help 136 - Include support for Eukrea CPUIMX51SD platform. This includes 137 - specific configurations for the module and its peripherals. 138 - 139 - choice 140 - prompt "Baseboard" 141 - depends on MACH_EUKREA_CPUIMX51SD 142 - default MACH_EUKREA_MBIMXSD51_BASEBOARD 143 - 144 - config MACH_EUKREA_MBIMXSD51_BASEBOARD 145 - prompt "Eukrea MBIMXSD development board" 146 - bool 147 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 148 - select LEDS_GPIO_REGISTER 149 - help 150 - This adds board specific devices that can be found on Eukrea's 151 - MBIMXSD evaluation board. 152 - 153 - endchoice 154 - 155 - config MX51_EFIKA_COMMON 156 - bool 157 - select SOC_IMX51 158 - select IMX_HAVE_PLATFORM_IMX_UART 159 - select IMX_HAVE_PLATFORM_MXC_EHCI 160 - select IMX_HAVE_PLATFORM_PATA_IMX 161 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 162 - select IMX_HAVE_PLATFORM_SPI_IMX 163 - select MXC_ULPI if USB_ULPI 164 - 165 - config MACH_MX51_EFIKAMX 166 - bool "Support MX51 Genesi Efika MX nettop" 167 - select LEDS_GPIO_REGISTER 168 - select MX51_EFIKA_COMMON 169 - help 170 - Include support for Genesi Efika MX nettop. This includes specific 171 - configurations for the board and its peripherals. 172 - 173 - config MACH_MX51_EFIKASB 174 - bool "Support MX51 Genesi Efika Smartbook" 175 - select LEDS_GPIO_REGISTER 176 - select MX51_EFIKA_COMMON 177 - help 178 - Include support for Genesi Efika Smartbook. This includes specific 179 - configurations for the board and its peripherals. 180 - 181 - comment "i.MX53 machines:" 182 - 183 - config MACH_IMX53_DT 184 - bool "Support i.MX53 platforms from device tree" 185 - select SOC_IMX53 186 - select USE_OF 187 - select MACH_MX53_ARD 188 - select MACH_MX53_EVK 189 - select MACH_MX53_LOCO 190 - select MACH_MX53_SMD 191 - help 192 - Include support for Freescale i.MX53 based platforms 193 - using the device tree for discovery 194 - 195 - config MACH_MX53_EVK 196 - bool "Support MX53 EVK platforms" 197 - select SOC_IMX53 198 - select IMX_HAVE_PLATFORM_IMX2_WDT 199 - select IMX_HAVE_PLATFORM_IMX_UART 200 - select IMX_HAVE_PLATFORM_IMX_I2C 201 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 202 - select IMX_HAVE_PLATFORM_SPI_IMX 203 - select LEDS_GPIO_REGISTER 204 - help 205 - Include support for MX53 EVK platform. This includes specific 206 - configurations for the board and its peripherals. 207 - 208 - config MACH_MX53_SMD 209 - bool "Support MX53 SMD platforms" 210 - select SOC_IMX53 211 - select IMX_HAVE_PLATFORM_IMX2_WDT 212 - select IMX_HAVE_PLATFORM_IMX_I2C 213 - select IMX_HAVE_PLATFORM_IMX_UART 214 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 215 - help 216 - Include support for MX53 SMD platform. This includes specific 217 - configurations for the board and its peripherals. 218 - 219 - config MACH_MX53_LOCO 220 - bool "Support MX53 LOCO platforms" 221 - select SOC_IMX53 222 - select IMX_HAVE_PLATFORM_IMX2_WDT 223 - select IMX_HAVE_PLATFORM_IMX_I2C 224 - select IMX_HAVE_PLATFORM_IMX_UART 225 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 226 - select IMX_HAVE_PLATFORM_GPIO_KEYS 227 - select LEDS_GPIO_REGISTER 228 - help 229 - Include support for MX53 LOCO platform. This includes specific 230 - configurations for the board and its peripherals. 231 - 232 - config MACH_MX53_ARD 233 - bool "Support MX53 ARD platforms" 234 - select SOC_IMX53 235 - select IMX_HAVE_PLATFORM_IMX2_WDT 236 - select IMX_HAVE_PLATFORM_IMX_I2C 237 - select IMX_HAVE_PLATFORM_IMX_UART 238 - select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 239 - select IMX_HAVE_PLATFORM_GPIO_KEYS 240 - help 241 - Include support for MX53 ARD platform. This includes specific 242 - configurations for the board and its peripherals. 243 - 244 - endif
-26
arch/arm/mach-mx5/Makefile
··· 1 - # 2 - # Makefile for the linux kernel. 3 - # 4 - 5 - # Object file lists. 6 - obj-y := cpu.o mm.o clock-mx51-mx53.o ehci.o system.o 7 - 8 - obj-$(CONFIG_PM) += pm-imx5.o 9 - obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o 10 - obj-$(CONFIG_MACH_MX51_BABBAGE) += board-mx51_babbage.o 11 - obj-$(CONFIG_MACH_MX51_3DS) += board-mx51_3ds.o 12 - obj-$(CONFIG_MACH_MX53_EVK) += board-mx53_evk.o 13 - obj-$(CONFIG_MACH_MX53_SMD) += board-mx53_smd.o 14 - obj-$(CONFIG_MACH_MX53_LOCO) += board-mx53_loco.o 15 - obj-$(CONFIG_MACH_MX53_ARD) += board-mx53_ard.o 16 - obj-$(CONFIG_MACH_EUKREA_CPUIMX51) += board-cpuimx51.o 17 - obj-$(CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD) += eukrea_mbimx51-baseboard.o 18 - obj-$(CONFIG_MACH_EUKREA_CPUIMX51SD) += board-cpuimx51sd.o 19 - obj-$(CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD) += eukrea_mbimxsd-baseboard.o 20 - obj-$(CONFIG_MX51_EFIKA_COMMON) += mx51_efika.o 21 - obj-$(CONFIG_MACH_MX51_EFIKAMX) += board-mx51_efikamx.o 22 - obj-$(CONFIG_MACH_MX51_EFIKASB) += board-mx51_efikasb.o 23 - obj-$(CONFIG_MACH_MX50_RDP) += board-mx50_rdp.o 24 - 25 - obj-$(CONFIG_MACH_IMX51_DT) += imx51-dt.o 26 - obj-$(CONFIG_MACH_IMX53_DT) += imx53-dt.o
-9
arch/arm/mach-mx5/Makefile.boot
··· 1 - zreladdr-$(CONFIG_ARCH_MX50) += 0x70008000 2 - params_phys-$(CONFIG_ARCH_MX50) := 0x70000100 3 - initrd_phys-$(CONFIG_ARCH_MX50) := 0x70800000 4 - zreladdr-$(CONFIG_ARCH_MX51) += 0x90008000 5 - params_phys-$(CONFIG_ARCH_MX51) := 0x90000100 6 - initrd_phys-$(CONFIG_ARCH_MX51) := 0x90800000 7 - zreladdr-$(CONFIG_ARCH_MX53) += 0x70008000 8 - params_phys-$(CONFIG_ARCH_MX53) := 0x70000100 9 - initrd_phys-$(CONFIG_ARCH_MX53) := 0x70800000
arch/arm/mach-mx5/board-cpuimx51.c arch/arm/mach-imx/mach-cpuimx51.c
arch/arm/mach-mx5/board-cpuimx51sd.c arch/arm/mach-imx/mach-cpuimx51sd.c
arch/arm/mach-mx5/board-mx50_rdp.c arch/arm/mach-imx/mach-mx50_rdp.c
arch/arm/mach-mx5/board-mx51_3ds.c arch/arm/mach-imx/mach-mx51_3ds.c
arch/arm/mach-mx5/board-mx51_babbage.c arch/arm/mach-imx/mach-mx51_babbage.c
arch/arm/mach-mx5/board-mx51_efikamx.c arch/arm/mach-imx/mach-mx51_efikamx.c
arch/arm/mach-mx5/board-mx51_efikasb.c arch/arm/mach-imx/mach-mx51_efikasb.c
-1
arch/arm/mach-mx5/board-mx53_ard.c arch/arm/mach-imx/mach-mx53_ard.c
··· 32 32 #include <asm/mach/arch.h> 33 33 #include <asm/mach/time.h> 34 34 35 - #include "crm_regs.h" 36 35 #include "devices-imx53.h" 37 36 38 37 #define ARD_ETHERNET_INT_B IMX_GPIO_NR(2, 31)
-1
arch/arm/mach-mx5/board-mx53_evk.c arch/arm/mach-imx/mach-mx53_evk.c
··· 37 37 #define EVK_ECSPI1_CS1 IMX_GPIO_NR(3, 19) 38 38 #define MX53EVK_LED IMX_GPIO_NR(7, 7) 39 39 40 - #include "crm_regs.h" 41 40 #include "devices-imx53.h" 42 41 43 42 static iomux_v3_cfg_t mx53_evk_pads[] = {
-1
arch/arm/mach-mx5/board-mx53_loco.c arch/arm/mach-imx/mach-mx53_loco.c
··· 32 32 #include <asm/mach/arch.h> 33 33 #include <asm/mach/time.h> 34 34 35 - #include "crm_regs.h" 36 35 #include "devices-imx53.h" 37 36 38 37 #define MX53_LOCO_POWER IMX_GPIO_NR(1, 8)
-1
arch/arm/mach-mx5/board-mx53_smd.c arch/arm/mach-imx/mach-mx53_smd.c
··· 31 31 #include <asm/mach/arch.h> 32 32 #include <asm/mach/time.h> 33 33 34 - #include "crm_regs.h" 35 34 #include "devices-imx53.h" 36 35 37 36 #define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6)
+1 -1
arch/arm/mach-mx5/clock-mx51-mx53.c arch/arm/mach-imx/clock-mx51-mx53.c
··· 23 23 #include <mach/common.h> 24 24 #include <mach/clock.h> 25 25 26 - #include "crm_regs.h" 26 + #include "crm-regs-imx5.h" 27 27 28 28 /* External clock values passed-in by the board code */ 29 29 static unsigned long external_high_reference, external_low_reference;
arch/arm/mach-mx5/cpu.c arch/arm/mach-imx/cpu-imx5.c
arch/arm/mach-mx5/cpu_op-mx51.c arch/arm/mach-imx/cpu_op-mx51.c
arch/arm/mach-mx5/cpu_op-mx51.h arch/arm/mach-imx/cpu_op-mx51.h
arch/arm/mach-mx5/crm_regs.h arch/arm/mach-imx/crm-regs-imx5.h
arch/arm/mach-mx5/devices-imx50.h arch/arm/mach-imx/devices-imx50.h
arch/arm/mach-mx5/devices-imx51.h arch/arm/mach-imx/devices-imx51.h
arch/arm/mach-mx5/devices-imx53.h arch/arm/mach-imx/devices-imx53.h
arch/arm/mach-mx5/efika.h arch/arm/mach-imx/efika.h
arch/arm/mach-mx5/ehci.c arch/arm/mach-imx/ehci-imx5.c
arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c arch/arm/mach-imx/eukrea_mbimx51-baseboard.c
arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c arch/arm/mach-imx/eukrea_mbimxsd-baseboard.c
arch/arm/mach-mx5/imx51-dt.c arch/arm/mach-imx/imx51-dt.c
arch/arm/mach-mx5/imx53-dt.c arch/arm/mach-imx/imx53-dt.c
arch/arm/mach-mx5/mm.c arch/arm/mach-imx/mm-imx5.c
arch/arm/mach-mx5/mx51_efika.c arch/arm/mach-imx/mx51_efika.c
-83
arch/arm/mach-mx5/pm-imx5.c
··· 1 - /* 2 - * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. 3 - * 4 - * The code contained herein is licensed under the GNU General Public 5 - * License. You may obtain a copy of the GNU General Public License 6 - * Version 2 or later at the following locations: 7 - * 8 - * http://www.opensource.org/licenses/gpl-license.html 9 - * http://www.gnu.org/copyleft/gpl.html 10 - */ 11 - #include <linux/suspend.h> 12 - #include <linux/clk.h> 13 - #include <linux/io.h> 14 - #include <linux/err.h> 15 - #include <asm/cacheflush.h> 16 - #include <asm/tlbflush.h> 17 - #include <mach/common.h> 18 - #include <mach/hardware.h> 19 - #include "crm_regs.h" 20 - 21 - static struct clk *gpc_dvfs_clk; 22 - 23 - static int mx5_suspend_prepare(void) 24 - { 25 - return clk_enable(gpc_dvfs_clk); 26 - } 27 - 28 - static int mx5_suspend_enter(suspend_state_t state) 29 - { 30 - switch (state) { 31 - case PM_SUSPEND_MEM: 32 - mx5_cpu_lp_set(STOP_POWER_OFF); 33 - break; 34 - case PM_SUSPEND_STANDBY: 35 - mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF); 36 - break; 37 - default: 38 - return -EINVAL; 39 - } 40 - 41 - if (state == PM_SUSPEND_MEM) { 42 - local_flush_tlb_all(); 43 - flush_cache_all(); 44 - 45 - /*clear the EMPGC0/1 bits */ 46 - __raw_writel(0, MXC_SRPG_EMPGC0_SRPGCR); 47 - __raw_writel(0, MXC_SRPG_EMPGC1_SRPGCR); 48 - } 49 - cpu_do_idle(); 50 - return 0; 51 - } 52 - 53 - static void mx5_suspend_finish(void) 54 - { 55 - clk_disable(gpc_dvfs_clk); 56 - } 57 - 58 - static int mx5_pm_valid(suspend_state_t state) 59 - { 60 - return (state > PM_SUSPEND_ON && state <= PM_SUSPEND_MAX); 61 - } 62 - 63 - static const struct platform_suspend_ops mx5_suspend_ops = { 64 - .valid = mx5_pm_valid, 65 - .prepare = mx5_suspend_prepare, 66 - .enter = mx5_suspend_enter, 67 - .finish = mx5_suspend_finish, 68 - }; 69 - 70 - static int __init mx5_pm_init(void) 71 - { 72 - if (gpc_dvfs_clk == NULL) 73 - gpc_dvfs_clk = clk_get(NULL, "gpc_dvfs"); 74 - 75 - if (!IS_ERR(gpc_dvfs_clk)) { 76 - if (cpu_is_mx51()) 77 - suspend_set_ops(&mx5_suspend_ops); 78 - } else 79 - return -EPERM; 80 - 81 - return 0; 82 - } 83 - device_initcall(mx5_pm_init);
+80 -9
arch/arm/mach-mx5/system.c arch/arm/mach-imx/pm-imx5.c
··· 1 1 /* 2 - * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. 3 - */ 4 - 5 - /* 2 + * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. 3 + * 6 4 * The code contained herein is licensed under the GNU General Public 7 5 * License. You may obtain a copy of the GNU General Public License 8 6 * Version 2 or later at the following locations: ··· 8 10 * http://www.opensource.org/licenses/gpl-license.html 9 11 * http://www.gnu.org/copyleft/gpl.html 10 12 */ 11 - #include <linux/platform_device.h> 13 + #include <linux/suspend.h> 14 + #include <linux/clk.h> 12 15 #include <linux/io.h> 13 - #include <mach/hardware.h> 16 + #include <linux/err.h> 17 + #include <asm/cacheflush.h> 18 + #include <asm/tlbflush.h> 14 19 #include <mach/common.h> 15 - #include "crm_regs.h" 20 + #include <mach/hardware.h> 21 + #include "crm-regs-imx5.h" 16 22 17 - /* set cpu low power mode before WFI instruction. This function is called 18 - * mx5 because it can be used for mx50, mx51, and mx53.*/ 23 + static struct clk *gpc_dvfs_clk; 24 + 25 + /* 26 + * set cpu low power mode before WFI instruction. This function is called 27 + * mx5 because it can be used for mx50, mx51, and mx53. 28 + */ 19 29 void mx5_cpu_lp_set(enum mxc_cpu_pwr_mode mode) 20 30 { 21 31 u32 plat_lpc, arm_srpgcr, ccm_clpcr; ··· 86 80 __raw_writel(empgc1, MXC_SRPG_EMPGC1_SRPGCR); 87 81 } 88 82 } 83 + 84 + static int mx5_suspend_prepare(void) 85 + { 86 + return clk_enable(gpc_dvfs_clk); 87 + } 88 + 89 + static int mx5_suspend_enter(suspend_state_t state) 90 + { 91 + switch (state) { 92 + case PM_SUSPEND_MEM: 93 + mx5_cpu_lp_set(STOP_POWER_OFF); 94 + break; 95 + case PM_SUSPEND_STANDBY: 96 + mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF); 97 + break; 98 + default: 99 + return -EINVAL; 100 + } 101 + 102 + if (state == PM_SUSPEND_MEM) { 103 + local_flush_tlb_all(); 104 + flush_cache_all(); 105 + 106 + /*clear the EMPGC0/1 bits */ 107 + __raw_writel(0, MXC_SRPG_EMPGC0_SRPGCR); 108 + __raw_writel(0, MXC_SRPG_EMPGC1_SRPGCR); 109 + } 110 + cpu_do_idle(); 111 + return 0; 112 + } 113 + 114 + static void mx5_suspend_finish(void) 115 + { 116 + clk_disable(gpc_dvfs_clk); 117 + } 118 + 119 + static int mx5_pm_valid(suspend_state_t state) 120 + { 121 + return (state > PM_SUSPEND_ON && state <= PM_SUSPEND_MAX); 122 + } 123 + 124 + static const struct platform_suspend_ops mx5_suspend_ops = { 125 + .valid = mx5_pm_valid, 126 + .prepare = mx5_suspend_prepare, 127 + .enter = mx5_suspend_enter, 128 + .finish = mx5_suspend_finish, 129 + }; 130 + 131 + static int __init mx5_pm_init(void) 132 + { 133 + if (!cpu_is_mx51() && !cpu_is_mx53()) 134 + return 0; 135 + 136 + if (gpc_dvfs_clk == NULL) 137 + gpc_dvfs_clk = clk_get(NULL, "gpc_dvfs"); 138 + 139 + if (!IS_ERR(gpc_dvfs_clk)) { 140 + if (cpu_is_mx51()) 141 + suspend_set_ops(&mx5_suspend_ops); 142 + } else 143 + return -EPERM; 144 + 145 + return 0; 146 + } 147 + device_initcall(mx5_pm_init);
+3 -12
arch/arm/plat-mxc/Kconfig
··· 17 17 and ARMv5 SoCs 18 18 19 19 config ARCH_IMX_V6_V7 20 - bool "i.MX3, i.MX6" 20 + bool "i.MX3, i.MX5, i.MX6" 21 21 select AUTO_ZRELADDR if !ZBOOT_ROM 22 22 select ARM_PATCH_PHYS_VIRT 23 23 select MIGHT_HAVE_CACHE_L2X0 24 24 help 25 - This enables support for systems based on the Freescale i.MX3 and i.MX6 26 - family. 27 - 28 - config ARCH_MX5 29 - bool "i.MX50, i.MX51, i.MX53" 30 - select AUTO_ZRELADDR if !ZBOOT_ROM 31 - select ARM_PATCH_PHYS_VIRT 32 - help 33 - This enables support for machines using Freescale's i.MX50 and i.MX53 34 - processors. 25 + This enables support for systems based on the Freescale i.MX3, i.MX5 26 + and i.MX6 family. 35 27 36 28 endchoice 37 29 38 30 source "arch/arm/mach-imx/Kconfig" 39 - source "arch/arm/mach-mx5/Kconfig" 40 31 41 32 endmenu 42 33