From ca648ca250c09f37b538bf042ab87c59a432aff3 Mon Sep 17 00:00:00 2001 From: SARTRE Leo Date: Fri, 14 Jun 2013 15:35:03 +0000 Subject: [PATCH] linux-imx-3.0.35: update Congatec qmx6 support to bsp 4.0 Cleanup and adapting patch from congatec team. Patch now apply to Freescale's bsp4.0 Change-Id: Ibe7e93d9dac5a2de38ec7c5ce274c3e83c270ec0 Signed-off-by: Leo Sartre --- ...for-congatec-evaluation-board-qmx6q.patch} | 862 ++++++++---------- .../linux/linux-imx-3.0.35/cgtqmx6/defconfig | 107 +-- .../linux/linux-imx_3.0.35.bbappend | 2 +- 3 files changed, 423 insertions(+), 548 deletions(-) rename recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/{cgtqmx6.patch => 0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch} (92%) diff --git a/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/cgtqmx6.patch b/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch similarity index 92% rename from recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/cgtqmx6.patch rename to recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch index b4b761d..daa57a1 100644 --- a/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/cgtqmx6.patch +++ b/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch @@ -1,12 +1,45 @@ +From 08820dff9be6ad5e55986e155d7acd0ac051b2c7 Mon Sep 17 00:00:00 2001 +From: Leo Sartre +Date: Wed, 29 May 2013 09:46:23 +0200 +Subject: [PATCH] Add support for congatec evaluation board qmx6q and qmx6qdl + +Add support for congatec Qeval board, patch originaly written by +Congatec team, some minor changes and cleanup were applied to make it +work with the bsp 4.0 release. +--- + arch/arm/configs/qmx6_defconfig | 2659 +++++++++++++++++++++++++++ + arch/arm/configs/qmx6_updater_defconfig | 2367 ++++++++++++++++++++++++ + arch/arm/mach-mx6/Kconfig | 35 + + arch/arm/mach-mx6/Makefile | 2 + + arch/arm/mach-mx6/board-mx6dl_qmx6.h | 199 ++ + arch/arm/mach-mx6/board-mx6q_qmx6.c | 979 ++++++++++ + arch/arm/mach-mx6/board-mx6q_qmx6.h | 199 ++ + arch/arm/mach-mx6/mx6q_qmx6_pmic_pfuze100.c | 422 +++++ + arch/arm/plat-mxc/include/mach/esdhc.h | 1 + + arch/arm/tools/mach-types | 1 + + drivers/mmc/host/sdhci-esdhc-imx.c | 5 +- + drivers/net/fec.c | 29 +- + drivers/net/phy/micrel.c | 23 + + include/linux/micrel_phy.h | 1 + + sound/soc/imx/Kconfig | 2 +- + sound/soc/imx/imx-sgtl5000.c | 2 +- + 16 files changed, 6910 insertions(+), 16 deletions(-) + create mode 100644 arch/arm/configs/qmx6_defconfig + create mode 100644 arch/arm/configs/qmx6_updater_defconfig + create mode 100644 arch/arm/mach-mx6/board-mx6dl_qmx6.h + create mode 100644 arch/arm/mach-mx6/board-mx6q_qmx6.c + create mode 100644 arch/arm/mach-mx6/board-mx6q_qmx6.h + create mode 100644 arch/arm/mach-mx6/mx6q_qmx6_pmic_pfuze100.c + diff --git a/arch/arm/configs/qmx6_defconfig b/arch/arm/configs/qmx6_defconfig new file mode 100644 -index 0000000..22b117b +index 0000000..9aeb4a5 --- /dev/null +++ b/arch/arm/configs/qmx6_defconfig -@@ -0,0 +1,2714 @@ +@@ -0,0 +1,2659 @@ +# +# Automatically generated make config: don't edit -+# Linux/arm 3.0.35 Kernel Configuration ++# Linux/arm 3.0.15 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_HAVE_PWM=y @@ -263,17 +296,14 @@ index 0000000..22b117b +CONFIG_GPIO_PCA953X=y +# CONFIG_KEYBOARD_GPIO_POLLED is not set +CONFIG_IMX_HAVE_PLATFORM_DMA=y -+CONFIG_IMX_HAVE_PLATFORM_MXC_MLB=y +CONFIG_IMX_HAVE_PLATFORM_FEC=y +CONFIG_IMX_HAVE_PLATFORM_FLEXCAN=y +CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC=y +CONFIG_IMX_HAVE_PLATFORM_GPMI_NFC=y +CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y +CONFIG_IMX_HAVE_PLATFORM_IMX_SNVS_RTC=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_CAAM=y +CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y +CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_ESAI=y +CONFIG_IMX_HAVE_PLATFORM_IMX_UART=y +CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI=y +CONFIG_IMX_HAVE_PLATFORM_MXC_PWM=y @@ -285,11 +315,7 @@ index 0000000..22b117b +CONFIG_IMX_HAVE_PLATFORM_AHCI=y +CONFIG_IMX_HAVE_PLATFORM_IMX_OCOTP=y +CONFIG_IMX_HAVE_PLATFORM_IMX_VIIM=y -+CONFIG_IMX_HAVE_PLATFORM_PERFMON=y +CONFIG_IMX_HAVE_PLATFORM_LDB=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_PXP=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_ELCDIF=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_EPDC=y +CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF=y +CONFIG_IMX_HAVE_PLATFORM_VIV_GPU=y +CONFIG_IMX_HAVE_PLATFORM_MXC_HDMI=y @@ -298,7 +324,6 @@ index 0000000..22b117b +CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y +CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y +CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y +CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y +CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y +CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y @@ -317,8 +342,6 @@ index 0000000..22b117b +CONFIG_FORCE_MAX_ZONEORDER=14 +CONFIG_SOC_IMX6Q=y +# CONFIG_MACH_MX6Q_ARM2 is not set -+# CONFIG_MACH_MX6SL_ARM2 is not set -+# CONFIG_MACH_MX6SL_EVK is not set +# CONFIG_MACH_MX6Q_SABRELITE is not set +CONFIG_MACH_MX6Q_QMX6=y +# CONFIG_MACH_MX6Q_SABRESD is not set @@ -328,14 +351,10 @@ index 0000000..22b117b +# MX6 Options: +# +# CONFIG_IMX_PCIE is not set -+CONFIG_USB_EHCI_ARC_H1=y -+# CONFIG_MX6_INTER_LDO_BYPASS is not set +CONFIG_ISP1504_MXC=y +# CONFIG_MXC_IRQ_PRIOR is not set +CONFIG_MXC_PWM=y +# CONFIG_MXC_DEBUG_BOARD is not set -+CONFIG_MXC_REBOOT_MFGMODE=y -+# CONFIG_MXC_REBOOT_ANDROID_CMD is not set +CONFIG_ARCH_MXC_IOMUX_V3=y +CONFIG_ARCH_MXC_AUDMUX_V2=y +CONFIG_IRAM_ALLOC=y @@ -487,10 +506,10 @@ index 0000000..22b117b +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y -+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y ++# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y -+CONFIG_CPU_FREQ_GOV_ONDEMAND=y ++# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_IMX=y @@ -587,8 +606,7 @@ index 0000000..22b117b +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set -+CONFIG_LLC=y -+CONFIG_LLC2=y ++# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set @@ -684,7 +702,6 @@ index 0000000..22b117b +# CONFIG_MAC80211 is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y -+CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_RFKILL_GPIO is not set @@ -985,7 +1002,6 @@ index 0000000..22b117b +# CONFIG_KS8851 is not set +# CONFIG_KS8851_MLL is not set +CONFIG_FEC=y -+CONFIG_FEC_NAPI=y +# CONFIG_FEC_1588 is not set +# CONFIG_FTMAC100 is not set +# CONFIG_NETDEV_1000 is not set @@ -1088,7 +1104,6 @@ index 0000000..22b117b +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +CONFIG_TOUCHSCREEN_EGALAX=y -+# CONFIG_TOUCHSCREEN_ELAN is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set @@ -1144,7 +1159,7 @@ index 0000000..22b117b +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y -+CONFIG_VT_HW_CONSOLE_BINDING=y ++# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y @@ -1190,7 +1205,6 @@ index 0000000..22b117b +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y -+CONFIG_I2C_ALGOBIT=m + +# +# I2C Hardware Bus support @@ -1314,8 +1328,7 @@ index 0000000..22b117b +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_ISP1704 is not set -+# CONFIG_CHARGER_MAX8903 is not set -+# CONFIG_SABRESD_MAX8903 is not set ++CONFIG_CHARGER_MAX8903=y +# CONFIG_CHARGER_GPIO is not set +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set @@ -1505,7 +1518,6 @@ index 0000000..22b117b +# CONFIG_REGULATOR_AD5398 is not set +CONFIG_REGULATOR_ANATOP=y +# CONFIG_REGULATOR_TPS6524X is not set -+# CONFIG_REGULATOR_MAX17135 is not set +CONFIG_MEDIA_SUPPORT=y + +# @@ -1635,12 +1647,11 @@ index 0000000..22b117b +# CONFIG_MXC_CAMERA_OV2640 is not set +CONFIG_MXC_CAMERA_OV3640=m +CONFIG_MXC_CAMERA_OV5640=m ++CONFIG_MXC_CAMERA_OV5640_MIPI=m +CONFIG_MXC_CAMERA_OV8820_MIPI=m +CONFIG_MXC_CAMERA_OV5642=m -+CONFIG_MXC_TVIN_ADV7180=m -+CONFIG_MXC_CAMERA_OV5640_MIPI=m +CONFIG_MXC_CAMERA_SENSOR_CLK=m -+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m ++CONFIG_MXC_IPU_PRP_VF_SDC=m +CONFIG_MXC_IPU_PRP_ENC=m +CONFIG_MXC_IPU_CSI_ENC=m +CONFIG_VIDEO_MXC_OUTPUT=y @@ -1714,8 +1725,7 @@ index 0000000..22b117b +# +# Graphics support +# -+CONFIG_DRM=m -+CONFIG_DRM_VIVANTE=m ++# CONFIG_DRM is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y @@ -1776,7 +1786,6 @@ index 0000000..22b117b +# CONFIG_FB_MXC_ASYNC_PANEL is not set +CONFIG_FB_MXC_EINK_PANEL=y +# CONFIG_FB_MXC_EINK_AUTO_UPDATE_MODE is not set -+# CONFIG_FB_MXC_SIPIX_PANEL is not set +# CONFIG_FB_MXC_ELCDIF_FB is not set +CONFIG_FB_MXC_HDMI=y + @@ -1846,8 +1855,6 @@ index 0000000..22b117b +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_WM8958=y +CONFIG_SND_SOC_IMX_WM8962=y -+CONFIG_SND_SOC_IMX_CS42888=y -+# CONFIG_SND_SOC_IMX_SI4763 is not set +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_HDMI=y +CONFIG_SND_SOC_I2C_AND_SPI=y @@ -1856,7 +1863,6 @@ index 0000000..22b117b +CONFIG_SND_SOC_MXC_HDMI=y +CONFIG_SND_SOC_MXC_SPDIF=y +CONFIG_SND_SOC_SGTL5000=y -+CONFIG_SND_SOC_CS42888=y +CONFIG_SND_SOC_WM8962=y +CONFIG_SND_SOC_WM8994=y +# CONFIG_SOUND_PRIME is not set @@ -1929,7 +1935,7 @@ index 0000000..22b117b +# CONFIG_HID_ZYDACRON is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y -+CONFIG_USB_ARCH_HAS_OHCI=y ++# CONFIG_USB_ARCH_HAS_OHCI is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set @@ -2043,7 +2049,6 @@ index 0000000..22b117b +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_ARC=y -+# CONFIG_IMX_USB_CHARGER is not set +CONFIG_USB_ARC=y +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_FUSB300 is not set @@ -2114,8 +2119,7 @@ index 0000000..22b117b +# +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_PCA9532 is not set -+CONFIG_LEDS_GPIO=y -+CONFIG_LEDS_GPIO_PLATFORM=y ++# CONFIG_LEDS_GPIO is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set @@ -2125,20 +2129,11 @@ index 0000000..22b117b +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set -+CONFIG_LEDS_TRIGGERS=y ++# CONFIG_LEDS_TRIGGERS is not set + +# +# LED Triggers +# -+# CONFIG_LEDS_TRIGGER_TIMER is not set -+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -+CONFIG_LEDS_TRIGGER_GPIO=y -+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y -+ -+# -+# iptables trigger is under Netfilter config (LED target) -+# + +# +# LED Triggers @@ -2292,7 +2287,6 @@ index 0000000..22b117b +# +CONFIG_MXC_VPU=y +# CONFIG_MXC_VPU_DEBUG is not set -+# CONFIG_MX6_VPU_352M is not set + +# +# MXC Asynchronous Sample Rate Converter support @@ -2334,11 +2328,6 @@ index 0000000..22b117b +CONFIG_MXC_MIPI_CSI2=y + +# -+# MXC HDMI CEC (Consumer Electronics Control) support -+# -+# CONFIG_MXC_HDMI_CEC is not set -+ -+# +# File systems +# +CONFIG_EXT2_FS=y @@ -2533,7 +2522,7 @@ index 0000000..22b117b +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 -+CONFIG_MAGIC_SYSRQ=y ++# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y @@ -2584,44 +2573,42 @@ index 0000000..22b117b +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y -+CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y -+CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y -+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set -+CONFIG_CRYPTO_GF128MUL=y ++CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y ++# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +# CONFIG_CRYPTO_CRYPTD is not set -+CONFIG_CRYPTO_AUTHENC=y ++# CONFIG_CRYPTO_AUTHENC is not set +CONFIG_CRYPTO_TEST=m +# CONFIG_CRYPTO_CRYPTODEV is not set + +# +# Authenticated Encryption with Associated Data +# -+CONFIG_CRYPTO_CCM=y -+CONFIG_CRYPTO_GCM=y -+CONFIG_CRYPTO_SEQIV=y ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y -+CONFIG_CRYPTO_CTR=y -+CONFIG_CRYPTO_CTS=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y -+CONFIG_CRYPTO_LRW=y -+CONFIG_CRYPTO_PCBC=y -+CONFIG_CRYPTO_XTS=y ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes @@ -2634,7 +2621,7 @@ index 0000000..22b117b +# Digest +# +# CONFIG_CRYPTO_CRC32C is not set -+CONFIG_CRYPTO_GHASH=y ++# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +CONFIG_CRYPTO_MICHAEL_MIC=y @@ -2658,7 +2645,7 @@ index 0000000..22b117b +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set -+CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set @@ -2681,15 +2668,6 @@ index 0000000..22b117b +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +CONFIG_CRYPTO_HW=y -+CONFIG_CRYPTO_DEV_FSL_CAAM=y -+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 -+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y -+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD=255 -+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD=2048 -+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y -+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y -+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y -+# CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +# CONFIG_BINARY_PRINTF is not set + +# @@ -2720,13 +2698,13 @@ index 0000000..22b117b +# CONFIG_AVERAGE is not set diff --git a/arch/arm/configs/qmx6_updater_defconfig b/arch/arm/configs/qmx6_updater_defconfig new file mode 100644 -index 0000000..e4c45c7 +index 0000000..0b0c165 --- /dev/null +++ b/arch/arm/configs/qmx6_updater_defconfig -@@ -0,0 +1,2384 @@ +@@ -0,0 +1,2367 @@ +# +# Automatically generated make config: don't edit -+# Linux/arm 3.0.35 Kernel Configuration ++# Linux/arm 3.0.15 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_HAVE_PWM=y @@ -2753,7 +2731,7 @@ index 0000000..e4c45c7 +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_FIQ=y +CONFIG_VECTORS_BASE=0xffff0000 -+CONFIG_ARM_PATCH_PHYS_VIRT=y ++# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y @@ -2981,7 +2959,6 @@ index 0000000..e4c45c7 +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +CONFIG_GPIO_PCA953X=y -+# CONFIG_KEYBOARD_GPIO_POLLED is not set +CONFIG_IMX_HAVE_PLATFORM_DMA=y +CONFIG_IMX_HAVE_PLATFORM_MXC_MLB=y +CONFIG_IMX_HAVE_PLATFORM_FEC=y @@ -2990,7 +2967,6 @@ index 0000000..e4c45c7 +CONFIG_IMX_HAVE_PLATFORM_GPMI_NFC=y +CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y +CONFIG_IMX_HAVE_PLATFORM_IMX_SNVS_RTC=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_CAAM=y +CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y +CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y +CONFIG_IMX_HAVE_PLATFORM_IMX_ESAI=y @@ -3008,8 +2984,7 @@ index 0000000..e4c45c7 +CONFIG_IMX_HAVE_PLATFORM_PERFMON=y +CONFIG_IMX_HAVE_PLATFORM_LDB=y +CONFIG_IMX_HAVE_PLATFORM_IMX_PXP=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_ELCDIF=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_EPDC=y ++# CONFIG_IMX_HAVE_PLATFORM_IMX_EPDC is not set +CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF=y +CONFIG_IMX_HAVE_PLATFORM_VIV_GPU=y +CONFIG_IMX_HAVE_PLATFORM_MXC_HDMI=y @@ -3020,8 +2995,6 @@ index 0000000..e4c45c7 +CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y +CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y +CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y -+CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y + +# +# Freescale MXC Implementations @@ -3036,28 +3009,20 @@ index 0000000..e4c45c7 +CONFIG_ARCH_MX6Q=y +CONFIG_FORCE_MAX_ZONEORDER=13 +CONFIG_SOC_IMX6Q=y -+CONFIG_SOC_IMX6SL=y +# CONFIG_MACH_MX6Q_ARM2 is not set -+# CONFIG_MACH_MX6SL_ARM2 is not set +# CONFIG_MACH_MX6Q_SABRELITE is not set -+CONFIG_MACH_MX6Q_QMX6=y +# CONFIG_MACH_MX6Q_SABRESD is not set +# CONFIG_MACH_MX6Q_SABREAUTO is not set ++CONFIG_MACH_MX6Q_QMX6=y + +# +# MX6 Options: +# +# CONFIG_IMX_PCIE is not set -+CONFIG_USB_EHCI_ARC_H1=y -+CONFIG_USB_FSL_ARC_OTG=y -+# CONFIG_MX6_INTER_LDO_BYPASS is not set +CONFIG_ISP1504_MXC=y +# CONFIG_MXC_IRQ_PRIOR is not set +CONFIG_MXC_PWM=y +# CONFIG_MXC_DEBUG_BOARD is not set -+# CONFIG_MXC_REBOOT_MFGMODE is not set -+# CONFIG_MXC_REBOOT_ANDROID_CMD is not set -+CONFIG_ARCH_HAS_RNGC=y +CONFIG_ARCH_MXC_IOMUX_V3=y +CONFIG_ARCH_MXC_AUDMUX_V2=y +CONFIG_IRAM_ALLOC=y @@ -3134,6 +3099,7 @@ index 0000000..e4c45c7 +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_HAVE_ARM_SCU=y ++CONFIG_HAVE_ARM_TWD=y +# CONFIG_VMSPLIT_3G is not set +CONFIG_VMSPLIT_2G=y +# CONFIG_VMSPLIT_1G is not set @@ -3188,7 +3154,7 @@ index 0000000..e4c45c7 +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set -+CONFIG_AUTO_ZRELADDR=y ++# CONFIG_AUTO_ZRELADDR is not set + +# +# CPU Power Management @@ -3206,12 +3172,10 @@ index 0000000..e4c45c7 +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -+# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set +# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set -+# CONFIG_CPU_FREQ_GOV_INTERACTIVE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_IMX=y +# CONFIG_CPU_IDLE is not set @@ -3636,7 +3600,6 @@ index 0000000..e4c45c7 +# CONFIG_KS8851 is not set +# CONFIG_KS8851_MLL is not set +CONFIG_FEC=y -+# CONFIG_FEC_NAPI is not set +# CONFIG_FEC_1588 is not set +# CONFIG_FTMAC100 is not set +# CONFIG_NETDEV_1000 is not set @@ -3710,7 +3673,6 @@ index 0000000..e4c45c7 +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +CONFIG_TOUCHSCREEN_EGALAX=y -+# CONFIG_TOUCHSCREEN_ELAN is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set @@ -3796,7 +3758,6 @@ index 0000000..e4c45c7 +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set -+# CONFIG_HW_RANDOM_FSL_RNGC is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set @@ -4129,15 +4090,25 @@ index 0000000..e4c45c7 +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_VIVI is not set -+# CONFIG_VIDEO_MXC_CAMERA is not set ++CONFIG_VIDEO_MXC_CAMERA=m ++ ++# ++# MXC Camera/V4L2 PRP Features support ++# ++CONFIG_VIDEO_MXC_IPU_CAMERA=y ++# CONFIG_VIDEO_MXC_CSI_CAMERA is not set +# CONFIG_MXC_CAMERA_MICRON111 is not set +# CONFIG_MXC_CAMERA_OV2640 is not set -+# CONFIG_MXC_CAMERA_OV3640 is not set -+# CONFIG_MXC_CAMERA_OV5640 is not set ++CONFIG_MXC_CAMERA_OV3640=m ++CONFIG_MXC_CAMERA_OV5640=m ++# CONFIG_MXC_CAMERA_OV5640_MIPI is not set +# CONFIG_MXC_CAMERA_OV8820_MIPI is not set -+# CONFIG_MXC_CAMERA_OV5642 is not set ++CONFIG_MXC_CAMERA_OV5642=m +# CONFIG_MXC_TVIN_ADV7180 is not set -+# CONFIG_MXC_IPU_DEVICE_QUEUE_SDC is not set ++CONFIG_MXC_CAMERA_SENSOR_CLK=m ++CONFIG_MXC_IPU_PRP_VF_SDC=m ++CONFIG_MXC_IPU_PRP_ENC=m ++CONFIG_MXC_IPU_CSI_ENC=m +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +# CONFIG_VIDEO_MXC_IPUV1_WVGA_OUTPUT is not set @@ -4206,7 +4177,6 @@ index 0000000..e4c45c7 +# CONFIG_FB_MXC_TVOUT_CH7024 is not set +# CONFIG_FB_MXC_ASYNC_PANEL is not set +# CONFIG_FB_MXC_EINK_PANEL is not set -+# CONFIG_FB_MXC_SIPIX_PANEL is not set +# CONFIG_FB_MXC_ELCDIF_FB is not set +CONFIG_FB_MXC_HDMI=y + @@ -4271,9 +4241,7 @@ index 0000000..e4c45c7 +CONFIG_SND_IMX_SOC=y +CONFIG_SND_MXC_SOC_MX2=y +# CONFIG_SND_SOC_IMX_SGTL5000 is not set -+# CONFIG_SND_SOC_IMX_WM8962 is not set +CONFIG_SND_SOC_IMX_CS42888=y -+# CONFIG_SND_SOC_IMX_SI4763 is not set +# CONFIG_SND_SOC_IMX_SPDIF is not set +# CONFIG_SND_SOC_IMX_HDMI is not set +CONFIG_SND_SOC_I2C_AND_SPI=y @@ -4455,7 +4423,6 @@ index 0000000..e4c45c7 +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_ARC=y -+# CONFIG_IMX_USB_CHARGER is not set +CONFIG_USB_ARC=y +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_FUSB300 is not set @@ -4599,6 +4566,7 @@ index 0000000..e4c45c7 +# DMA Devices +# +# CONFIG_DW_DMAC is not set ++# CONFIG_MXC_PXP is not set +# CONFIG_MXC_PXP_V2 is not set +# CONFIG_TIMB_DMA is not set +CONFIG_IMX_SDMA=y @@ -4734,11 +4702,6 @@ index 0000000..e4c45c7 +# CONFIG_MXC_MIPI_CSI2 is not set + +# -+# MXC HDMI CEC (Consumer Electronics Control) support -+# -+# CONFIG_MXC_HDMI_CEC is not set -+ -+# +# File systems +# +CONFIG_EXT2_FS=y @@ -5078,8 +5041,6 @@ index 0000000..e4c45c7 +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +CONFIG_CRYPTO_HW=y -+# CONFIG_CRYPTO_DEV_FSL_CAAM is not set -+# CONFIG_CRYPTO_DEV_DCP is not set +# CONFIG_BINARY_PRINTF is not set + +# @@ -5109,10 +5070,10 @@ index 0000000..e4c45c7 +CONFIG_NLATTR=y +# CONFIG_AVERAGE is not set diff --git a/arch/arm/mach-mx6/Kconfig b/arch/arm/mach-mx6/Kconfig -index 2ffd90d..99fad3a 100644 +index df954b4..7308ad7 100644 --- a/arch/arm/mach-mx6/Kconfig +++ b/arch/arm/mach-mx6/Kconfig -@@ -179,6 +179,42 @@ config MACH_MX6Q_SABRELITE +@@ -180,6 +180,41 @@ config MACH_MX6Q_SABRELITE Include support for i.MX 6Quad SABRE Lite platform. This includes specific configurations for the board and its peripherals. @@ -5145,8 +5106,7 @@ index 2ffd90d..99fad3a 100644 + select IMX_HAVE_PLATFORM_MXC_HDMI + select IMX_HAVE_PLATFORM_IMX_ASRC + select IMX_HAVE_PLATFORM_FLEXCAN -+ select IMX_HAVE_PLATFORM_PERFMON -+ select IMX_HAVE_PLATFORM_IMX_PXP ++ select IMX_HAVE_PLATFORM_IMX_MIPI_CSI2 + select IMX_HAVE_PLATFORM_IMX_PCIE + help + Include support for Congatec i.MX 6Quad QMX6 platform. This includes specific @@ -5156,14 +5116,14 @@ index 2ffd90d..99fad3a 100644 bool "Support i.MX 6Quad SABRESD platform" select ARCH_MX6Q diff --git a/arch/arm/mach-mx6/Makefile b/arch/arm/mach-mx6/Makefile -index 5cac9bc..a2f64c3 100644 +index 8c1d754..b745797 100644 --- a/arch/arm/mach-mx6/Makefile +++ b/arch/arm/mach-mx6/Makefile @@ -1,6 +1,7 @@ # # Makefile for the linux kernel. # -+# CFLAGS_mx6q_qmx6_pmic_pfuze100.o += -DPFUZE100_FIRST_VERSION ++CFLAGS_mx6q_qmx6_pmic_pfuze100.o += -DPFUZE100_FIRST_VERSION # Object file lists. obj-y := cpu.o mm.o system.o devices.o dummy_gpio.o irq.o bus_freq.o usb_h2.o usb_h3.o\ @@ -5174,13 +5134,13 @@ index 5cac9bc..a2f64c3 100644 +obj-$(CONFIG_MACH_MX6Q_QMX6) += board-mx6q_qmx6.o mx6q_qmx6_pmic_pfuze100.o obj-$(CONFIG_MACH_MX6Q_SABRESD) += board-mx6q_sabresd.o mx6q_sabresd_pmic_pfuze100.o obj-$(CONFIG_MACH_MX6Q_SABREAUTO) += board-mx6q_sabreauto.o mx6q_sabreauto_pmic_pfuze100.o - obj-$(CONFIG_SMP) += plat_hotplug.o platsmp.o headsmp.o + obj-$(CONFIG_MACH_MX6Q_HDMIDONGLE) += board-mx6q_hdmidongle.o diff --git a/arch/arm/mach-mx6/board-mx6dl_qmx6.h b/arch/arm/mach-mx6/board-mx6dl_qmx6.h new file mode 100644 -index 0000000..883fea6 +index 0000000..b7f7e9a --- /dev/null +++ b/arch/arm/mach-mx6/board-mx6dl_qmx6.h -@@ -0,0 +1,205 @@ +@@ -0,0 +1,199 @@ +/* + * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. + * @@ -5204,7 +5164,7 @@ index 0000000..883fea6 +#include + +static iomux_v3_cfg_t mx6dl_qmx6_pads[] = { -+ /* AUDMUX */ ++ /* AUDMUX */ + MX6DL_PAD_DI0_PIN4__AUDMUX_AUD6_RXD, + MX6DL_PAD_DI0_PIN15__AUDMUX_AUD6_TXC, + MX6DL_PAD_DI0_PIN2__AUDMUX_AUD6_TXD, @@ -5216,7 +5176,7 @@ index 0000000..883fea6 + MX6DL_PAD_GPIO_2__GPIO_1_2, /* PCIE_WAKE_B */ + + /* CCM */ -+ MX6DL_PAD_GPIO_0__GPIO_1_0, /* GPIO_0/Audio Ref. CLK */ ++ MX6DL_PAD_GPIO_0__GPIO_1_0, /* GPIO_0/Audio Ref. CLK */ + + /* ECSPI1 */ + MX6DL_PAD_EIM_D17__ECSPI1_MISO, @@ -5240,7 +5200,7 @@ index 0000000..883fea6 + MX6DL_PAD_RGMII_RD2__ENET_RGMII_RD2, + MX6DL_PAD_RGMII_RD3__ENET_RGMII_RD3, + MX6DL_PAD_RGMII_RX_CTL__ENET_RGMII_RX_CTL, -+ MX6DL_PAD_ENET_TX_EN__GPIO_1_28, /* Micrel RGMII Phy Interrupt */ ++ MX6DL_PAD_ENET_TX_EN__GPIO_1_28, /* Micrel RGMII Phy Interrupt */ + MX6DL_PAD_EIM_D23__GPIO_3_23, /* RGMII reset */ + + /* GPIO1 */ @@ -5340,6 +5300,9 @@ index 0000000..883fea6 + /* WATCHDOG */ + MX6DL_PAD_KEY_COL4__GPIO_4_14, + ++ /* USB OC pin */ ++ /* MX6DL_PAD_EIM_D30__USBOH3_USBH1_OC, TODO: to be checked */ ++ + /* USDHC2 */ + MX6DL_PAD_SD2_CLK__USDHC2_CLK, + MX6DL_PAD_SD2_CMD__USDHC2_CMD, @@ -5376,22 +5339,13 @@ index 0000000..883fea6 + MX6DL_PAD_NANDF_D7__GPIO_2_7, /* SD4_WP */ +}; + -+static iomux_v3_cfg_t mx6dl_qmx6_hdmi_ddc_pads[] = { -+ MX6DL_PAD_KEY_COL3__HDMI_TX_DDC_SCL, /* HDMI DDC SCL */ -+ MX6DL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA, /* HDMI DDC SDA */ -+}; -+ -+static iomux_v3_cfg_t mx6dl_qmx6_i2c2_pads[] = { -+ MX6DL_PAD_KEY_COL3__I2C2_SCL, /* I2C2 SCL */ -+ MX6DL_PAD_KEY_ROW3__I2C2_SDA, /* I2C2 SDA */ -+}; +#endif diff --git a/arch/arm/mach-mx6/board-mx6q_qmx6.c b/arch/arm/mach-mx6/board-mx6q_qmx6.c new file mode 100644 -index 0000000..7b61ca0 +index 0000000..720ca7f --- /dev/null +++ b/arch/arm/mach-mx6/board-mx6q_qmx6.c -@@ -0,0 +1,986 @@ +@@ -0,0 +1,979 @@ +/* + * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. + * @@ -5444,7 +5398,6 @@ index 0000000..7b61ca0 +#include +#include +#include -+#include + +#include +#include @@ -5486,8 +5439,7 @@ index 0000000..7b61ca0 +#define MX6Q_QMX6_USB_OTG_PWR IMX_GPIO_NR(3, 22) +#define MX6Q_QMX6_POWER_OFF IMX_GPIO_NR(2, 3) +#define MX6Q_QMX6_PCIE_WAKE_B IMX_GPIO_NR(1, 2) -+#define MX6Q_QMX6_BLT_EN IMX_GPIO_NR(1, 9) -+#define MX6Q_QMX6_LCD_EN IMX_GPIO_NR(1, 7) ++#define MX6Q_QMX6_BLT_EN IMX_GPIO_NR(1, 9) + +#define MX6Q_QMX6_TCH_INT1 IMX_GPIO_NR(7, 11) +#define MX6Q_QMX6_CSI0_RST IMX_GPIO_NR(1, 8) @@ -5499,28 +5451,26 @@ index 0000000..7b61ca0 +extern int mx6q_qmx6_init_pfuze100(u32 int_gpio); + +static struct clk *sata_clk; -+static int enable_lcd_ldb; ++static int disable_ldb; + +extern char *gp_reg_id; -+extern char *soc_reg_id; -+extern char *pu_reg_id; -+ ++extern void mx6_cpu_regulator_init(void); + +static const struct esdhc_platform_data mx6q_qmx6_sd2_data __initconst = { + .cd_gpio = MX6Q_QMX6_SD2_CD, -+ .wp_gpio = -1, ++ + .keep_power_at_suspend = 1, + .support_8bit = 0, + .delay_line = 0, -+ .cd_type = ESDHC_CD_CONTROLLER, ++ .force_write_access = 1, +}; + +static const struct esdhc_platform_data mx6q_qmx6_sd3_data __initconst = { + .always_present = 1, ++ .cd_gpio = -1, + .keep_power_at_suspend = 1, + .support_8bit = 1, + .delay_line = 0, -+ .cd_type = ESDHC_CD_PERMANENT, +}; + +static const struct esdhc_platform_data mx6q_qmx6_sd4_data __initconst = { @@ -5529,7 +5479,6 @@ index 0000000..7b61ca0 + .keep_power_at_suspend = 1, + .support_8bit = 1, + .delay_line = 0, -+ .cd_type = ESDHC_CD_CONTROLLER, +}; + +static const struct anatop_thermal_platform_data @@ -5546,7 +5495,7 @@ index 0000000..7b61ca0 +static int mx6q_qmx6_fec_phy_init(struct phy_device *phydev) +{ + /* adjust KSZ9031 ethernet phy */ -+ ++ + phy_write(phydev, 0x0d, 0x2); + phy_write(phydev, 0x0e, 0x4); + phy_write(phydev, 0x0d, 0xc002); @@ -5590,16 +5539,16 @@ index 0000000..7b61ca0 + { + .name = "bootloader", + .offset = 0, -+ .size = 0x00100000, ++ .size = 0x00040000, + }, + { + .name = "user", + .offset = MTDPART_OFS_APPEND, -+ .size = 0x002FC000, ++ .size = 0x003BC000, + }, + { + /* this 16KB area is used for congatec manufacturing purposes */ -+ /* we strongly recommend not to modify or destroy this area */ ++ /* we strongly recommend not to modify or destroy this area */ + .name = "reserved", + .offset = MTDPART_OFS_APPEND, + .size = 0x00004000, @@ -5722,7 +5671,6 @@ index 0000000..7b61ca0 + } + gpio_direction_output(MX6Q_QMX6_USB_OTG_PWR, 0); + -+ mxc_iomux_set_gpr_register(1, 13, 1, 1); + mx6_set_otghost_vbus_func(imx6q_qmx6_usbotg_vbus); +} + @@ -5854,40 +5802,10 @@ index 0000000..7b61ca0 + + /* GPR3, bits 2-3 = HDMI_MUX_CTL */ + mxc_iomux_set_gpr_register(3, 2, 2, hdmi_mux_setting); -+ -+ /* Set HDMI event as SDMA event2 while Chip version later than TO1.2 */ -+ if (hdmi_SDMA_check()) -+ mxc_iomux_set_gpr_register(0, 0, 1, 1); -+} -+ -+/* On mx6x sabresd board i2c2 iomux with hdmi ddc, -+ * the pins default work at i2c2 function, -+ when hdcp enable, the pins should work at ddc function */ -+ -+static void hdmi_enable_ddc_pin(void) -+{ -+ if (cpu_is_mx6dl()) -+ mxc_iomux_v3_setup_multiple_pads(mx6dl_qmx6_hdmi_ddc_pads, -+ ARRAY_SIZE(mx6dl_qmx6_hdmi_ddc_pads)); -+ else -+ mxc_iomux_v3_setup_multiple_pads(mx6q_qmx6_hdmi_ddc_pads, -+ ARRAY_SIZE(mx6q_qmx6_hdmi_ddc_pads)); -+} -+ -+static void hdmi_disable_ddc_pin(void) -+{ -+ if (cpu_is_mx6dl()) -+ mxc_iomux_v3_setup_multiple_pads(mx6dl_qmx6_i2c2_pads, -+ ARRAY_SIZE(mx6dl_qmx6_i2c2_pads)); -+ else -+ mxc_iomux_v3_setup_multiple_pads(mx6q_qmx6_i2c2_pads, -+ ARRAY_SIZE(mx6q_qmx6_i2c2_pads)); +} + +static struct fsl_mxc_hdmi_platform_data hdmi_data = { + .init = hdmi_init, -+ .enable_pins = hdmi_enable_ddc_pin, -+ .disable_pins = hdmi_disable_ddc_pin, +}; + +static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = { @@ -5913,19 +5831,25 @@ index 0000000..7b61ca0 +static struct imx_ipuv3_platform_data ipu_data[] = { + { + .rev = 4, -+ .csi_clk[0] = "clko_clk", -+ .bypass_reset = false, ++ .csi_clk[0] = "clko2_clk", + }, { + .rev = 4, -+ .csi_clk[0] = "clko_clk", -+ .bypass_reset = false, ++ .csi_clk[0] = "clko2_clk", ++ }, ++}; ++ ++static struct fsl_mxc_capture_platform_data capture_data[] = { ++ { ++ .csi = 0, ++ .ipu = 0, ++ .mclk_source = 0, ++ .is_mipi = 0, + }, +}; + +static void qmx6_suspend_enter(void) +{ + /* suspend preparation */ -+ + /* disable backlight */ + gpio_set_value(MX6Q_QMX6_BLT_EN, 0); +} @@ -5933,7 +5857,6 @@ index 0000000..7b61ca0 +static void qmx6_suspend_exit(void) +{ + /* resume restore */ -+ + /* enable backlight */ + gpio_set_value(MX6Q_QMX6_BLT_EN, 1); +} @@ -5981,6 +5904,11 @@ index 0000000..7b61ca0 + .dev_name = "0-000a", +}; + ++static struct regulator_consumer_supply sgtl5000_qmx6_consumer_vddd = { ++ .supply = "VDDD", ++ .dev_name = "0-000a", ++}; ++ +static struct regulator_init_data sgtl5000_qmx6_vdda_reg_initdata = { + .num_consumer_supplies = 1, + .consumer_supplies = &sgtl5000_qmx6_consumer_vdda, @@ -5991,6 +5919,11 @@ index 0000000..7b61ca0 + .consumer_supplies = &sgtl5000_qmx6_consumer_vddio, +}; + ++static struct regulator_init_data sgtl5000_qmx6_vddd_reg_initdata = { ++ .num_consumer_supplies = 1, ++ .consumer_supplies = &sgtl5000_qmx6_consumer_vddd, ++}; ++ +static struct fixed_voltage_config sgtl5000_qmx6_vdda_reg_config = { + .supply_name = "VDDA", + .microvolts = 2500000, @@ -6005,6 +5938,13 @@ index 0000000..7b61ca0 + .init_data = &sgtl5000_qmx6_vddio_reg_initdata, +}; + ++static struct fixed_voltage_config sgtl5000_qmx6_vddd_reg_config = { ++ .supply_name = "VDDD", ++ .microvolts = 0, ++ .gpio = -1, ++ .init_data = &sgtl5000_qmx6_vddd_reg_initdata, ++}; ++ +static struct platform_device sgtl5000_qmx6_vdda_reg_devices = { + .name = "reg-fixed-voltage", + .id = 0, @@ -6021,9 +5961,17 @@ index 0000000..7b61ca0 + }, +}; + ++static struct platform_device sgtl5000_qmx6_vddd_reg_devices = { ++ .name = "reg-fixed-voltage", ++ .id = 2, ++ .dev = { ++ .platform_data = &sgtl5000_qmx6_vddd_reg_config, ++ }, ++}; ++ +#endif /* CONFIG_SND_SOC_SGTL5000 */ + -+static int __init imx6q_init_audio(void) ++static int imx6q_init_audio(void) +{ + mxc_register_device(&mx6_qmx6_audio_device, + &mx6_qmx6_audio_data); @@ -6031,14 +5979,28 @@ index 0000000..7b61ca0 +#ifdef CONFIG_SND_SOC_SGTL5000 + platform_device_register(&sgtl5000_qmx6_vdda_reg_devices); + platform_device_register(&sgtl5000_qmx6_vddio_reg_devices); ++ platform_device_register(&sgtl5000_qmx6_vddd_reg_devices); + mx6_qmx6_sgtl5000_init(); +#endif + return 0; + +} + ++static void pcie_3v3_reset(void) ++{ ++ /* reset miniPCIe */ ++ gpio_request(MX6Q_QMX6_PCIE_RST_B, "pcie_reset"); ++ gpio_direction_output(MX6Q_QMX6_PCIE_RST_B, 1); ++ ++ gpio_set_value(MX6Q_QMX6_PCIE_RST_B, 0); ++ /* The PCI Express Mini CEM specification states that PREST# is ++ deasserted minimum 1ms after 3.3vVaux has been applied and stable*/ ++ msleep(1); ++ gpio_set_value(MX6Q_QMX6_PCIE_RST_B, 1); ++} ++ +#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) -+#define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake, debounce) \ ++#define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ +{ \ + .gpio = gpio_num, \ + .type = EV_KEY, \ @@ -6046,16 +6008,15 @@ index 0000000..7b61ca0 + .active_low = act_low, \ + .desc = "btn " descr, \ + .wakeup = wake, \ -+ .debounce_interval = debounce, \ +} + +static struct gpio_keys_button imx6q_buttons[] = { -+ GPIO_BUTTON(MX6Q_QMX6_POWER_OFF, KEY_POWER, 1, "key-power", 1, 1), -+ GPIO_BUTTON(MX6Q_QMX6_MENU_KEY, KEY_MENU, 1, "key-memu", 0, 1), -+ GPIO_BUTTON(MX6Q_QMX6_HOME_KEY, KEY_HOME, 1, "key-home", 0, 1), -+ GPIO_BUTTON(MX6Q_QMX6_BACK_KEY, KEY_BACK, 1, "key-back", 0, 1), -+ GPIO_BUTTON(MX6Q_QMX6_VOLUME_UP_KEY, KEY_VOLUMEUP, 1, "volume-up", 0, 1), -+ GPIO_BUTTON(MX6Q_QMX6_VOLUME_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0, 1), ++ GPIO_BUTTON(MX6Q_QMX6_POWER_OFF, KEY_POWER, 1, "key-power", 1), ++ GPIO_BUTTON(MX6Q_QMX6_MENU_KEY, KEY_MENU, 1, "key-memu", 0), ++ GPIO_BUTTON(MX6Q_QMX6_HOME_KEY, KEY_HOME, 1, "key-home", 0), ++ GPIO_BUTTON(MX6Q_QMX6_BACK_KEY, KEY_BACK, 1, "key-back", 0), ++ GPIO_BUTTON(MX6Q_QMX6_VOLUME_UP_KEY, KEY_VOLUMEUP, 1, "volume-up", 0), ++ GPIO_BUTTON(MX6Q_QMX6_VOLUME_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0), +}; + +static struct gpio_keys_platform_data imx6q_button_data = { @@ -6088,8 +6049,7 @@ index 0000000..7b61ca0 +}; + +static struct mxc_dvfs_platform_data qmx6_dvfscore_data = { -+ .reg_id = "VDDCORE", -+ .soc_id = "VDDSOC", ++ .reg_id = "cpu_vddgp", + .clk1_id = "cpu_clk", + .clk2_id = "gpc_dvfs_clk", + .gpc_cntr_offset = MXC_GPC_CNTR_OFFSET, @@ -6148,6 +6108,15 @@ index 0000000..7b61ca0 + writel(value | 0x60, mx6_snvs_base + SNVS_LPCR); +} + ++static int __init early_disable_ldb(char *p) ++{ ++ /*mipi dsi need pll3_pfd_540M as 540MHz, ldb will change to 454Mhz*/ ++ disable_ldb = 1; ++ return 0; ++} ++ ++early_param("disable_ldb", early_disable_ldb); ++ +static const struct imx_pcie_platform_data mx6_qmx6_pcie_data __initconst = { + .pcie_pwr_en = -1, + .pcie_rst = MX6Q_QMX6_PCIE_RST_B, @@ -6155,14 +6124,7 @@ index 0000000..7b61ca0 + .pcie_dis = -1, +}; + -+static int __init early_enable_lcd_ldb(char *p) -+{ -+ enable_lcd_ldb = 1; -+ return 0; -+} -+early_param("enable_lcd_ldb", early_enable_lcd_ldb); -+ -+/*! ++/* + * Board specific initialization. + */ +static void __init mx6_qmx6_board_init(void) @@ -6182,8 +6144,6 @@ index 0000000..7b61ca0 + } + + gp_reg_id = qmx6_dvfscore_data.reg_id; -+ soc_reg_id = qmx6_dvfscore_data.soc_id; -+ pu_reg_id = qmx6_dvfscore_data.pu_id; + mx6q_qmx6_init_uart(); + + /* @@ -6199,27 +6159,24 @@ index 0000000..7b61ca0 + ldb_data.sec_ipu_id = 0; + ldb_data.sec_disp_id = 1; + hdmi_core_data.disp_id = 1; -+ if (enable_lcd_ldb) { -+ ldb_data.disp_id = 1; -+ ldb_data.mode = LDB_SIN1; -+ } + } + imx6q_add_mxc_hdmi_core(&hdmi_core_data); + + imx6q_add_ipuv3(0, &ipu_data[0]); + if (cpu_is_mx6q()) { + imx6q_add_ipuv3(1, &ipu_data[1]); -+ for (i = 0; i < 4 && i < ARRAY_SIZE(qmx6_fb_data); i++) ++ for (i = 0; i < ARRAY_SIZE(qmx6_fb_data); i++) + imx6q_add_ipuv3fb(i, &qmx6_fb_data[i]); + } else -+ for (i = 0; i < 2 && i < ARRAY_SIZE(qmx6_fb_data); i++) ++ for (i = 0; i < (ARRAY_SIZE(qmx6_fb_data) + 1) / 2; i++) + imx6q_add_ipuv3fb(i, &qmx6_fb_data[i]); + + imx6q_add_vdoa(); + imx6q_add_lcdif(&lcdif_data); -+ imx6q_add_ldb(&ldb_data); ++ if (!disable_ldb) ++ imx6q_add_ldb(&ldb_data); + imx6q_add_v4l2_output(0); -+ ++ imx6q_add_v4l2_capture(0, &capture_data[0]); + imx6q_add_imx_snvs_rtc(); + + imx6q_add_imx_i2c(0, &mx6q_qmx6_i2c_data); @@ -6233,12 +6190,13 @@ index 0000000..7b61ca0 + ARRAY_SIZE(mxc_i2c2_board_info)); + ret = gpio_request(MX6Q_QMX6_PFUZE_INT, "pFUZE-int"); + if (ret) { -+ printk(KERN_ERR "request pFUZE-int error!!\n"); ++ printk(KERN_ERR"request pFUZE-int error!!\n"); + return; + } else { + gpio_direction_input(MX6Q_QMX6_PFUZE_INT); + mx6q_qmx6_init_pfuze100(MX6Q_QMX6_PFUZE_INT); + } ++ + /* SPI */ + imx6q_add_ecspi(0, &mx6q_qmx6_spi_data); + spi_device_init(); @@ -6248,13 +6206,13 @@ index 0000000..7b61ca0 + imx6q_add_anatop_thermal_imx(1, &mx6q_qmx6_anatop_thermal_data); + imx6_init_fec(fec_data); + imx6q_add_pm_imx(0, &mx6q_qmx6_pm_data); -+ + /* Move sd3 to first because sd3 connect to emmc. + Mfgtools want emmc is mmcblk0 and other sd card is mmcblk1. + */ + imx6q_add_sdhci_usdhc_imx(1, &mx6q_qmx6_sd2_data); + imx6q_add_sdhci_usdhc_imx(2, &mx6q_qmx6_sd3_data); -+ imx6q_add_sdhci_usdhc_imx(3, &mx6q_qmx6_sd4_data); ++ imx6q_add_sdhci_usdhc_imx(3, &mx6q_qmx6_sd4_data); ++ + imx_add_viv_gpu(&imx6_gpu_data, &imx6q_gpu_pdata); + imx6q_qmx6_init_usb(); + /* SATA is not supported by MX6DL/Solo */ @@ -6263,6 +6221,7 @@ index 0000000..7b61ca0 + imx6q_add_vpu(); + imx6q_init_audio(); + platform_device_register(&qmx6_vmmc_reg_devices); ++ + imx_asrc_data.asrc_core_clk = clk_get(NULL, "asrc_clk"); + imx_asrc_data.asrc_audio_clk = clk_get(NULL, "asrc_serial_clk"); + imx6q_add_asrc(&imx_asrc_data); @@ -6275,11 +6234,6 @@ index 0000000..7b61ca0 + imx6q_add_mxc_pwm(3); + imx6q_add_mxc_pwm_backlight(3, &mx6_qmx6_pwm_backlight_data); + -+ /* switch on lcd vcc */ -+ gpio_request(MX6Q_QMX6_LCD_EN, "lcden"); -+ gpio_direction_output(MX6Q_QMX6_LCD_EN, 1); -+ gpio_set_value(MX6Q_QMX6_LCD_EN, 1); -+ + /* switch on backlight */ + gpio_request(MX6Q_QMX6_BLT_EN, "backlight"); + gpio_direction_output(MX6Q_QMX6_BLT_EN, 1); @@ -6291,25 +6245,12 @@ index 0000000..7b61ca0 + imx6q_add_dma(); + + imx6q_add_dvfs_core(&qmx6_dvfscore_data); -+ imx6q_add_device_buttons(); ++ ++ imx6q_add_device_buttons(); + + imx6q_add_hdmi_soc(); + imx6q_add_hdmi_soc_dai(); + -+ if (cpu_is_mx6dl()) { -+ imx6dl_add_imx_pxp(); -+ imx6dl_add_imx_pxp_client(); -+ } -+ -+ /* -+ ret = gpio_request_array(mx6q_qmx6_flexcan_gpios, -+ ARRAY_SIZE(mx6q_qmx6_flexcan_gpios)); -+ if (ret) -+ pr_err("failed to request flexcan1-gpios: %d\n", ret); -+ else -+ imx6q_add_flexcan0(&mx6q_qmx6_flexcan0_pdata); -+ */ -+ + clko2 = clk_get(NULL, "clko2_clk"); + if (IS_ERR(clko2)) + pr_err("can't get CLKO2 clock.\n"); @@ -6327,10 +6268,6 @@ index 0000000..7b61ca0 + imx6q_add_busfreq(); + + imx6q_add_pcie(&mx6_qmx6_pcie_data); -+ imx6_add_armpmu(); -+ imx6q_add_perfmon(0); -+ imx6q_add_perfmon(1); -+ imx6q_add_perfmon(2); +} + +extern void __iomem *twd_base; @@ -6353,16 +6290,26 @@ index 0000000..7b61ca0 + +static void __init mx6q_qmx6_reserve(void) +{ -+#if defined(CONFIG_MXC_GPU_VIV) || defined(CONFIG_MXC_GPU_VIV_MODULE) + phys_addr_t phys; ++ int i; + + if (imx6q_gpu_pdata.reserved_mem_size) { + phys = memblock_alloc_base(imx6q_gpu_pdata.reserved_mem_size, + SZ_4K, SZ_1G); ++ memblock_free(phys, imx6q_gpu_pdata.reserved_mem_size); + memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size); + imx6q_gpu_pdata.reserved_mem_base = phys; + } -+#endif ++ ++ for (i = 0; i < ARRAY_SIZE(qmx6_fb_data); i++) ++ if (qmx6_fb_data[i].res_size[0]) { ++ /* reserve for background buffer */ ++ phys = memblock_alloc(qmx6_fb_data[i].res_size[0], ++ SZ_4K); ++ memblock_free(phys, qmx6_fb_data[i].res_size[0]); ++ memblock_remove(phys, qmx6_fb_data[i].res_size[0]); ++ qmx6_fb_data[i].res_base[0] = phys; ++ } +} + +/* @@ -6380,10 +6327,10 @@ index 0000000..7b61ca0 +MACHINE_END diff --git a/arch/arm/mach-mx6/board-mx6q_qmx6.h b/arch/arm/mach-mx6/board-mx6q_qmx6.h new file mode 100644 -index 0000000..27436e9 +index 0000000..48829a3 --- /dev/null +++ b/arch/arm/mach-mx6/board-mx6q_qmx6.h -@@ -0,0 +1,205 @@ +@@ -0,0 +1,199 @@ +/* + * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. + * @@ -6407,7 +6354,7 @@ index 0000000..27436e9 +#include + +static iomux_v3_cfg_t mx6q_qmx6_pads[] = { -+ /* AUDMUX */ ++ /* AUDMUX */ + MX6Q_PAD_DI0_PIN4__AUDMUX_AUD6_RXD, + MX6Q_PAD_DI0_PIN15__AUDMUX_AUD6_TXC, + MX6Q_PAD_DI0_PIN2__AUDMUX_AUD6_TXD, @@ -6419,7 +6366,7 @@ index 0000000..27436e9 + MX6Q_PAD_GPIO_2__GPIO_1_2, /* PCIE_WAKE_B */ + + /* CCM */ -+ MX6Q_PAD_GPIO_0__GPIO_1_0, /* GPIO_0/Audio Ref. CLK */ ++ MX6Q_PAD_GPIO_0__GPIO_1_0, /* GPIO_0/Audio Ref. CLK */ + + /* ECSPI1 */ + MX6Q_PAD_EIM_D17__ECSPI1_MISO, @@ -6543,6 +6490,9 @@ index 0000000..27436e9 + /* WATCHDOG */ + MX6Q_PAD_KEY_COL4__GPIO_4_14, + ++ /* USB OC pin */ ++ /* MX6Q_PAD_EIM_D30__USBOH3_USBH1_OC, TODO: to be checked */ ++ + /* USDHC2 */ + MX6Q_PAD_SD2_CLK__USDHC2_CLK, + MX6Q_PAD_SD2_CMD__USDHC2_CMD, @@ -6579,22 +6529,13 @@ index 0000000..27436e9 + MX6Q_PAD_NANDF_D7__GPIO_2_7, /* SD4_WP */ +}; + -+static iomux_v3_cfg_t mx6q_qmx6_hdmi_ddc_pads[] = { -+ MX6Q_PAD_KEY_COL3__HDMI_TX_DDC_SCL, /* HDMI DDC SCL */ -+ MX6Q_PAD_KEY_ROW3__HDMI_TX_DDC_SDA, /* HDMI DDC SDA */ -+}; -+ -+static iomux_v3_cfg_t mx6q_qmx6_i2c2_pads[] = { -+ MX6Q_PAD_KEY_COL3__I2C2_SCL, /* I2C2 SCL */ -+ MX6Q_PAD_KEY_ROW3__I2C2_SDA, /* I2C2 SDA */ -+}; +#endif diff --git a/arch/arm/mach-mx6/mx6q_qmx6_pmic_pfuze100.c b/arch/arm/mach-mx6/mx6q_qmx6_pmic_pfuze100.c new file mode 100644 -index 0000000..7dae799 +index 0000000..1743ff8 --- /dev/null +++ b/arch/arm/mach-mx6/mx6q_qmx6_pmic_pfuze100.c -@@ -0,0 +1,529 @@ +@@ -0,0 +1,422 @@ +/* + * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. + * @@ -6621,12 +6562,7 @@ index 0000000..7dae799 +#include +#include +#include -+#include +#include -+#include -+#include "crm_regs.h" -+#include "regs-anadig.h" -+#include "cpu_op-mx6.h" + +/* + * Convenience conversion. @@ -6639,34 +6575,33 @@ index 0000000..7dae799 + +#define PFUZE100_I2C_DEVICE_NAME "pfuze100" +/* 7-bit I2C bus slave address */ -+#define PFUZE100_I2C_ADDR (0x08) -+#define PFUZE100_DEVICEID (0x0) -+#define PFUZE100_REVID (0x3) -+#define PFUZE100_SW1AMODE (0x23) -+#define PFUZE100_SW1AVOL 32 -+#define PFUZE100_SW1AVOL_VSEL_M (0x3f<<0) -+#define PFUZE100_SW1CVOL 46 -+#define PFUZE100_SW1CVOL_VSEL_M (0x3f<<0) -+#define PFUZE100_SW1ACON 36 -+#define PFUZE100_SW1ACON_SPEED_VAL (0x1<<6) /*default */ -+#define PFUZE100_SW1ACON_SPEED_M (0x3<<6) -+#define PFUZE100_SW1CCON 49 -+#define PFUZE100_SW1CCON_SPEED_VAL (0x1<<6) /*default */ -+#define PFUZE100_SW1CCON_SPEED_M (0x3<<6) ++#define PFUZE100_I2C_ADDR (0x08) ++ /*SWBST*/ ++#define PFUZE100_SW1ASTANDBY 33 ++#define PFUZE100_SW1ASTANDBY_STBY_VAL (0x18) ++#define PFUZE100_SW1ASTANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SW1BSTANDBY 40 ++#define PFUZE100_SW1BSTANDBY_STBY_VAL (0x18) ++#define PFUZE100_SW1BSTANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SW1CSTANDBY 47 ++#define PFUZE100_SW1CSTANDBY_STBY_VAL (0x18) ++#define PFUZE100_SW1CSTANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SW2STANDBY 54 ++#define PFUZE100_SW2STANDBY_STBY_VAL 0x0 ++#define PFUZE100_SW2STANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SW3ASTANDBY 61 ++#define PFUZE100_SW3ASTANDBY_STBY_VAL 0x0 ++#define PFUZE100_SW3ASTANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SW3BSTANDBY 68 ++#define PFUZE100_SW3BSTANDBY_STBY_VAL 0x0 ++#define PFUZE100_SW3BSTANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SW4STANDBY 75 ++#define PFUZE100_SW4STANDBY_STBY_VAL 0 ++#define PFUZE100_SW4STANDBY_STBY_M (0x3f<<0) ++#define PFUZE100_SWBSTCON1 102 ++#define PFUZE100_SWBSTCON1_SWBSTMOD_VAL (0x1<<2) ++#define PFUZE100_SWBSTCON1_SWBSTMOD_M (0x3<<2) + -+extern u32 arm_max_freq; -+extern u32 enable_ldo_mode; -+ -+static struct regulator_consumer_supply sw1_consumers[] = { -+ { -+ .supply = "VDDCORE", -+ } -+}; -+static struct regulator_consumer_supply sw1c_consumers[] = { -+ { -+ .supply = "VDDSOC", -+ }, -+}; + +static struct regulator_consumer_supply sw2_consumers[] = { + { @@ -6675,22 +6610,22 @@ index 0000000..7dae799 + } +}; +static struct regulator_consumer_supply sw4_consumers[] = { -+ { ++ { + .supply = "AUD_1V8", + } +}; +static struct regulator_consumer_supply swbst_consumers[] = { -+ { ++ { + .supply = "SWBST_5V", + } +}; +static struct regulator_consumer_supply vgen1_consumers[] = { -+ { ++ { + .supply = "VGEN1_1V5", + } +}; +static struct regulator_consumer_supply vgen2_consumers[] = { -+ { ++ { + .supply = "VGEN2_1V5", + } +}; @@ -6717,12 +6652,12 @@ index 0000000..7dae799 + } +}; +static struct regulator_consumer_supply vgen5_consumers[] = { -+ { ++ { + .supply = "VGEN5_2V8", + } +}; +static struct regulator_consumer_supply vgen6_consumers[] = { -+ { ++ { + .supply = "VGEN6_3V3", + } +}; @@ -6741,16 +6676,7 @@ index 0000000..7dae799 + .valid_modes_mask = 0, + .boot_on = 1, + .always_on = 1, -+ .initial_state = PM_SUSPEND_MEM, -+ .state_mem = { -+ .uV = 975000,/*0.9V+6%*/ -+ .mode = REGULATOR_MODE_NORMAL, -+ .enabled = 1, + }, -+ }, -+ -+ .num_consumer_supplies = ARRAY_SIZE(sw1_consumers), -+ .consumer_supplies = sw1_consumers, +}; + +static struct regulator_init_data sw1b_init = { @@ -6774,15 +6700,7 @@ index 0000000..7dae799 + .valid_modes_mask = 0, + .always_on = 1, + .boot_on = 1, -+ .initial_state = PM_SUSPEND_MEM, -+ .state_mem = { -+ .uV = 975000,/*0.9V+6%*/ -+ .mode = REGULATOR_MODE_NORMAL, -+ .enabled = 1, + }, -+ }, -+ .num_consumer_supplies = ARRAY_SIZE(sw1c_consumers), -+ .consumer_supplies = sw1c_consumers, +}; + +static struct regulator_init_data sw2_init = { @@ -6982,106 +6900,22 @@ index 0000000..7dae799 + +static int pfuze100_init(struct mc_pfuze *pfuze) +{ -+ int ret, i; -+ unsigned char value; -+ /*use default mode(ldo bypass) if no param from cmdline*/ -+ if (enable_ldo_mode == LDO_MODE_DEFAULT) -+ enable_ldo_mode = LDO_MODE_BYPASSED; -+ /*read Device ID*/ -+ ret = pfuze_reg_read(pfuze, PFUZE100_DEVICEID, &value); ++ int ret; ++ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1ASTANDBY, ++ PFUZE100_SW1ASTANDBY_STBY_M, ++ PFUZE100_SW1ASTANDBY_STBY_VAL); + if (ret) + goto err; -+ if (value != 0x10) { -+ printk(KERN_ERR "wrong device id:%x!\n", value); -+ goto err; -+ } -+ -+ /*read Revision ID*/ -+ ret = pfuze_reg_read(pfuze, PFUZE100_REVID, &value); ++ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1BSTANDBY, ++ PFUZE100_SW1BSTANDBY_STBY_M, ++ PFUZE100_SW1BSTANDBY_STBY_VAL); ++ if (ret) ++ goto err; ++ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CSTANDBY, ++ PFUZE100_SW1CSTANDBY_STBY_M, ++ PFUZE100_SW1CSTANDBY_STBY_VAL); + if (ret) + goto err; -+ if (value == 0x10) { -+ printk(KERN_WARNING "PF100 1.0 chip found!\n"); -+ /* workaround ER1 of pfuze1.0: set all buck regulators in PWM mode -+ * except SW1C(APS) in normal and PFM mode in standby. -+ */ -+ for (i = 0; i < 7; i++) { -+ if (i == 2)/*SW1C*/ -+ value = 0xc;/*normal:APS mode;standby:PFM mode*/ -+ else -+ value = 0xd;/*normal:PWM mode;standby:PFM mode*/ -+ ret = pfuze_reg_write(pfuze, -+ PFUZE100_SW1AMODE + (i * 7), -+ value); -+ if (ret) -+ goto err; -+ } -+ -+ } else { -+ /*set all switches APS in normal and PFM mode in standby*/ -+ for (i = 0; i < 7; i++) { -+ value = 0xc; -+ ret = pfuze_reg_write(pfuze, -+ PFUZE100_SW1AMODE + (i * 7), -+ value); -+ if (ret) -+ goto err; -+ } -+ -+ } -+ /*use ldo active mode if use 1.2GHz,otherwise use ldo bypass mode*/ -+ if (arm_max_freq == CPU_AT_1_2GHz) { -+ /*VDDARM_IN 1.425*/ -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1AVOL, -+ PFUZE100_SW1AVOL_VSEL_M, -+ 0x2d); -+ if (ret) -+ goto err; -+ /*VDDSOC_IN 1.425V*/ -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CVOL, -+ PFUZE100_SW1CVOL_VSEL_M, -+ 0x2d); -+ if (ret) -+ goto err; -+ enable_ldo_mode = LDO_MODE_ENABLED; -+ } else if (enable_ldo_mode == LDO_MODE_BYPASSED) { -+ /*decrease VDDARM_IN/VDDSOC_IN,since we will use ldo bypass mode*/ -+ /*VDDARM_IN 1.3V*/ -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1AVOL, -+ PFUZE100_SW1AVOL_VSEL_M, -+ 0x28); -+ if (ret) -+ goto err; -+ /*VDDSOC_IN 1.3V*/ -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CVOL, -+ PFUZE100_SW1CVOL_VSEL_M, -+ 0x28); -+ if (ret) -+ goto err; -+ /*set SW1AB/1C DVSPEED as 25mV step each 4us,quick than 16us before.*/ -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1ACON, -+ PFUZE100_SW1ACON_SPEED_M, -+ PFUZE100_SW1ACON_SPEED_VAL); -+ if (ret) -+ goto err; -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CCON, -+ PFUZE100_SW1CCON_SPEED_M, -+ PFUZE100_SW1CCON_SPEED_VAL); -+ if (ret) -+ goto err; -+ } else if (enable_ldo_mode != LDO_MODE_BYPASSED) { -+ /*Increase VDDARM_IN/VDDSOC_IN to 1.375V in ldo active mode*/ -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1AVOL, -+ PFUZE100_SW1AVOL_VSEL_M, -+ 0x2b); -+ if (ret) -+ goto err; -+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CVOL, -+ PFUZE100_SW1CVOL_VSEL_M, -+ 0x2b); -+ if (ret) -+ goto err; -+ } + return 0; +err: + printk(KERN_ERR "pfuze100 init error!\n"); @@ -7124,22 +6958,128 @@ index 0000000..7dae799 + pfuze100_i2c_device.irq = gpio_to_irq(int_gpio); /*update INT gpio */ + return i2c_register_board_info(1, &pfuze100_i2c_device, 1); +} +diff --git a/arch/arm/plat-mxc/include/mach/esdhc.h b/arch/arm/plat-mxc/include/mach/esdhc.h +index bb15db1..dc5267d 100644 +--- a/arch/arm/plat-mxc/include/mach/esdhc.h ++++ b/arch/arm/plat-mxc/include/mach/esdhc.h +@@ -36,5 +36,6 @@ struct esdhc_platform_data { + unsigned int keep_power_at_suspend; + unsigned int delay_line; + int (*platform_pad_change)(unsigned int index, int clock); ++ unsigned int force_write_access; + }; + #endif /* __ASM_ARCH_IMX_ESDHC_H */ diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types -index 88210d9..9e45a49 100644 +index f6b5c0e..0b2d992 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types -@@ -1118,5 +1118,6 @@ mx6q_sabrelite MACH_MX6Q_SABRELITE MX6Q_SABRELITE 3769 +@@ -1118,6 +1118,7 @@ mx6q_sabrelite MACH_MX6Q_SABRELITE MX6Q_SABRELITE 3769 mx6q_sabresd MACH_MX6Q_SABRESD MX6Q_SABRESD 3980 mx6q_arm2 MACH_MX6Q_ARM2 MX6Q_ARM2 3837 mx6sl_arm2 MACH_MX6SL_ARM2 MX6SL_ARM2 4091 -+mx6q_qmx6 MACH_MX6Q_QMX6 MX6Q_QMX6 4122 ++mx6q_qmx6 MACH_MX6Q_QMX6 MX6Q_QMX6 4122 + mx6q_hdmidongle MACH_MX6Q_HDMIDONGLE MX6Q_HDMIDONGLE 4284 mx6sl_evk MACH_MX6SL_EVK MX6SL_EVK 4307 +diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c +index 35fd825..44483dd 100644 +--- a/drivers/mmc/host/sdhci-esdhc-imx.c ++++ b/drivers/mmc/host/sdhci-esdhc-imx.c +@@ -563,7 +563,7 @@ static void esdhc_writew_le(struct sdhci_host *host, u16 val, int reg) + case SDHCI_COMMAND: + if ((host->cmd->opcode == MMC_STOP_TRANSMISSION || + host->cmd->opcode == MMC_SET_BLOCK_COUNT) && +- (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) ++ (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) + val |= SDHCI_CMD_ABORTCMD; + + writel(0x08800880, host->ioaddr + SDHCI_CAPABILITIES_1); +@@ -719,6 +719,9 @@ static unsigned int esdhc_pltfm_get_ro(struct sdhci_host *host) + { + struct esdhc_platform_data *boarddata = host->mmc->parent->platform_data; + ++ if (boarddata->force_write_access) ++ return 0; ++ + if (boarddata && gpio_is_valid(boarddata->wp_gpio)) + return gpio_get_value(boarddata->wp_gpio); + else diff --git a/drivers/net/fec.c b/drivers/net/fec.c -index 4b5818e..65d1f70 100755 +index fc65bdc..33a0bd5 100755 --- a/drivers/net/fec.c +++ b/drivers/net/fec.c -@@ -1070,6 +1070,7 @@ static int fec_enet_mii_init(struct platform_device *pdev) +@@ -105,10 +105,10 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address"); + #define FEC_FLASHMAC 0xf0006000 + #elif defined(CONFIG_CANCam) + #define FEC_FLASHMAC 0xf0020000 +-#elif defined (CONFIG_M5272C3) ++#elif defined(CONFIG_M5272C3) + #define FEC_FLASHMAC (0xffe04000 + 4) + #elif defined(CONFIG_MOD5272) +-#define FEC_FLASHMAC 0xffc0406b ++#define FEC_FLASHMAC 0xffc0406b + #else + #define FEC_FLASHMAC 0 + #endif +@@ -174,8 +174,8 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address"); + * account when setting it. + */ + #if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) || \ +- defined(CONFIG_M520x) || defined(CONFIG_M532x) || \ +- defined(CONFIG_ARCH_MXC) || defined(CONFIG_SOC_IMX28) ++ defined(CONFIG_M520x) || defined(CONFIG_M532x) || \ ++ defined(CONFIG_ARCH_MXC) || defined(CONFIG_SOC_IMX28) + #define OPT_FRAME_SIZE (PKT_MAXBUF_SIZE << 16) + #else + #define OPT_FRAME_SIZE 0 +@@ -199,8 +199,8 @@ struct fec_enet_private { + + /* The saved address of a sent-in-place packet/buffer, for skfree(). */ + unsigned char *tx_bounce[TX_RING_SIZE]; +- struct sk_buff* tx_skbuff[TX_RING_SIZE]; +- struct sk_buff* rx_skbuff[RX_RING_SIZE]; ++ struct sk_buff *tx_skbuff[TX_RING_SIZE]; ++ struct sk_buff *rx_skbuff[RX_RING_SIZE]; + ushort skb_cur; + ushort skb_dirty; + +@@ -249,7 +249,7 @@ struct fec_enet_private { + #define FEC_NAPI_ENABLE FALSE + #endif + +-static irqreturn_t fec_enet_interrupt(int irq, void * dev_id); ++static irqreturn_t fec_enet_interrupt(int irq, void *dev_id); + static void fec_enet_tx(struct net_device *dev); + static int fec_rx_poll(struct napi_struct *napi, int budget); + static void fec_enet_rx(struct net_device *dev); +@@ -517,7 +517,7 @@ fec_enet_tx(struct net_device *ndev) + } + + if (status & BD_ENET_TX_READY) +- printk("HEY! Enet xmit interrupt and TX_READY.\n"); ++ printk(KERN_INFO "HEY! Enet xmit interrupt and TX_READY.\n"); + + /* Deferred means some collisions occurred during transmit, + * but we eventually sent the packet OK. +@@ -767,7 +767,7 @@ fec_enet_rx(struct net_device *ndev) + ndev->stats.rx_packets++; + pkt_len = bdp->cbd_datlen; + ndev->stats.rx_bytes += pkt_len; +- data = (__u8*)__va(bdp->cbd_bufaddr); ++ data = (__u8 *)__va(bdp->cbd_bufaddr); + + if (bdp->cbd_bufaddr) + dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, +@@ -926,7 +926,7 @@ static void __inline__ fec_get_mac(struct net_device *ndev) + + /* Adjust MAC if using macaddr */ + if (iap == macaddr) +- ndev->dev_addr[ETH_ALEN-1] = macaddr[ETH_ALEN-1] + fep->pdev->id; ++ ndev->dev_addr[ETH_ALEN-1] = macaddr[ETH_ALEN-1] + fep->pdev->id; + } + + /* ------------------------------------------------------------------------- */ +@@ -1111,6 +1111,7 @@ static int fec_enet_mii_init(struct platform_device *pdev) const struct platform_device_id *id_entry = platform_get_device_id(fep->pdev); int err = -ENXIO, i; @@ -7147,21 +7087,30 @@ index 4b5818e..65d1f70 100755 /* * The dual fec interfaces are not equivalent with enet-mac. -@@ -1098,8 +1099,10 @@ static int fec_enet_mii_init(struct platform_device *pdev) +@@ -1139,8 +1140,10 @@ static int fec_enet_mii_init(struct platform_device *pdev) /* * Set MII speed to 2.5 MHz (= clk_get_rate() / 2 * phy_speed) */ - fep->phy_speed = DIV_ROUND_UP(clk_get_rate(fep->clk), - (FEC_ENET_MII_CLK << 2)) << 1; + -+ // sml 2012-11-29: MII Speed derived from 66MHz ipg-clk ++ /* sml 2012-11-29: MII Speed derived from 66MHz ipg-clk */ + bus_clk = clk_get(NULL, "ipg_clk"); -+ fep->phy_speed = (DIV_ROUND_UP(clk_get_rate(bus_clk),FEC_ENET_MII_CLK))-1; ++ fep->phy_speed = (DIV_ROUND_UP(clk_get_rate(bus_clk), FEC_ENET_MII_CLK)) - 1; /* set hold time to 2 internal clock cycle */ if (cpu_is_mx6q() || cpu_is_mx6dl()) +@@ -1923,7 +1926,7 @@ fec_probe(struct platform_device *pdev) + + /* Carrier starts down, phylib will bring it up */ + netif_carrier_off(ndev); +- clk_disable(fep->clk); ++ clk_unprepare(fep->clk); + + INIT_DELAYED_WORK(&fep->fixup_trigger_tx, fixup_trigger_tx_func); + diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c -index 80747d2..cd690e5 100644 +index 80747d2..f158bc6 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -187,6 +187,21 @@ static struct phy_driver ksz9021_driver = { @@ -7186,7 +7135,7 @@ index 80747d2..cd690e5 100644 static int __init ksphy_init(void) { int ret; -@@ -209,8 +224,15 @@ static int __init ksphy_init(void) +@@ -209,8 +224,14 @@ static int __init ksphy_init(void) if (ret) goto err5; @@ -7194,7 +7143,6 @@ index 80747d2..cd690e5 100644 + if (ret) + goto err6; + -+ return 0; +err6: @@ -7202,7 +7150,7 @@ index 80747d2..cd690e5 100644 err5: phy_driver_unregister(&ks8041_driver); err4: -@@ -230,6 +252,7 @@ static void __exit ksphy_exit(void) +@@ -230,6 +251,7 @@ static void __exit ksphy_exit(void) phy_driver_unregister(&ksz9021_driver); phy_driver_unregister(&ks8041_driver); phy_driver_unregister(&ks8051_driver); @@ -7210,7 +7158,7 @@ index 80747d2..cd690e5 100644 } module_init(ksphy_init); -@@ -241,6 +264,7 @@ MODULE_LICENSE("GPL"); +@@ -241,6 +263,7 @@ MODULE_LICENSE("GPL"); static struct mdio_device_id __maybe_unused micrel_tbl[] = { { PHY_ID_KSZ9021, 0x00ffffff }, @@ -7218,43 +7166,6 @@ index 80747d2..cd690e5 100644 { PHY_ID_KS8001, 0x00ffffff }, { PHY_ID_KS8737, 0x00ffffff }, { PHY_ID_KS8041, 0x00ffffff }, -diff --git a/drivers/video/mxc/ldb.c b/drivers/video/mxc/ldb.c -index 695ff33..985aedb 100644 ---- a/drivers/video/mxc/ldb.c -+++ b/drivers/video/mxc/ldb.c -@@ -105,6 +105,14 @@ static int g_ldb_mode; - - static struct fb_videomode ldb_modedb[] = { - { -+ "LDB-SGA", 60, 800, 600, 25132, -+ 88, 40, -+ 23, 1, -+ 128, 4, -+ 0, -+ FB_VMODE_NONINTERLACED, -+ FB_MODE_IS_DETAILED,}, -+ { - "LDB-WXGA", 60, 1280, 800, 14065, - 40, 40, - 10, 3, -diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c -index 92822f8..02dd895 100644 ---- a/drivers/video/mxc_hdmi.c -+++ b/drivers/video/mxc_hdmi.c -@@ -1538,10 +1538,10 @@ static void mxc_hdmi_edid_rebuild_modelist(struct mxc_hdmi *hdmi) - */ - mode = &hdmi->fbi->monspecs.modedb[i]; - -- if (!(mode->vmode & FB_VMODE_INTERLACED) && -- (mxc_edid_mode_to_vic(mode) != 0)) { -+ if (!(mode->vmode & FB_VMODE_INTERLACED)) { -+ int vic = mxc_edid_mode_to_vic(mode); - -- dev_dbg(&hdmi->pdev->dev, "Added mode %d:", i); -+ dev_dbg(&hdmi->pdev->dev, "%s: Added mode %d(VIC %u):", __func__, i, vic); - dev_dbg(&hdmi->pdev->dev, - "xres = %d, yres = %d, freq = %d, vmode = %d, flag = %d\n", - hdmi->fbi->monspecs.modedb[i].xres, diff --git a/include/linux/micrel_phy.h b/include/linux/micrel_phy.h index dd8da34..3222193 100644 --- a/include/linux/micrel_phy.h @@ -7268,7 +7179,7 @@ index dd8da34..3222193 100644 #define PHY_ID_KS8041 0x00221510 #define PHY_ID_KS8051 0x00221550 diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig -index 72d8550..f60180b 100644 +index e30ebbe..3967a99 100644 --- a/sound/soc/imx/Kconfig +++ b/sound/soc/imx/Kconfig @@ -53,7 +53,7 @@ config SND_SOC_PHYCORE_AC97 @@ -7293,3 +7204,6 @@ index 9325dc8..7c52545 100644 imx_sgtl5000_dai[0].codec_name = "sgtl5000.0-000a"; else imx_sgtl5000_dai[0].codec_name = "sgtl5000.1-000a"; +-- +1.7.10.4 + diff --git a/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/defconfig b/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/defconfig index 04dfb8b..ae88ec9 100644 --- a/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/defconfig +++ b/recipes-kernel/linux/linux-imx-3.0.35/cgtqmx6/defconfig @@ -277,9 +277,7 @@ CONFIG_IMX_HAVE_PLATFORM_IMX_DVFS=y CONFIG_IMX_HAVE_PLATFORM_AHCI=y CONFIG_IMX_HAVE_PLATFORM_IMX_OCOTP=y CONFIG_IMX_HAVE_PLATFORM_IMX_VIIM=y -CONFIG_IMX_HAVE_PLATFORM_PERFMON=y CONFIG_IMX_HAVE_PLATFORM_LDB=y -CONFIG_IMX_HAVE_PLATFORM_IMX_PXP=y CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF=y CONFIG_IMX_HAVE_PLATFORM_VIV_GPU=y CONFIG_IMX_HAVE_PLATFORM_MXC_HDMI=y @@ -288,6 +286,7 @@ CONFIG_IMX_HAVE_PLATFORM_FSL_OTG=y CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y +CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y @@ -301,6 +300,7 @@ CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y # CONFIG_ARCH_MX503 is not set # CONFIG_ARCH_MX51 is not set CONFIG_ARCH_MX6=y +# CONFIG_MACH_IMX_BLUETOOTH_RFKILL is not set CONFIG_ARCH_MX6Q=y CONFIG_FORCE_MAX_ZONEORDER=14 CONFIG_SOC_IMX6Q=y @@ -311,20 +311,22 @@ CONFIG_SOC_IMX6Q=y CONFIG_MACH_MX6Q_QMX6=y # CONFIG_MACH_MX6Q_SABRESD is not set # CONFIG_MACH_MX6Q_SABREAUTO is not set +# CONFIG_MACH_MX6Q_HDMIDONGLE is not set # # MX6 Options: # # CONFIG_IMX_PCIE is not set -CONFIG_USB_EHCI_ARC_H1=y +# CONFIG_USB_EHCI_ARC_H1 is not set # CONFIG_USB_FSL_ARC_OTG is not set # CONFIG_MX6_INTER_LDO_BYPASS is not set # CONFIG_MX6_CLK_FOR_BOOTUI_TRANS is not set +# CONFIG_MX6_ENET_IRQ_TO_GPIO is not set CONFIG_ISP1504_MXC=y # CONFIG_MXC_IRQ_PRIOR is not set CONFIG_MXC_PWM=y # CONFIG_MXC_DEBUG_BOARD is not set -CONFIG_MXC_REBOOT_MFGMODE=y +# CONFIG_MXC_REBOOT_MFGMODE is not set # CONFIG_MXC_REBOOT_ANDROID_CMD is not set CONFIG_ARCH_MXC_IOMUX_V3=y CONFIG_ARCH_MXC_AUDMUX_V2=y @@ -388,7 +390,7 @@ CONFIG_ARM_GIC=y # CONFIG_ARM_AMBA=y # CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set +CONFIG_ARCH_SUPPORTS_MSI=y # CONFIG_PCCARD is not set CONFIG_ARM_ERRATA_764369=y # CONFIG_PL310_ERRATA_769419 is not set @@ -478,10 +480,10 @@ CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set CONFIG_CPU_FREQ_GOV_INTERACTIVE=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_IMX=y @@ -578,8 +580,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set -CONFIG_LLC=y -CONFIG_LLC2=y +# CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set @@ -675,7 +676,6 @@ CONFIG_LIB80211_CRYPT_TKIP=y # CONFIG_MAC80211 is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=y -CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL_REGULATOR is not set # CONFIG_RFKILL_GPIO is not set @@ -976,7 +976,7 @@ CONFIG_SMSC911X=y # CONFIG_KS8851 is not set # CONFIG_KS8851_MLL is not set CONFIG_FEC=y -CONFIG_FEC_NAPI=y +# CONFIG_FEC_NAPI is not set # CONFIG_FEC_1588 is not set # CONFIG_FTMAC100 is not set # CONFIG_NETDEV_1000 is not set @@ -1079,6 +1079,7 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_EETI is not set CONFIG_TOUCHSCREEN_EGALAX=y # CONFIG_TOUCHSCREEN_ELAN is not set +# CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_ELO is not set @@ -1136,7 +1137,7 @@ CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_UNIX98_PTYS=y # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set CONFIG_LEGACY_PTYS=y @@ -1184,7 +1185,6 @@ CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=y # CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_ALGOBIT=m # # I2C Hardware Bus support @@ -1310,7 +1310,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_MAX8903 is not set +CONFIG_CHARGER_MAX8903=y # CONFIG_SABRESD_MAX8903 is not set # CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=y @@ -1620,25 +1620,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set -CONFIG_VIDEO_MXC_CAMERA=m - -# -# MXC Camera/V4L2 PRP Features support -# -CONFIG_VIDEO_MXC_IPU_CAMERA=y -# CONFIG_VIDEO_MXC_CSI_CAMERA is not set -# CONFIG_MXC_CAMERA_MICRON111 is not set -# CONFIG_MXC_CAMERA_OV2640 is not set -CONFIG_MXC_CAMERA_OV3640=m -CONFIG_MXC_CAMERA_OV5640=m -CONFIG_MXC_CAMERA_OV8820_MIPI=m -CONFIG_MXC_CAMERA_OV5642=m -CONFIG_MXC_CAMERA_OV5640_MIPI=m -# CONFIG_MXC_MIPI_CSI2_TVIN_ADV7280 is not set -CONFIG_MXC_CAMERA_SENSOR_CLK=m -CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m -CONFIG_MXC_IPU_PRP_ENC=m -CONFIG_MXC_IPU_CSI_ENC=m +# CONFIG_VIDEO_MXC_CAMERA is not set CONFIG_VIDEO_MXC_OUTPUT=y CONFIG_VIDEO_MXC_IPU_OUTPUT=y # CONFIG_VIDEO_MXC_IPUV1_WVGA_OUTPUT is not set @@ -1710,8 +1692,7 @@ CONFIG_USB_GSPCA=m # # Graphics support # -CONFIG_DRM=m -CONFIG_DRM_VIVANTE=m +# CONFIG_DRM is not set # CONFIG_VGASTATE is not set # CONFIG_VIDEO_OUTPUT_CONTROL is not set CONFIG_FB=y @@ -1950,6 +1931,7 @@ CONFIG_USB_OTG=y # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_EHCI_HCD=y +# CONFIG_FSL_USB_TEST_MODE is not set CONFIG_USB_EHCI_ARC=y CONFIG_USB_EHCI_ARC_OTG=y # CONFIG_USB_EHCI_ARC_HSIC is not set @@ -2111,8 +2093,7 @@ CONFIG_LEDS_CLASS=y # # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_GPIO_PLATFORM=y +# CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set @@ -2122,20 +2103,11 @@ CONFIG_LEDS_GPIO_PLATFORM=y # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_LT3593 is not set -CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGERS is not set # # LED Triggers # -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -CONFIG_LEDS_TRIGGER_GPIO=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y - -# -# iptables trigger is under Netfilter config (LED target) -# # # LED Triggers @@ -2533,7 +2505,7 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 -CONFIG_MAGIC_SYSRQ=y +# CONFIG_MAGIC_SYSRQ is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set CONFIG_DEBUG_FS=y @@ -2584,44 +2556,42 @@ CONFIG_CRYPTO=y # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set -CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_GF128MUL is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_WORKQUEUE=y # CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_AUTHENC=y +# CONFIG_CRYPTO_AUTHENC is not set CONFIG_CRYPTO_TEST=m # CONFIG_CRYPTO_CRYPTODEV is not set # # Authenticated Encryption with Associated Data # -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_SEQIV=y +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set # # Block modes # CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CTR=y -CONFIG_CRYPTO_CTS=y +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_LRW=y -CONFIG_CRYPTO_PCBC=y -CONFIG_CRYPTO_XTS=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set # # Hash modes @@ -2634,7 +2604,7 @@ CONFIG_CRYPTO_XTS=y # Digest # # CONFIG_CRYPTO_CRC32C is not set -CONFIG_CRYPTO_GHASH=y +# CONFIG_CRYPTO_GHASH is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set CONFIG_CRYPTO_MICHAEL_MIC=y @@ -2658,7 +2628,7 @@ CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set -CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_SALSA20 is not set @@ -2681,17 +2651,8 @@ CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_FSL_CAAM=y -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 -CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y -CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD=255 -CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD=2048 -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y -# CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST is not set +# CONFIG_CRYPTO_DEV_FSL_CAAM is not set # CONFIG_CRYPTO_DEV_FSL_CAAM_SM is not set -# CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO is not set # CONFIG_BINARY_PRINTF is not set # diff --git a/recipes-kernel/linux/linux-imx_3.0.35.bbappend b/recipes-kernel/linux/linux-imx_3.0.35.bbappend index 8f51e62..221d5e6 100644 --- a/recipes-kernel/linux/linux-imx_3.0.35.bbappend +++ b/recipes-kernel/linux/linux-imx_3.0.35.bbappend @@ -3,4 +3,4 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:" PRINC := "${@int(PRINC) + 5}" # Add support for the Congatec qmx6 board -SRC_URI_append_cgtqmx6 = " file://cgtqmx6/cgtqmx6.patch" +SRC_URI_append_cgtqmx6 = " file://cgtqmx6/0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch"