[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.2-454-g85ec268
Brought to you by:
sszy
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2013-09-22 10:07:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 85ec268dd7c6cf30f2a23fae96f15ba32b846ff7 (commit)
via dfe6067f010dc43ff103b114caecb51f0c0fd24b (commit)
via 8c2805ba6391e3b5dac307287d738aed9fe007ed (commit)
from f136d1e302a1b3bcc3412cd11b0406d0e4c42a58 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 85ec268dd7c6cf30f2a23fae96f15ba32b846ff7
Author: Gwenhael Goavec-Merou <gwe...@tr...>
Date: Sun Sep 22 12:07:53 2013 +0200
[LINUX][3.12] adapt patches 0209, 0213, 0214, 0404, 0408, 0409, 0441, 0443 from 3.11
commit dfe6067f010dc43ff103b114caecb51f0c0fd24b
Author: Gwenhael Goavec-Merou <gwe...@tr...>
Date: Sun Sep 22 12:06:20 2013 +0200
[LINUX][3.12] imx27: Update patches 0206* with latest version provided
commit 8c2805ba6391e3b5dac307287d738aed9fe007ed
Author: Gwenhael Goavec-Merou <gwe...@tr...>
Date: Sun Sep 22 12:05:52 2013 +0200
[LINUX][3.12] Add support for 3.12(-rc1)
-----------------------------------------------------------------------
Summary of changes:
patches/linux/3.12-rc1 | 1 +
...15-armadeus-logo-add_armadeus-project_tux.patch | 0
.../{3.10 => 3.12}/0021-armadeus-apf9328.patch | 0
...s-apf9328-add_board_to_linux_build_system.patch | 0
.../0025-armadeus-imx-correct_dma_shift.patch | 0
.../0029-armadeus-add_csi_and_spi_registers.patch | 0
.../0029b-armadeus-add_csi_registers.patch | 0
...rmadeus-devices-imx1-add_udc_registration.patch | 0
...35-armadeus-re_add_pwm_and_correct_driver.tofix | 0
...50-armadeus-add_custom_drivers_to_kconfig.patch | 0
.../{3.10 => 3.12}/0073-armadeus-tsc2102.patch | 0
...02_integrate_driver_to_linux_build_system.patch | 0
...chscreen-add_driver_to_linux_build_system.patch | 0
.../0074-armadeus-tsc2102-touchscreen.patch | 0
.../0075-armadeus-spi2-reg-defines.patch | 0
...eus-clock_correct_mxc_decode_pll_for_imx1.tofix | 0
...madeus-clock-imx1_avoid_crash_with_module.tofix | 0
.../0200-armadeus-add_apf27_module.patch | 0
.../0201-armadeus-add_apf27dev_baseboard.patch | 0
...armadeus-mx27-ehci-mxc-add_per_clk_enable.patch | 0
...rmadeus-mx27-imxfb-fix_pwm_contrast_issue.patch | 0
.../0206-a-linaro-imx-imx1_core_driver.patch} | 390 +++++++++++---------
...6-b-linaro-imx27-imx27_pincontrol_driver.patch} | 60 ++--
.../0206-c-imx-dts-pin_functions.patch} | 18 +-
.../3.12/0206-d-linaro-dts-imx27-pinctrl.patch | 141 +++++++
.../0206-e-linaro-imx27-enable_pinctrl.patch} | 2 +-
.../0207-armadeus-apf27dev-add_hog_pinctrl.patch | 0
...madeus-imx27_dtsi-add_framebuffer_pinctrl.patch | 48 +++
...armadeus-imx27-apf27dev-add_imxfb_support.patch | 0
...re_to_setup_PWM_Contrast_Control_Register.patch | 0
.../0212-armadeus-imx27-fix_cspi_per_clk_id.patch | 0
.../3.12/0213-armadeus-add_cspi_pinctrl.patch | 40 ++
.../0214-armadeus-add_cspi_and_sdhc_pinctrl.patch | 27 ++
...-imx27-apf27dev-add_pinctrl_for_cspi_node.patch | 0
...-armadeus-imx27-apf27dev-add_sdhc_support.patch | 14 +-
.../0322-armadeus-add_mach_fpga_h.patch | 0
...rmadeus-mach_fpga_add_dt_support_for_mx27.patch | 0
.../0400-Add-apf51-basic-dt-support.patch | 0
.../0401-armadeus-add_apf51dev_baseboard.patch | 0
.../0404-armadeus-fix_nand_ecc_oob.patch | 20 +-
..._possibility_to_deactivate_SDIO_interrupt.patch | 0
...-imx51_dts-add_usbphy_for_host1_and_host2.patch | 0
...51-chipidea-usbmisc_imx-add_imx51_support.patch | 50 ++--
...adeus-chipidea-add_node_to_select_clk_phy.patch | 29 ++
.../0420-armadeus-Add-apf28dev-dts.patch | 0
..._star_completion_for_source_in_menuconfig.patch | 21 +-
...low_to_use_the_wakeupalarm_functionnality.patch | 0
...0443-armadeus-apf28-fix_mac_address_issue.patch | 24 +-
48 files changed, 601 insertions(+), 284 deletions(-)
create mode 120000 patches/linux/3.12-rc1
copy patches/linux/{common => 3.12}/0015-armadeus-logo-add_armadeus-project_tux.patch (100%)
copy patches/linux/{3.10 => 3.12}/0021-armadeus-apf9328.patch (100%)
copy patches/linux/{3.10 => 3.12}/0024-armadeus-apf9328-add_board_to_linux_build_system.patch (100%)
copy patches/linux/{3.10 => 3.12}/0025-armadeus-imx-correct_dma_shift.patch (100%)
copy patches/linux/{3.10 => 3.12}/0029-armadeus-add_csi_and_spi_registers.patch (100%)
copy patches/linux/{3.10 => 3.12}/0029b-armadeus-add_csi_registers.patch (100%)
copy patches/linux/{3.10 => 3.12}/0030-armadeus-devices-imx1-add_udc_registration.patch (100%)
copy patches/linux/{3.10 => 3.12}/0035-armadeus-re_add_pwm_and_correct_driver.tofix (100%)
copy patches/linux/{3.10 => 3.12}/0050-armadeus-add_custom_drivers_to_kconfig.patch (100%)
copy patches/linux/{3.10 => 3.12}/0073-armadeus-tsc2102.patch (100%)
copy patches/linux/{3.10 => 3.12}/0073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch (100%)
copy patches/linux/{3.10 => 3.12}/0074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch (100%)
copy patches/linux/{3.10 => 3.12}/0074-armadeus-tsc2102-touchscreen.patch (100%)
copy patches/linux/{3.10 => 3.12}/0075-armadeus-spi2-reg-defines.patch (100%)
copy patches/linux/{3.10 => 3.12}/0100-armadeus-clock_correct_mxc_decode_pll_for_imx1.tofix (100%)
copy patches/linux/{3.10 => 3.12}/0101-armadeus-clock-imx1_avoid_crash_with_module.tofix (100%)
copy patches/linux/{3.10 => 3.12}/0200-armadeus-add_apf27_module.patch (100%)
copy patches/linux/{3.10 => 3.12}/0201-armadeus-add_apf27dev_baseboard.patch (100%)
copy patches/linux/{3.10 => 3.12}/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch (100%)
copy patches/linux/{3.11 => 3.12}/0204-armadeus-mx27-imxfb-fix_pwm_contrast_issue.patch (100%)
copy patches/linux/{3.11/0206-c-linaro-imx1-pinctrl-core-driver.patch => 3.12/0206-a-linaro-imx-imx1_core_driver.patch} (65%)
copy patches/linux/{3.11/0206-d-linaro-imx27-pinctrl-imx27_pincontrol_driver.patch => 3.12/0206-b-linaro-imx27-imx27_pincontrol_driver.patch} (94%)
copy patches/linux/{3.11/0206-e-linaro-imx27-dts-pin_functions.patch => 3.12/0206-c-imx-dts-pin_functions.patch} (98%)
create mode 100644 patches/linux/3.12/0206-d-linaro-dts-imx27-pinctrl.patch
copy patches/linux/{3.11/0206-g-linaro-imx27-enable_pinctrl.patch => 3.12/0206-e-linaro-imx27-enable_pinctrl.patch} (98%)
copy patches/linux/{3.11 => 3.12}/0207-armadeus-apf27dev-add_hog_pinctrl.patch (100%)
create mode 100644 patches/linux/3.12/0209-armadeus-imx27_dtsi-add_framebuffer_pinctrl.patch
copy patches/linux/{3.11 => 3.12}/0210-armadeus-imx27-apf27dev-add_imxfb_support.patch (100%)
copy patches/linux/{3.11 => 3.12}/0211-linaro-imx-framebuffer-Add_feature_to_setup_PWM_Contrast_Control_Register.patch (100%)
copy patches/linux/{3.11 => 3.12}/0212-armadeus-imx27-fix_cspi_per_clk_id.patch (100%)
create mode 100644 patches/linux/3.12/0213-armadeus-add_cspi_pinctrl.patch
create mode 100644 patches/linux/3.12/0214-armadeus-add_cspi_and_sdhc_pinctrl.patch
copy patches/linux/{3.11 => 3.12}/0215-armadeus-imx27-apf27dev-add_pinctrl_for_cspi_node.patch (100%)
copy patches/linux/{3.11 => 3.12}/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch (54%)
copy patches/linux/{3.10 => 3.12}/0322-armadeus-add_mach_fpga_h.patch (100%)
copy patches/linux/{3.10 => 3.12}/0323-armadeus-mach_fpga_add_dt_support_for_mx27.patch (100%)
copy patches/linux/{3.11 => 3.12}/0400-Add-apf51-basic-dt-support.patch (100%)
copy patches/linux/{3.11 => 3.12}/0401-armadeus-add_apf51dev_baseboard.patch (100%)
copy patches/linux/{3.10 => 3.12}/0404-armadeus-fix_nand_ecc_oob.patch (81%)
copy patches/linux/{3.10 => 3.12}/0405-armadeus-esdhc-imx-add_possibility_to_deactivate_SDIO_interrupt.patch (100%)
copy patches/linux/{3.11 => 3.12}/0407-armadeus-imx51_dts-add_usbphy_for_host1_and_host2.patch (100%)
copy patches/linux/{3.11 => 3.12}/0408-armadeus-imx51-chipidea-usbmisc_imx-add_imx51_support.patch (75%)
create mode 100644 patches/linux/3.12/0409-armadeus-chipidea-add_node_to_select_clk_phy.patch
copy patches/linux/{3.11 => 3.12}/0420-armadeus-Add-apf28dev-dts.patch (100%)
copy patches/linux/{3.7 => 3.12}/0441-armadeus-adding_star_completion_for_source_in_menuconfig.patch (79%)
copy patches/linux/{3.10 => 3.12}/0442-armadeus-rtc-mxs-allow_to_use_the_wakeupalarm_functionnality.patch (100%)
copy patches/linux/{3.11 => 3.12}/0443-armadeus-apf28-fix_mac_address_issue.patch (58%)
diff --git a/patches/linux/3.12-rc1 b/patches/linux/3.12-rc1
new file mode 120000
index 0000000..fdcfcfd
--- /dev/null
+++ b/patches/linux/3.12-rc1
@@ -0,0 +1 @@
+3.12
\ No newline at end of file
diff --git a/patches/linux/common/0015-armadeus-logo-add_armadeus-project_tux.patch b/patches/linux/3.12/0015-armadeus-logo-add_armadeus-project_tux.patch
similarity index 100%
copy from patches/linux/common/0015-armadeus-logo-add_armadeus-project_tux.patch
copy to patches/linux/3.12/0015-armadeus-logo-add_armadeus-project_tux.patch
diff --git a/patches/linux/3.10/0021-armadeus-apf9328.patch b/patches/linux/3.12/0021-armadeus-apf9328.patch
similarity index 100%
copy from patches/linux/3.10/0021-armadeus-apf9328.patch
copy to patches/linux/3.12/0021-armadeus-apf9328.patch
diff --git a/patches/linux/3.10/0024-armadeus-apf9328-add_board_to_linux_build_system.patch b/patches/linux/3.12/0024-armadeus-apf9328-add_board_to_linux_build_system.patch
similarity index 100%
copy from patches/linux/3.10/0024-armadeus-apf9328-add_board_to_linux_build_system.patch
copy to patches/linux/3.12/0024-armadeus-apf9328-add_board_to_linux_build_system.patch
diff --git a/patches/linux/3.10/0025-armadeus-imx-correct_dma_shift.patch b/patches/linux/3.12/0025-armadeus-imx-correct_dma_shift.patch
similarity index 100%
copy from patches/linux/3.10/0025-armadeus-imx-correct_dma_shift.patch
copy to patches/linux/3.12/0025-armadeus-imx-correct_dma_shift.patch
diff --git a/patches/linux/3.10/0029-armadeus-add_csi_and_spi_registers.patch b/patches/linux/3.12/0029-armadeus-add_csi_and_spi_registers.patch
similarity index 100%
copy from patches/linux/3.10/0029-armadeus-add_csi_and_spi_registers.patch
copy to patches/linux/3.12/0029-armadeus-add_csi_and_spi_registers.patch
diff --git a/patches/linux/3.10/0029b-armadeus-add_csi_registers.patch b/patches/linux/3.12/0029b-armadeus-add_csi_registers.patch
similarity index 100%
copy from patches/linux/3.10/0029b-armadeus-add_csi_registers.patch
copy to patches/linux/3.12/0029b-armadeus-add_csi_registers.patch
diff --git a/patches/linux/3.10/0030-armadeus-devices-imx1-add_udc_registration.patch b/patches/linux/3.12/0030-armadeus-devices-imx1-add_udc_registration.patch
similarity index 100%
copy from patches/linux/3.10/0030-armadeus-devices-imx1-add_udc_registration.patch
copy to patches/linux/3.12/0030-armadeus-devices-imx1-add_udc_registration.patch
diff --git a/patches/linux/3.10/0035-armadeus-re_add_pwm_and_correct_driver.tofix b/patches/linux/3.12/0035-armadeus-re_add_pwm_and_correct_driver.tofix
similarity index 100%
copy from patches/linux/3.10/0035-armadeus-re_add_pwm_and_correct_driver.tofix
copy to patches/linux/3.12/0035-armadeus-re_add_pwm_and_correct_driver.tofix
diff --git a/patches/linux/3.10/0050-armadeus-add_custom_drivers_to_kconfig.patch b/patches/linux/3.12/0050-armadeus-add_custom_drivers_to_kconfig.patch
similarity index 100%
copy from patches/linux/3.10/0050-armadeus-add_custom_drivers_to_kconfig.patch
copy to patches/linux/3.12/0050-armadeus-add_custom_drivers_to_kconfig.patch
diff --git a/patches/linux/3.10/0073-armadeus-tsc2102.patch b/patches/linux/3.12/0073-armadeus-tsc2102.patch
similarity index 100%
copy from patches/linux/3.10/0073-armadeus-tsc2102.patch
copy to patches/linux/3.12/0073-armadeus-tsc2102.patch
diff --git a/patches/linux/3.10/0073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch b/patches/linux/3.12/0073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch
similarity index 100%
copy from patches/linux/3.10/0073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch
copy to patches/linux/3.12/0073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch
diff --git a/patches/linux/3.10/0074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch b/patches/linux/3.12/0074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
similarity index 100%
copy from patches/linux/3.10/0074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
copy to patches/linux/3.12/0074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
diff --git a/patches/linux/3.10/0074-armadeus-tsc2102-touchscreen.patch b/patches/linux/3.12/0074-armadeus-tsc2102-touchscreen.patch
similarity index 100%
copy from patches/linux/3.10/0074-armadeus-tsc2102-touchscreen.patch
copy to patches/linux/3.12/0074-armadeus-tsc2102-touchscreen.patch
diff --git a/patches/linux/3.10/0075-armadeus-spi2-reg-defines.patch b/patches/linux/3.12/0075-armadeus-spi2-reg-defines.patch
similarity index 100%
copy from patches/linux/3.10/0075-armadeus-spi2-reg-defines.patch
copy to patches/linux/3.12/0075-armadeus-spi2-reg-defines.patch
diff --git a/patches/linux/3.10/0100-armadeus-clock_correct_mxc_decode_pll_for_imx1.tofix b/patches/linux/3.12/0100-armadeus-clock_correct_mxc_decode_pll_for_imx1.tofix
similarity index 100%
copy from patches/linux/3.10/0100-armadeus-clock_correct_mxc_decode_pll_for_imx1.tofix
copy to patches/linux/3.12/0100-armadeus-clock_correct_mxc_decode_pll_for_imx1.tofix
diff --git a/patches/linux/3.10/0101-armadeus-clock-imx1_avoid_crash_with_module.tofix b/patches/linux/3.12/0101-armadeus-clock-imx1_avoid_crash_with_module.tofix
similarity index 100%
copy from patches/linux/3.10/0101-armadeus-clock-imx1_avoid_crash_with_module.tofix
copy to patches/linux/3.12/0101-armadeus-clock-imx1_avoid_crash_with_module.tofix
diff --git a/patches/linux/3.10/0200-armadeus-add_apf27_module.patch b/patches/linux/3.12/0200-armadeus-add_apf27_module.patch
similarity index 100%
copy from patches/linux/3.10/0200-armadeus-add_apf27_module.patch
copy to patches/linux/3.12/0200-armadeus-add_apf27_module.patch
diff --git a/patches/linux/3.10/0201-armadeus-add_apf27dev_baseboard.patch b/patches/linux/3.12/0201-armadeus-add_apf27dev_baseboard.patch
similarity index 100%
copy from patches/linux/3.10/0201-armadeus-add_apf27dev_baseboard.patch
copy to patches/linux/3.12/0201-armadeus-add_apf27dev_baseboard.patch
diff --git a/patches/linux/3.10/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch b/patches/linux/3.12/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch
similarity index 100%
copy from patches/linux/3.10/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch
copy to patches/linux/3.12/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch
diff --git a/patches/linux/3.11/0204-armadeus-mx27-imxfb-fix_pwm_contrast_issue.patch b/patches/linux/3.12/0204-armadeus-mx27-imxfb-fix_pwm_contrast_issue.patch
similarity index 100%
copy from patches/linux/3.11/0204-armadeus-mx27-imxfb-fix_pwm_contrast_issue.patch
copy to patches/linux/3.12/0204-armadeus-mx27-imxfb-fix_pwm_contrast_issue.patch
diff --git a/patches/linux/3.11/0206-c-linaro-imx1-pinctrl-core-driver.patch b/patches/linux/3.12/0206-a-linaro-imx-imx1_core_driver.patch
similarity index 65%
copy from patches/linux/3.11/0206-c-linaro-imx1-pinctrl-core-driver.patch
copy to patches/linux/3.12/0206-a-linaro-imx-imx1_core_driver.patch
index 547106f..42bb1c0 100644
--- a/patches/linux/3.11/0206-c-linaro-imx1-pinctrl-core-driver.patch
+++ b/patches/linux/3.12/0206-a-linaro-imx-imx1_core_driver.patch
@@ -1,11 +1,17 @@
+Core driver for register formats of imx1/imx21/imx27 processors.
+
+The pins of those processors are grouped into ports. Each port has 32
+pins. The pins mux configuration is controlled by registers with 1 or 2
+bit per pin, depending on the specific control register.
+
Signed-off-by: Markus Pargmann <mp...@pe...>
---
drivers/pinctrl/Kconfig | 5 +
drivers/pinctrl/Makefile | 1 +
- drivers/pinctrl/pinctrl-imx1-core.c | 667 ++++++++++++++++++++++++++++++++++++
- drivers/pinctrl/pinctrl-imx1.h | 23 ++
- 4 files changed, 696 insertions(+)
+ drivers/pinctrl/pinctrl-imx1-core.c | 649 ++++++++++++++++++++++++++++++++++++
+ drivers/pinctrl/pinctrl-imx1.h | 73 ++++
+ 4 files changed, 728 insertions(+)
create mode 100644 drivers/pinctrl/pinctrl-imx1-core.c
create mode 100644 drivers/pinctrl/pinctrl-imx1.h
@@ -39,10 +45,10 @@ index d64563bf..43bb05e 100644
obj-$(CONFIG_PINCTRL_IMX53) += pinctrl-imx53.o
diff --git a/drivers/pinctrl/pinctrl-imx1-core.c b/drivers/pinctrl/pinctrl-imx1-core.c
new file mode 100644
-index 0000000..318b976
+index 0000000..276fea9
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-imx1-core.c
-@@ -0,0 +1,667 @@
+@@ -0,0 +1,649 @@
+/*
+ * Core driver for the imx pin controller in imx1/21/27
+ *
@@ -60,6 +66,7 @@ index 0000000..318b976
+ * (at your option) any later version.
+ */
+
++#include <linux/bitops.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/io.h>
@@ -70,7 +77,6 @@ index 0000000..318b976
+#include <linux/pinctrl/pinconf.h>
+#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/pinmux.h>
-+#include <linux/platform_data/gpio-mxc.h>
+#include <linux/slab.h>
+
+#include "core.h"
@@ -80,14 +86,9 @@ index 0000000..318b976
+ struct device *dev;
+ struct pinctrl_dev *pctl;
+ void __iomem *base;
-+ const struct imx_pinctrl_soc_info *info;
-+
-+ int num_gpio_childs;
-+ struct platform_device **gpio_dev;
-+ struct mxc_gpio_platform_data *gpio_pdata;
++ const struct imx1_pinctrl_soc_info *info;
+};
+
-+
+/*
+ * MX1 register offsets
+ */
@@ -100,13 +101,38 @@ index 0000000..318b976
+#define MX1_GPR 0x38
+#define MX1_PUEN 0x40
+
++#define MX1_PORT_STRIDE 0x100
++
++
++/*
++ * MUX_ID format defines
++ */
++#define MX1_MUX_FUNCTION(val) (BIT(0) & val)
++#define MX1_MUX_GPIO(val) ((BIT(1) & val) >> 1)
++#define MX1_MUX_DIR(val) ((BIT(2) & val) >> 2)
++#define MX1_MUX_OCONF(val) (((BIT(4) | BIT(5)) & val) >> 4)
++#define MX1_MUX_ICONFA(val) (((BIT(8) | BIT(9)) & val) >> 8)
++#define MX1_MUX_ICONFB(val) (((BIT(10) | BIT(11)) & val) >> 10)
++
++
++/*
++ * IMX1 IOMUXC manages the pins based on ports. Each port has 32 pins. IOMUX
++ * control register are seperated into function, output configuration, input
++ * configuration A, input configuration B, GPIO in use and data direction.
++ *
++ * Those controls that are represented by 1 bit have a direct mapping between
++ * bit position and pin id. If they are represented by 2 bit, the lower 16 pins
++ * are in the first register and the upper 16 pins in the second (next)
++ * register. pin_id is stored in bit (pin_id%16)*2 and the bit above.
++ */
++
+/*
+ * Calculates the register offset from a pin_id
+ */
+static void __iomem *imx1_mem(struct imx1_pinctrl *ipctl, unsigned int pin_id)
+{
+ unsigned int port = pin_id / 32;
-+ return ipctl->base + port * 0x100;
++ return ipctl->base + port * MX1_PORT_STRIDE;
+}
+
+/*
@@ -117,51 +143,76 @@ index 0000000..318b976
+ u32 value, u32 reg_offset)
+{
+ void __iomem *reg = imx1_mem(ipctl, pin_id) + reg_offset;
-+ int shift = (pin_id % 16) * 2;
-+ int mask = ~(0x3 << shift);
-+ u32 old_value;
++ int offset = (pin_id % 16) * 2; /* offset, regardless of register used */
++ int mask = ~(0x3 << offset); /* Mask for 2 bits at offset */
++ u32 old_val;
++ u32 new_val;
+
-+ dev_dbg(ipctl->dev, "write: register 0x%p shift %d value 0x%x\n",
-+ reg, shift, value);
++ dev_dbg(ipctl->dev, "write: register 0x%p offset %d value 0x%x\n",
++ reg, offset, value);
+
++ /* Use the next register if the pin's port pin number is >=16 */
+ if (pin_id % 32 >= 16)
+ reg += 0x04;
+
-+ value = (value & 0x3) << shift;
-+ old_value = readl(reg) & mask;
-+ writel(value | old_value, reg);
++ /* Get current state of pins */
++ old_val = readl(reg);
++ old_val &= mask;
++
++ new_val = value & 0x3; /* Make sure value is really 2 bit */
++ new_val <<= offset;
++ new_val |= old_val;/* Set new state for pin_id */
++
++ writel(new_val, reg);
+}
+
+static void imx1_write_bit(struct imx1_pinctrl *ipctl, unsigned int pin_id,
+ u32 value, u32 reg_offset)
+{
+ void __iomem *reg = imx1_mem(ipctl, pin_id) + reg_offset;
-+ int shift = pin_id % 32;
-+ int mask = ~(0x1 << shift);
-+ u32 old_value;
++ int offset = pin_id % 32;
++ int mask = ~BIT_MASK(offset);
++ u32 old_val;
++ u32 new_val;
++
++ /* Get current state of pins */
++ old_val = readl(reg);
++ old_val &= mask;
++
++ new_val = value & 0x1; /* Make sure value is really 1 bit */
++ new_val <<= offset;
++ new_val |= old_val;/* Set new state for pin_id */
++
++ writel(new_val, reg);
++}
++
++static int imx1_read_2bit(struct imx1_pinctrl *ipctl, unsigned int pin_id,
++ u32 reg_offset)
++{
++ void __iomem *reg = imx1_mem(ipctl, pin_id) + reg_offset;
++ int offset = pin_id % 16;
+
-+ dev_dbg(ipctl->dev, "write: register 0x%p shift %d value 0x%x\n",
-+ reg, shift, value);
++ /* Use the next register if the pin's port pin number is >=16 */
++ if (pin_id % 32 >= 16)
++ reg += 0x04;
+
-+ value = (value & 0x1) << shift;
-+ old_value = readl(reg) & mask;
-+ writel(value | old_value, reg);
++ return (readl(reg) & (BIT(offset) | BIT(offset+1))) >> offset;
+}
+
+static int imx1_read_bit(struct imx1_pinctrl *ipctl, unsigned int pin_id,
+ u32 reg_offset)
+{
+ void __iomem *reg = imx1_mem(ipctl, pin_id) + reg_offset;
-+ int shift = pin_id % 32;
++ int offset = pin_id % 32;
+
-+ return (readl(reg) >> shift) & 0x1;
++ return !!(readl(reg) & BIT(offset));
+}
+
-+static const inline struct imx_pin_group *imx1_pinctrl_find_group_by_name(
-+ const struct imx_pinctrl_soc_info *info,
++static const inline struct imx1_pin_group *imx1_pinctrl_find_group_by_name(
++ const struct imx1_pinctrl_soc_info *info,
+ const char *name)
+{
-+ const struct imx_pin_group *grp = NULL;
++ const struct imx1_pin_group *grp = NULL;
+ int i;
+
+ for (i = 0; i < info->ngroups; i++) {
@@ -177,7 +228,7 @@ index 0000000..318b976
+static int imx1_get_groups_count(struct pinctrl_dev *pctldev)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ return info->ngroups;
+}
@@ -186,22 +237,22 @@ index 0000000..318b976
+ unsigned selector)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ return info->groups[selector].name;
+}
+
+static int imx1_get_group_pins(struct pinctrl_dev *pctldev, unsigned selector,
-+ const unsigned **pins,
++ const unsigned int **pins,
+ unsigned *npins)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ if (selector >= info->ngroups)
+ return -EINVAL;
+
-+ *pins = info->groups[selector].pins;
++ *pins = info->groups[selector].pin_ids;
+ *npins = info->groups[selector].npins;
+
+ return 0;
@@ -210,7 +261,15 @@ index 0000000..318b976
+static void imx1_pin_dbg_show(struct pinctrl_dev *pctldev, struct seq_file *s,
+ unsigned offset)
+{
-+ seq_printf(s, "%s", dev_name(pctldev->dev));
++ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
++
++ seq_printf(s, "GPIO %d, function %d, direction %d, oconf %d, iconfa %d, iconfb %d",
++ imx1_read_bit(ipctl, offset, MX1_GIUS),
++ imx1_read_bit(ipctl, offset, MX1_GPR),
++ imx1_read_bit(ipctl, offset, MX1_DDIR),
++ imx1_read_2bit(ipctl, offset, MX1_OCR),
++ imx1_read_2bit(ipctl, offset, MX1_ICONFA),
++ imx1_read_2bit(ipctl, offset, MX1_ICONFB));
+}
+
+static int imx1_dt_node_to_map(struct pinctrl_dev *pctldev,
@@ -218,8 +277,8 @@ index 0000000..318b976
+ struct pinctrl_map **map, unsigned *num_maps)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
-+ const struct imx_pin_group *grp;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pin_group *grp;
+ struct pinctrl_map *new_map;
+ struct device_node *parent;
+ int map_num = 1;
@@ -262,8 +321,8 @@ index 0000000..318b976
+ for (i = j = 0; i < grp->npins; i++) {
+ new_map[j].type = PIN_MAP_TYPE_CONFIGS_PIN;
+ new_map[j].data.configs.group_or_pin =
-+ pin_get_name(pctldev, grp->pins[i]);
-+ new_map[j].data.configs.configs = &grp->configs[i];
++ pin_get_name(pctldev, grp->pins[i].pin_id);
++ new_map[j].data.configs.configs = &grp->pins[i].config;
+ new_map[j].data.configs.num_configs = 1;
+ j++;
+ }
@@ -294,8 +353,8 @@ index 0000000..318b976
+ unsigned group)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
-+ const unsigned *pins, *mux;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pin *pins;
+ unsigned int npins;
+ int i;
+
@@ -305,21 +364,21 @@ index 0000000..318b976
+ */
+ pins = info->groups[group].pins;
+ npins = info->groups[group].npins;
-+ mux = info->groups[group].mux_mode;
+
-+ WARN_ON(!pins || !npins || !mux);
++ WARN_ON(!pins || !npins);
+
+ dev_dbg(ipctl->dev, "enable function %s group %s\n",
+ info->functions[selector].name, info->groups[group].name);
+
+ for (i = 0; i < npins; i++) {
-+ unsigned int pin_id = pins[i];
-+ unsigned int afunction = 0x001 & mux[i];
-+ unsigned int gpio_in_use = (0x002 & mux[i]) >> 1;
-+ unsigned int direction = (0x004 & mux[i]) >> 2;
-+ unsigned int gpio_oconf = (0x030 & mux[i]) >> 4;
-+ unsigned int gpio_iconfa = (0x300 & mux[i]) >> 8;
-+ unsigned int gpio_iconfb = (0xc00 & mux[i]) >> 10;
++ unsigned int mux = pins[i].mux_id;
++ unsigned int pin_id = pins[i].pin_id;
++ unsigned int afunction = MX1_MUX_FUNCTION(mux);
++ unsigned int gpio_in_use = MX1_MUX_GPIO(mux);
++ unsigned int direction = MX1_MUX_DIR(mux);
++ unsigned int gpio_oconf = MX1_MUX_OCONF(mux);
++ unsigned int gpio_iconfa = MX1_MUX_ICONFA(mux);
++ unsigned int gpio_iconfb = MX1_MUX_ICONFB(mux);
+
+ dev_dbg(pctldev->dev, "%s, pin 0x%x, function %d, gpio %d, direction %d, oconf %d, iconfa %d, iconfb %d\n",
+ __func__, pin_id, afunction, gpio_in_use,
@@ -346,7 +405,7 @@ index 0000000..318b976
+static int imx1_pmx_get_funcs_count(struct pinctrl_dev *pctldev)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ return info->nfunctions;
+}
@@ -355,7 +414,7 @@ index 0000000..318b976
+ unsigned selector)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ return info->functions[selector].name;
+}
@@ -365,7 +424,7 @@ index 0000000..318b976
+ unsigned * const num_groups)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ *groups = info->functions[selector].groups;
+ *num_groups = info->functions[selector].num_groups;
@@ -394,7 +453,7 @@ index 0000000..318b976
+ unsigned pin_id, unsigned long config)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
+
+ imx1_write_bit(ipctl, pin_id, config & 0x01, MX1_PUEN);
+
@@ -407,17 +466,9 @@ index 0000000..318b976
+static void imx1_pinconf_dbg_show(struct pinctrl_dev *pctldev,
+ struct seq_file *s, unsigned pin_id)
+{
-+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
-+ const struct imx_pin_reg *pin_reg = &info->pin_regs[pin_id];
+ unsigned long config;
+
-+ if (!pin_reg || !pin_reg->conf_reg) {
-+ seq_puts(s, "N/A");
-+ return;
-+ }
-+
-+ config = readl(ipctl->base + pin_reg->conf_reg);
++ imx1_pinconf_get(pctldev, pin_id, &config);
+ seq_printf(s, "0x%lx", config);
+}
+
@@ -425,8 +476,8 @@ index 0000000..318b976
+ struct seq_file *s, unsigned group)
+{
+ struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-+ const struct imx_pinctrl_soc_info *info = ipctl->info;
-+ struct imx_pin_group *grp;
++ const struct imx1_pinctrl_soc_info *info = ipctl->info;
++ struct imx1_pin_group *grp;
+ unsigned long config;
+ const char *name;
+ int i, ret;
@@ -437,8 +488,8 @@ index 0000000..318b976
+ seq_puts(s, "\n");
+ grp = &info->groups[group];
+ for (i = 0; i < grp->npins; i++) {
-+ name = pin_get_name(pctldev, grp->pins[i]);
-+ ret = imx1_pinconf_get(pctldev, grp->pins[i], &config);
++ name = pin_get_name(pctldev, grp->pins[i].pin_id);
++ ret = imx1_pinconf_get(pctldev, grp->pins[i].pin_id, &config);
+ if (ret)
+ return;
+ seq_printf(s, "%s: 0x%lx", name, config);
@@ -460,14 +511,13 @@ index 0000000..318b976
+};
+
+static int imx1_pinctrl_parse_groups(struct device_node *np,
-+ struct imx_pin_group *grp,
-+ struct imx_pinctrl_soc_info *info,
++ struct imx1_pin_group *grp,
++ struct imx1_pinctrl_soc_info *info,
+ u32 index)
+{
+ int size;
+ const __be32 *list;
+ int i;
-+ u32 config;
+
+ dev_dbg(info->dev, "group(%d): %s\n", index, np->name);
+
@@ -475,8 +525,7 @@ index 0000000..318b976
+ grp->name = np->name;
+
+ /*
-+ * the binding format is fsl,pins = <PIN_FUNC_ID CONFIG ...>,
-+ * do sanity check and calculate pins number
++ * the binding format is fsl,pins = <PIN MUX_ID CONFIG>
+ */
+ list = of_get_property(np, "fsl,pins", &size);
+ /* we do not check return since it's safe node passed down */
@@ -487,30 +536,32 @@ index 0000000..318b976
+ }
+
+ grp->npins = size / 12;
-+ grp->pins = devm_kzalloc(info->dev, grp->npins * sizeof(unsigned int),
-+ GFP_KERNEL);
-+ grp->mux_mode = devm_kzalloc(info->dev,
-+ grp->npins * sizeof(unsigned int), GFP_KERNEL);
-+ grp->configs = devm_kzalloc(info->dev,
-+ grp->npins * sizeof(unsigned long), GFP_KERNEL);
++ grp->pins = devm_kzalloc(info->dev,
++ grp->npins * sizeof(struct imx1_pin), GFP_KERNEL);
++ grp->pin_ids = devm_kzalloc(info->dev,
++ grp->npins * sizeof(unsigned int), GFP_KERNEL);
++
++ if (!grp->pins || !grp->pin_ids)
++ return -ENOMEM;
++
+ for (i = 0; i < grp->npins; i++) {
-+ grp->pins[i] = be32_to_cpu(*list++);
-+ grp->mux_mode[i] = be32_to_cpu(*list++);
++ grp->pins[i].pin_id = be32_to_cpu(*list++);
++ grp->pins[i].mux_id = be32_to_cpu(*list++);
++ grp->pins[i].config = be32_to_cpu(*list++);
+
-+ config = be32_to_cpu(*list++);
-+ grp->configs[i] = config;
++ grp->pin_ids[i] = grp->pins[i].pin_id;
+ }
+
+ return 0;
+}
+
+static int imx1_pinctrl_parse_functions(struct device_node *np,
-+ struct imx_pinctrl_soc_info *info,
++ struct imx1_pinctrl_soc_info *info,
+ u32 index)
+{
+ struct device_node *child;
-+ struct imx_pmx_func *func;
-+ struct imx_pin_group *grp;
++ struct imx1_pmx_func *func;
++ struct imx1_pin_group *grp;
+ int ret;
+ static u32 grp_index;
+ u32 i = 0;
@@ -528,121 +579,66 @@ index 0000000..318b976
+ func->groups = devm_kzalloc(info->dev,
+ func->num_groups * sizeof(char *), GFP_KERNEL);
+
++ if (!func->groups)
++ return -ENOMEM;
++
+ for_each_child_of_node(np, child) {
+ func->groups[i] = child->name;
+ grp = &info->groups[grp_index++];
+ ret = imx1_pinctrl_parse_groups(child, grp, info, i++);
-+ if (ret)
++ if (ret == -ENOMEM)
+ return ret;
+ }
+
+ return 0;
+}
+
-+static int imx1_pinctrl_parse_gpio(struct platform_device *pdev,
-+ struct imx1_pinctrl *pctl, struct device_node *np, int i,
-+ u32 base)
-+{
-+ int ret;
-+ u32 memoffset;
-+
-+ ret = of_property_read_u32(np, "reg", &memoffset);
-+ if (ret)
-+ return ret;
-+
-+ memoffset -= base;
-+ pctl->gpio_pdata[i].base = pctl->base + memoffset;
-+
-+ pctl->gpio_dev[i] = of_device_alloc(np, NULL, &pdev->dev);
-+ pctl->gpio_dev[i]->dev.platform_data = &pctl->gpio_pdata[i];
-+ pctl->gpio_dev[i]->dev.bus = &platform_bus_type;
-+
-+ ret = of_device_add(pctl->gpio_dev[i]);
-+ if (ret) {
-+ dev_err(&pdev->dev,
-+ "Failed to add child gpio device\n");
-+ return ret;
-+ }
-+ return 0;
-+}
-+
+static int imx1_pinctrl_parse_dt(struct platform_device *pdev,
-+ struct imx1_pinctrl *pctl, struct imx_pinctrl_soc_info *info)
++ struct imx1_pinctrl *pctl, struct imx1_pinctrl_soc_info *info)
+{
+ struct device_node *np = pdev->dev.of_node;
+ struct device_node *child;
+ int ret;
+ u32 nfuncs = 0;
-+ u32 ngpios = 0;
+ u32 ngroups = 0;
+ u32 ifunc = 0;
-+ u32 igpio = 0;
-+ u32 base_addr;
+
+ if (!np)
+ return -ENODEV;
+
-+ ret = of_property_read_u32(np, "reg", &base_addr);
-+ if (ret)
-+ return ret;
-+
+ for_each_child_of_node(np, child) {
-+ if (!of_device_is_compatible(child, "fsl,imx21-gpio") &&
-+ !of_device_is_compatible(child, "fsl,imx1-gpio")) {
-+ ++nfuncs;
-+ ngroups += of_get_child_count(child);
-+ } else if (of_device_is_available(child)) {
-+ ++ngpios;
-+ }
++ ++nfuncs;
++ ngroups += of_get_child_count(child);
+ }
+
-+ if (!nfuncs && !ngpios) {
-+ dev_err(&pdev->dev, "No pin functions or gpio subdevices defined\n");
++ if (!nfuncs) {
++ dev_err(&pdev->dev, "No pin functions defined\n");
+ return -EINVAL;
+ }
+
+ info->nfunctions = nfuncs;
+ info->functions = devm_kzalloc(&pdev->dev,
-+ nfuncs * sizeof(struct imx_pmx_func), GFP_KERNEL);
++ nfuncs * sizeof(struct imx1_pmx_func), GFP_KERNEL);
+
+ info->ngroups = ngroups;
+ info->groups = devm_kzalloc(&pdev->dev,
-+ ngroups * sizeof(struct imx_pin_group), GFP_KERNEL);
++ ngroups * sizeof(struct imx1_pin_group), GFP_KERNEL);
+
-+ pctl->num_gpio_childs = ngpios;
-+ pctl->gpio_dev = devm_kzalloc(&pdev->dev,
-+ sizeof(*pctl->gpio_dev) * ngpios, GFP_KERNEL);
-+ pctl->gpio_pdata = devm_kzalloc(&pdev->dev,
-+ sizeof(*pctl->gpio_pdata) * ngpios, GFP_KERNEL);
+
-+ if (!info->functions || !info->groups || !pctl->gpio_dev ||
-+ !pctl->gpio_pdata)
++ if (!info->functions || !info->groups)
+ return -ENOMEM;
+
+ for_each_child_of_node(np, child) {
-+ if (!of_device_is_compatible(child, "fsl,imx21-gpio") &&
-+ !of_device_is_compatible(child, "fsl,imx1-gpio")) {
-+ ret = imx1_pinctrl_parse_functions(child, info,
-+ ifunc++);
-+ if (ret)
-+ goto child_err;
-+ } else if (of_device_is_available(child)) {
-+ ret = imx1_pinctrl_parse_gpio(pdev, pctl, child,
-+ igpio++, base_addr);
-+ if (ret)
-+ goto child_err;
-+ }
++ ret = imx1_pinctrl_parse_functions(child, info, ifunc++);
++ if (ret == -ENOMEM)
++ return -ENOMEM;
+ }
+
+ return 0;
-+child_err:
-+ while (igpio--)
-+ put_device(&pctl->gpio_dev[igpio]->dev);
-+ return ret;
+}
+
+int imx1_pinctrl_core_probe(struct platform_device *pdev,
-+ struct imx_pinctrl_soc_info *info)
++ struct imx1_pinctrl_soc_info *info)
+{
+ struct imx1_pinctrl *ipctl;
+ struct resource *res;
@@ -660,16 +656,12 @@ index 0000000..318b976
+ if (!ipctl)
+ return -ENOMEM;
+
-+ info->pin_regs = devm_kzalloc(&pdev->dev, sizeof(*info->pin_regs) *
-+ info->npins, GFP_KERNEL);
-+ if (!info->pin_regs)
-+ return -ENOMEM;
-+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return -ENOENT;
+
-+ ipctl->base = devm_ioremap_resource(&pdev->dev, res);
++ ipctl->base = devm_ioremap_nocache(&pdev->dev, res->start,
++ resource_size(res));
+ if (IS_ERR(ipctl->base))
+ return PTR_ERR(ipctl->base);
+
@@ -701,10 +693,6 @@ index 0000000..318b976
+int imx1_pinctrl_core_remove(struct platform_device *pdev)
+{
+ struct imx1_pinctrl *ipctl = platform_get_drvdata(pdev);
-+ int i;
-+
-+ for (i = 0; i != ipctl->num_gpio_childs; ++i)
-+ put_device(&ipctl->gpio_dev[i]->dev);
+
+ pinctrl_unregister(ipctl->pctl);
+
@@ -712,10 +700,10 @@ index 0000000..318b976
+}
diff --git a/drivers/pinctrl/pinctrl-imx1.h b/drivers/pinctrl/pinctrl-imx1.h
new file mode 100644
-index 0000000..63161f1
+index 0000000..692a54c
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-imx1.h
-@@ -0,0 +1,23 @@
+@@ -0,0 +1,73 @@
+/*
+ * IMX pinmux core definitions
+ *
@@ -733,14 +721,64 @@ index 0000000..63161f1
+#ifndef __DRIVERS_PINCTRL_IMX1_H
+#define __DRIVERS_PINCTRL_IMX1_H
+
-+#include "pinctrl-imx.h"
++struct platform_device;
++
++/**
++ * struct imx1_pin - describes an IMX1/21/27 pin.
++ * @pin_id: ID of the described pin.
++ * @mux_id: ID of the mux setup.
++ * @config: Configuration of the pin (currently only pullup-enable).
++ */
++struct imx1_pin {
++ unsigned int pin_id;
++ unsigned int mux_id;
++ unsigned long config;
++};
++
++/**
++ * struct imx1_pin_group - describes an IMX pin group
++ * @name: the name of this specific pin group
++ * @pins: an array of imx1_pin structs used in this group
++ * @npins: the number of pins in this group array, i.e. the number of
++ * elements in .pins so we can iterate over that array
++ */
++struct imx1_pin_group {
++ const char *name;
++ unsigned int *pin_ids;
++ struct imx1_pin *pins;
++ unsigned npins;
++};
++
++/**
++ * struct imx1_pmx_func - describes IMX pinmux functions
++ * @name: the name of this specific function
++ * @groups: corresponding pin groups
++ * @num_groups: the number of groups
++ */
++struct imx1_pmx_func {
++ const char *name;
++ const char **groups;
++ unsigned num_groups;
++};
++
++struct imx1_pinctrl_soc_info {
++ struct device *dev;
++ const struct pinctrl_pin_desc *pins;
++ unsigned int npins;
++ struct imx1_pin_group *groups;
++ unsigned int ngroups;
++ struct imx1_pmx_func *functions;
++ unsigned int nfunctions;
++};
++
++#define IMX_PINCTRL_PIN(pin) PINCTRL_PIN(pin, #pin)
+
+int imx1_pinctrl_core_probe(struct platform_device *pdev,
-+ struct imx_pinctrl_soc_info *info);
++ struct imx1_pinctrl_soc_info *info);
+int imx1_pinctrl_core_remove(struct platform_device *pdev);
+#endif /* __DRIVERS_PINCTRL_IMX1_H */
--
-1.8.3.2
+1.8.4.rc3
_______________________________________________
diff --git a/patches/linux/3.11/0206-d-linaro-imx27-pinctrl-imx27_pincontrol_driver.patch b/patches/linux/3.12/0206-b-linaro-imx27-imx27_pincontrol_driver.patch
similarity index 94%
copy from patches/linux/3.11/0206-d-linaro-imx27-pinctrl-imx27_pincontrol_driver.patch
copy to patches/linux/3.12/0206-b-linaro-imx27-imx27_pincontrol_driver.patch
index 4c110c1..daa7dde 100644
--- a/patches/linux/3.11/0206-d-linaro-imx27-pinctrl-imx27_pincontrol_driver.patch
+++ b/patches/linux/3.12/0206-b-linaro-imx27-imx27_pincontrol_driver.patch
@@ -1,60 +1,60 @@
+imx27 pincontrol driver using the imx1 core driver. The DT bindings are
+similar to other imx pincontrol drivers.
+
Signed-off-by: Markus Pargmann <mp...@pe...>
---
- .../bindings/pinctrl/fsl,imx27-pinctrl.txt | 53 +++
+ .../bindings/pinctrl/fsl,imx27-pinctrl.txt | 50 +++
drivers/pinctrl/Kconfig | 8 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-imx27.c | 477 +++++++++++++++++++++
- 4 files changed, 539 insertions(+)
+ 4 files changed, 536 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt
create mode 100644 drivers/pinctrl/pinctrl-imx27.c
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt
new file mode 100644
-index 0000000..3352d94
+index 0000000..6619968
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt
-@@ -0,0 +1,53 @@
+@@ -0,0 +1,50 @@
+* Freescale IMX27 IOMUX Controller
+
-+Please refer to fsl,imx-pinctrl.txt in this directory for common binding part
-+and usage.
-+
-+The iomuxc driver node can have pin configuration and gpio subnodes. gpio
-+nodes defined as childs will share the registers with the iomuxc driver.
-+Please have a look into
-+Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt for information about
-+the gpio properties.
-+
+Required properties:
+- compatible: "fsl,imx27-iomuxc"
+
++The iomuxc driver node should define subnodes containing of pinctrl configuration subnodes.
++
+Required properties for pin configuration node:
+- fsl,pins: three integers array, represents a group of pins mux and config
+ setting. The format is fsl,pins = <PIN MUX_ID CONFIG>. PIN and MUX_ID are
+ defined as macros in arch/arm/boot/dts/imx27-pinfunc.h. CONFIG can be 0 or
+ 1, meaning Pullup disable/enable.
++ PIN is a integer between 0 and 0xbf. imx27 has 6 ports with 32 configurable
++ configurable pins each. PIN is PORT * 32 + PORT_PIN, PORT_PIN is the pin
++ number on the specific port (between 0 and 31).
++ MUX_ID is
++ function + (direction << 2) + (gpio_oconf << 4) + (gpio_iconfa << 8) + (gpio_iconfb << 10)
++ function: 0 - Primary function
++ 1 - Alternate function
++ 2 - GPIO
++ direction: 0 - Input
++ 1 - Output
++ gpio_oconf: 0 - A_IN
++ 1 - B_IN
++ 2 - C_IN
++ 3 - Data Register
++ gpio_iconfa/b: 0 - GPIO_IN
++ 1 - Interrupt Status Register
++ 2 - 0
++ 3 - 1
+
+Example:
+
+iomuxc: iomuxc@10015000 {
+ compatible = "fsl,imx27-iomuxc";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
+ reg = <0x10015000 0x600>;
+
-+ gpio1: gpio@10015000 {
-+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
-+ reg = <0x10015000>;
-+ interrupts = <8>;
-+ gpio-controller;
-+ #gpio-cells = <2>;
-+ interrupt-controller;
-+ #interrupt-cells = <2>;
-+ };
-+
-+ ...
-+
+ uart {
+ pinctrl_uart1: uart-1 {
+ fsl,pins = <
@@ -101,7 +101,7 @@ index 43bb05e..d08bf87 100644
obj-$(CONFIG_PINCTRL_IMX53) += pinctrl-imx53.o
diff --git a/drivers/pinctrl/pinctrl-imx27.c b/drivers/pinctrl/pinctrl-imx27.c
new file mode 100644
-index 0000000..aede821
+index 0000000..417c992
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-imx27.c
@@ -0,0 +1,477 @@
@@ -537,7 +537,7 @@ index 0000000..aede821
+ IMX_PINCTRL_PIN(MX27_PAD_UNUSED22),
+};
+
-+static struct imx_pinctrl_soc_info imx27_pinctrl_info = {
++static struct imx1_pinctrl_soc_info imx27_pinctrl_info = {
+ .pins = imx27_pinctrl_pads,
+ .npins = ARRAY_SIZE(imx27_pinctrl_pads),
+};
@@ -583,7 +583,7 @@ index 0000000..aede821
+MODULE_DESCRIPTION("Freescale IMX27 pinctrl driver");
+MODULE_LICENSE("GPL v2");
--
-1.8.3.2
+1.8.4.rc3
_______________________________________________
diff --git a/patches/linux/3.11/0206-e-linaro-imx27-dts-pin_functions.patch b/patches/linux/3.12/0206-c-imx-dts-pin_functions.patch
similarity index 98%
copy from patches/linux/3.11/0206-e-linaro-imx27-dts-pin_functions.patch
copy to patches/linux/3.12/0206-c-imx-dts-pin_functions.patch
index 9ba7d1a..b371257 100644
--- a/patches/linux/3.11/0206-e-linaro-imx27-dts-pin_functions.patch
+++ b/patches/linux/3.12/0206-c-imx-dts-pin_functions.patch
@@ -1,16 +1,16 @@
Signed-off-by: Markus Pargmann <mp...@pe...>
---
- arch/arm/boot/dts/imx27-pinfunc.h | 520 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 520 insertions(+)
+ arch/arm/boot/dts/imx27-pinfunc.h | 524 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 524 insertions(+)
create mode 100644 arch/arm/boot/dts/imx27-pinfunc.h
diff --git a/arch/arm/boot/dts/imx27-pinfunc.h b/arch/arm/boot/dts/imx27-pinfunc.h
new file mode 100644
-index 0000000..f3b4c55
+index 0000000..32bfcc2
--- /dev/null
+++ b/arch/arm/boot/dts/imx27-pinfunc.h
-@@ -0,0 +1,520 @@
+@@ -0,0 +1,524 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
@@ -25,8 +25,8 @@ index 0000000..f3b4c55
+
+/*
+ * The pin function ID is a tuple of
-+ * <pin mux_config>
-+ * mux_config consists of
++ * <pin mux_id>
++ * mux_id consists of
+ * function + (direction << 2) + (gpio_oconf << 4) + (gpio_iconfa << 8) + (gpio_iconfb << 10)
+ *
+ * function: 0 - Primary function
@@ -42,6 +42,10 @@ index 0000000..f3b4c55
+ * 1 - Interrupt Status Register
+ * 2 - 0
+ * 3 - 1
++ *
++ * 'pin' is an integer between 0 and 0xbf. imx27 has 6 ports with 32 configurable
++ * configurable pins each. 'pin' is PORT * 32 + PORT_PIN, PORT_PIN is the pin
++ * number on the specific port (between 0 and 31).
+ */
+
+#define MX27_PAD_USBH2_CLK__USBH2_CLK 0x00 0x000
@@ -532,7 +536,7 @@ index 0000000..f3b4c55
+
+#endif /* __DTS_IMX27_PINFUNC_H */
--
-1.8.3.2
+1.8.4.rc3
_______________________________________________
diff --git a/patches/linux/3.12/0206-d-linaro-dts-imx27-pinctrl.patch b/patches/linux/3.12/0206-d-linaro-dts-imx27-pinctrl.patch
new file mode 100644
index 0000000..4bd2eea
--- /dev/null
+++ b/patches/linux/3.12/0206-d-linaro-dts-imx27-pinctrl.patch
@@ -0,0 +1,141 @@
+
+Pinctrl driver node and pin group definitions for other driver nodes.
+
+Signed-off-by: Markus Pargmann <mp...@pe...>
+---
+ arch/arm/boot/dts/imx27.dtsi | 102 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 102 insertions(+)
+
+diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi
+index 76cd89f..863640b 100644
+--- a/arch/arm/boot/dts/imx27.dtsi
++++ b/arch/arm/boot/dts/imx27.dtsi
+@@ -10,6 +10,7 @@
+ */
+
+ #include "skeleton.dtsi"
++#include "imx27-pinfunc.h"
+
+ / {
+ aliases {
+@@ -235,6 +236,12 @@
+ status = "disabled";
+ };
+
++ iomuxc: iomuxc@10015000 {
++ compatible = "fsl,imx27-iomuxc";
++ reg = <0x10015000 0x600>;
++
++ };
++
+ gpio1: gpio@10015000 {
+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
+ reg = <0x10015000 0x100>;
+@@ -466,3 +473,98 @@
+ };
+ };
+ };
++
++&iomuxc {
++ fec {
++ pinctrl_fec1_1: fec1-1 {
++ fsl,pins = <
++ MX27_PAD_SD3_CMD__FEC_TXD0 0x0
++ MX27_PAD_SD3_CLK__FEC_TXD1 0x0
++ MX27_PAD_ATA_DATA0__FEC_TXD2 0x0
++ MX27_PAD_ATA_DATA1__FEC_TXD3 0x0
++ MX27_PAD_ATA_DATA2__FEC_RX_ER 0x0
++ MX27_PAD_ATA_DATA3__FEC_RXD1 0x0
++ MX27_PAD_ATA_DATA4__FEC_RXD2 0x0
++ MX27_PAD_ATA_DATA5__FEC_RXD3 0x0
++ MX27_PAD_ATA_DATA6__FEC_MDIO 0x0
++ MX27_PAD_ATA_DATA7__FEC_MDC 0x0
++ MX27_PAD_ATA_DATA8__FEC_CRS 0x0
++ MX27_PAD_ATA_DATA9__FEC_TX_CLK 0x0
++ MX27_PAD_ATA_DATA10__FEC_RXD0 0x0
++ MX27_PAD_ATA_DATA11__FEC_RX_DV 0x0
++ MX27_PAD_ATA_DATA12__FEC_RX_CLK 0x0
++ MX27_PAD_ATA_DATA13__FEC_COL 0x0
++ MX27_PAD_ATA_DATA14__FEC_TX_ER 0x0
++ MX27_PAD_ATA_DATA15__FEC_TX_EN 0x0
++ >;
++ };
++ };
++
++ i2c {
++ pinctrl_i2c1_1: i2c1-1 {
++ fsl,pins = <
++ MX27_PAD_I2C_DATA__I2C_DATA 0x0
++ MX27_PAD_I2C_CLK__I2C_CLK 0x0
++ >;
++ };
++
++ pinctrl_i2c2_1: i2c2-1 {
++ fsl,pins = <
++ MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
++ MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
++ >;
++ };
++ };
++
++ owire {
++ pinctrl_owire1_1: owire1-1 {
++ fsl,pins = <
++ MX27_PAD_RTCK__OWIRE 0x0
++ >;
++ };
++ };
++
++ uart {
++ pinctrl_uart1_1: uart1-1 {
++ fsl,pins = <
++ MX27_PAD_UART1_TXD__UART1_TXD 0x0
++ MX27_PAD_UART1_RXD__UART1_RXD 0x0
++ >;
++ };
++
++ pinctrl_uart1_rtscts_1: uart1-rtscts-1 {
++ fsl,pins = <
++ MX27_PAD_UART1_CTS__UART1_CTS 0x0
++ MX27_PAD_UART1_RTS__UART1_RTS 0x0
++ >;
++ };
++
++ pinctrl_uart2_1: uart2-1 {
++ fsl,pins = <
++ MX27_PAD_UART2_TXD__UART2_TXD 0x0
++ MX27_PAD_UART2_RXD__UART2_RXD 0x0
++ >;
++ };
++
++ pinctrl_uart2_rtscts_1: uart2-rtscts-1 {
++ fsl,pins = <
++ MX27_PAD_UART2_CTS__UART2_CTS 0x0
++ MX27_PAD_UART2_RTS__UART2_RTS 0x0
++ >;
++ };
++
++ pinctrl_uart3_1: uart3-1 {
++ fsl,pins = <
++ MX27_PAD_UART3_TXD__UART3_TXD 0x0
++ MX27_PAD_UART3_RXD__UART3_RXD 0x0
++ >;
++ };
++
++ pinctrl_uart3_rtscts_1: uart3-rtscts-1 {
++ fsl,pins = <
++ MX27_PAD_UART3_CTS__UART3_CTS 0x0
++ MX27_PAD_UART3_RTS__UART3_RTS 0x0
++ >;
++ };
++ };
++};
+--
+1.8.4.rc3
+
+
+_______________________________________________
+linux-arm-kernel mailing list
+lin...@li...
+http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
+
diff --git a/patches/linux/3.11/0206-g-linaro-imx27-enable_pinctrl.patch b/patches/linux/3.12/0206-e-linaro-imx27-enable_pinctrl.patch
similarity index 98%
copy from patches/linux/3.11/0206-g-linaro-imx27-enable_pinctrl.patch
copy to patches/linux/3.12/0206-e-linaro-imx27-enable_pinctrl.patch
index fd7d079..3bdc0cb 100644
--- a/patches/linux/3.11/0206-g-linaro-imx27-enable_pinctrl.patch
+++ b/patches/linux/3.12/0206-e-linaro-imx27-enable_pinctrl.patch
@@ -18,7 +18,7 @@ index f7a5ad1..52c5e7e 100644
config SOC_IMX31
bool
--
-1.8.3.2
+1.8.4.rc3
_______________________________________________
diff --git a/patches/linux/3.11/0207-armadeus-apf27dev-add_hog_pinctrl.patch b/patches/linux/3.12/0207-armadeus-apf27dev-add_hog_pinctrl.patch
similarity index 100%
copy from patches/linux/3.11/0207-armadeus-apf27dev-add_hog_pinctrl.patch
copy to patches/linux/3.12/0207-armadeus-apf27dev-add_hog_pinctrl.patch
diff --git a/patches/linux/3.12/0209-armadeus-imx27_dtsi-add_framebuffer_pinctrl.patch b/patches/linux/3.12/0209-armadeus-imx27_dtsi-add_framebuffer_pinctrl.patch
new file mode 100644
index 0000000..2742307
--- /dev/null
+++ b/patches/linux/3.12/0209-armadeus-imx27_dtsi-add_framebuffer_pinctrl.patch
@@ -0,0 +1,48 @@
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+Index: linux-3.12-rc1/arch/arm/boot/dts/imx27.dtsi
+===================================================================
+--- linux-3.12-rc1.orig/arch/arm/boot/dts/imx27.dtsi
++++ linux-3.12-rc1/arch/arm/boot/dts/imx27.dtsi
+@@ -526,6 +526,40 @@
+ };
+ };
+
++ imxfb {
++ pinctrl_imxfb1_1: imxfb1-1 {
++ fsl,pins = <
++ MX27_PAD_LSCLK__LSCLK 0x0
++ MX27_PAD_LD0__LD0 0x0
++ MX27_PAD_LD1__LD1 0x0
++ MX27_PAD_LD2__LD2 0x0
++ MX27_PAD_LD3__LD3 0x0
++ MX27_PAD_LD4__LD4 0x0
++ MX27_PAD_LD5__LD5 0x0
++ MX27_PAD_LD6__LD6 0x0
++ MX27_PAD_LD7__LD7 0x0
++ MX27_PAD_LD8__LD8 0x0
++ MX27_PAD_LD9__LD9 0x0
++ MX27_PAD_LD10__LD10 0x0
++ MX27_PAD_LD11__LD11 0x0
++ MX27_PAD_LD12__LD12 0x0
++ MX27_PAD_LD13__LD13 0x0
++ MX27_PAD_LD14__LD14 0x0
++ MX27_PAD_LD15__LD15 0x0
++ MX27_PAD_LD16__LD16 0x0
++ MX27_PAD_LD17__LD17 0x0
++ MX27_PAD_REV__REV 0x0
++ MX27_PAD_CLS__CLS 0x0
++ MX27_PAD_PS__PS 0x0
++ MX27_PAD_SPL_SPR__SPL_SPR 0x0
++ MX27_PAD_HSYNC__HSYNC 0x0
++ MX27_PAD_VSYNC__VSYNC 0x0
++ MX27_PAD_CONTRAST__CONTRAST 0x0
++ MX27_PAD_OE_ACD__OE_ACD 0x0
++ >;
++ };
++ };
++
+ owire {
+ pinctrl_owire1_1: owire1-1 {
+ fsl,pins = <
diff --git a/patches/linux/3.11/0210-armadeus-imx27-apf27dev-add_imxfb_support.patch b/patches/linux/3.12/0210-armadeus-imx27-apf27dev-add_imxfb_support.patch
similarity index 100%
copy from patches/linux/3.11/0210-armadeus-imx27-apf27dev-add_imxfb_support.patch
copy to patches/linux/3.12/0210-armadeus-imx27-apf27dev-add_imxfb_support.patch
diff --git a/patches/linux/3.11/0211-linaro-imx-framebuffer-Add_feature_to_setup_PWM_Contrast_Control_Register.patch b/patches/linux/3.12/0211-linaro-imx-framebuffer-Add_feature_to_setup_PWM_Contrast_Control_Register.patch
similarity index 100%
copy from patches/linux/3.11/0211-linaro-imx-framebuffer-Add_feature_to_setup_PWM_Contrast_Control_Register.patch
copy to patches/linux/3.12/0211-linaro-imx-framebuffer-Add_feature_to_setup_PWM_Contrast_Control_Register.patch
diff --git a/patches/linux/3.11/0212-armadeus-imx27-fix_cspi_per_clk_id.patch b/patches/linux/3.12/0212-armadeus-imx27-fix_cspi_per_clk_id.patch
similarity index 100%
copy from patches/linux/3.11/0212-armadeus-imx27-fix_cspi_per_clk_id.patch
copy to patches/linux/3.12/0212-armadeus-imx27-fix_cspi_per_clk_id.patch
diff --git a/patches/linux/3.12/0213-armadeus-add_cspi_pinctrl.patch b/patches/linux/3.12/0213-armadeus-add_cspi_pinctrl.patch
new file mode 100644
index 0000000..744c821
--- /dev/null
+++ b/patches/linux/3.12/0213-armadeus-add_cspi_pinctrl.patch
@@ -0,0 +1,40 @@
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+Index: linux-3.12-rc1/arch/arm/boot/dts/imx27.dtsi
+===================================================================
+--- linux-3.12-rc1.orig/arch/arm/boot/dts/imx27.dtsi
++++ linux-3.12-rc1/arch/arm/boot/dts/imx27.dtsi
+@@ -485,6 +485,32 @@
+ };
+
+ &iomuxc {
++ cspi {
++ pinctrl_cspi1_1: cspi1-1 {
++ fsl,pins = <
++ MX27_PAD_CSPI1_SCLK__CSPI1_SCLK 0x0
++ MX27_PAD_CSPI1_MISO__CSPI1_MISO 0x0
++ MX27_PAD_CSPI1_MOSI__CSPI1_MOSI 0x0
++ >;
++ };
++
++ pinctrl_cspi2_1: cspi2-1 {
++ fsl,pins = <
++ MX27_PAD_CSPI2_SCLK__CSPI2_SCLK 0x0
++ MX27_PAD_CSPI2_MISO__CSPI2_MISO 0x0
++ MX27_PAD_CSPI2_MOSI__CSPI2_MOSI 0x0
++ >;
++ };
++
++ pinctrl_cspi3_1: cspi3-1 {
++ fsl,pins = <
++ MX27_PAD_SD1_CLK__CSPI3_SCLK 0x0
++ MX27_PAD_SD1_D0__CSPI3_MISO 0x0
++ MX27_PAD_SD1_CMD__CSPI3_MOSI 0x0
++ >;
++ };
++ };
++
+ fec {
+ pinctrl_fec1_1: fec1-1 {
+ fsl,pins = <
diff --git a/patches/linux/3.12/0214-armadeus-add_cspi_and_sdhc_pinctrl.patch b/patches/linux/3.12/0214-armadeus-add_cspi_and_sdhc_pinctrl.patch
new file mode 100644
index 0000000..df6eb99
--- /dev/null
+++ b/patches/linux/3.12/0214-armadeus-add_cspi_and_sdhc_pinctrl.patch
@@ -0,0 +1,27 @@
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+Index: linux-3.12-rc1/arch/arm/boot/dts/imx27.dtsi
+===================================================================
+--- linux-3.12-rc1.orig/arch/arm/boot/dts/imx27.dtsi
++++ linux-3.12-rc1/arch/arm/boot/dts/imx27.dtsi
+@@ -594,6 +594,19 @@
+ };
+ };
+
++ sdhc {
++ pinctrl_sdhc2_1: sdhc2-1 {
++ fsl,pins = <
++ MX27_PAD_SD2_D0__SD2_D0 0x0
++ MX27_PAD_SD2_D1__SD2_D1 0x0
++ MX27_PAD_SD2_D2__SD2_D2 0x0
++ MX27_PAD_SD2_D3__SD2_D3 0x0
++ MX27_PAD_SD2_CMD__SD2_CMD 0x0
++ MX27_PAD_SD2_CLK__SD2_CLK 0x0
++ >;
++ };
++ };
++
+ uart {
+ pinctrl_uart1_1: uart1-1 {
+ fsl,pins = <
diff --git a/patches/linux/3.11/0215-armadeus-imx27-apf27dev-add_pinctrl_for_cspi_node.patch b/patches/linux/3.12/0215-armadeus-imx27-apf27dev-add_pinctrl_for_cspi_node.patch
similarity index 100%
copy from patches/linux/3.11/0215-armadeus-imx27-apf27dev-add_pinctrl_for_cspi_node.patch
copy to patches/linux/3.12/0215-armadeus-imx27-apf27dev-add_pinctrl_for_cspi_node.patch
diff --git a/patches/linux/3.11/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch b/patches/linux/3.12/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch
similarity index 54%
copy from patches/linux/3.11/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch
copy to patches/linux/3.12/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch
index 3ec5dee..115962e 100644
--- a/patches/linux/3.11/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch
+++ b/patches/linux/3.12/0216-armadeus-imx27-apf27dev-add_sdhc_support.patch
@@ -1,15 +1,15 @@
Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
---
-Index: linux-3.11-rc4/arch/arm/boot/dts/imx27-apf27dev.dts
+Index: linux-3.12-rc1/arch/arm/boot/dts/imx27-apf27dev.dts
===================================================================
---- linux-3.11-rc4.orig/arch/arm/boot/dts/imx27-apf27dev.dts
-+++ linux-3.11-rc4/arch/arm/boot/dts/imx27-apf27dev.dts
-@@ -108,7 +108,18 @@
+--- linux-3.12-rc1.orig/arch/arm/boot/dts/imx27-apf27dev.dts
++++ linux-3.12-rc1/arch/arm/boot/dts/imx27-apf27dev.dts
+@@ -108,7 +108,16 @@
MX27_PAD_CSPI2_SS0__GPIO4_21 0
MX27_PAD_CSPI2_SS1__GPIO4_20 0
MX27_PAD_CSI_D5__GPIO2_17 0
-+ MX27_PAD_CSI_MCLK__GPIO2_15 0
++ MX27_PAD_TOUT__GPIO3_14 0
>;
};
};
@@ -17,9 +17,7 @@ Index: linux-3.11-rc4/arch/arm/boot/dts/imx27-apf27dev.dts
+
+&sdhci2 {
+ bus-width = <4>;
-+ cd-gpios = <&gpio2 15 0>;
-+ /*wp-gpios = <&gpio3 28 0>;
-+ vmmc-supply = <&vmmc1_reg>;*/
++ cd-gpios = <&gpio3 14 0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sdhc2>;
+ status = "okay";
diff --git a/patches/linux/3.10/0322-armadeus-add_mach_fpga_h.patch b/patches/linux/3.12/0322-armadeus-add_mach_fpga_h.patch
similarity index 100%
copy from patches/linux/3.10/0322-armadeus-add_mach_fpga_h.patch
copy to patches/linux/3.12/0322-armadeus-add_mach_fpga_h.patch
diff --git a/patches/linux/3.10/0323-armadeus-mach_fpga_add_dt_support_for_mx27.patch b/patches/linux/3.12/0323-armadeus-mach_fpga_add_dt_support_for_mx27.patch
similarity index 100%
copy from patches/linux/3.10/0323-armadeus-mach_fpga_add_dt_support_for_mx27.patch
copy to patches/linux/3.12/0323-armadeus-mach_fpga_add_dt_support_for_mx27.patch
diff --git a/patches/linux/3.11/0400-Add-apf51-basic-dt-support.patch b/patches/linux/3.12/0400-Add-apf51-basic-dt-support.patch
similarity index 100%
copy from patches/linux/3.11/0400-Add-apf51-basic-dt-support.patch
copy to patches/linux/3.12/0400-Add-apf51-basic-dt-support.patch
diff --git a/patches/linux/3.11/0401-armadeus-add_apf51dev_baseboard.patch b/patches/linux/3.12/0401-armadeus-add_apf51dev_baseboard.patch
similarity index 100%
copy from patches/linux/3.11/0401-armadeus-add_apf51dev_baseboard.patch
copy to patches/linux/3.12/0401-armadeus-add_apf51dev_baseboard.patch
diff --git a/patches/linux/3.10/0404-armadeus-fix_nand_ecc_oob.patch b/patches/linux/3.12/0404-armadeus-fix_nand_ecc_oob.patch
similarity index 81%
copy from patches/linux/3.10/0404-armadeus-fix_nand_ecc_oob.patch
copy to patches/linux/3.12/0404-armadeus-fix_nand_ecc_oob.patch
index 8e7912a..e88a820 100644
--- a/patches/linux/3.10/0404-armadeus-fix_nand_ecc_oob.patch
+++ b/patches/linux/3.12/0404-armadeus-fix_nand_ecc_oob.patch
@@ -1,12 +1,8 @@
-Add OOB and bad block table management to the V3 mxc_nand driver
-
-Signed-off-by: Nicolas Colombain <nic...@ar...>
-
-Index: linux-3.8-rc1/drivers/mtd/nand/mxc_nand.c
+Index: linux-3.12-rc1/drivers/mtd/nand/mxc_nand.c
===================================================================
---- linux-3.8-rc1.orig/drivers/mtd/nand/mxc_nand.c 2012-12-22 02:19:00.000000000 +0100
-+++ linux-3.8-rc1/drivers/mtd/nand/mxc_nand.c 2013-01-04 15:03:40.000000000 +0100
-@@ -266,6 +266,18 @@
+--- linux-3.12-rc1.orig/drivers/mtd/nand/mxc_nand.c
++++ linux-3.12-rc1/drivers/mtd/nand/mxc_nand.c
+@@ -266,6 +266,18 @@ static struct nand_ecclayout nandv2_hw_e
}
};
@@ -22,10 +18,10 @@ Index: linux-3.8-rc1/drivers/mtd/nand/mxc_nand.c
+ .oobfree = { {2, 4}, {16, 56}, {80, 56}, {144, 56}, {208, 48} },
+};
+
- static const char const *part_probes[] = {
+ static const char * const part_probes[] = {
"cmdlinepart", "RedBoot", "ofpart", NULL };
-@@ -1147,6 +1159,28 @@
+@@ -1158,6 +1170,28 @@ static struct nand_bbt_descr bbt_mirror_
.pattern = mirror_pattern,
};
@@ -54,7 +50,7 @@ Index: linux-3.8-rc1/drivers/mtd/nand/mxc_nand.c
/* v1 + irqpending_quirk: i.MX21 */
static const struct mxc_nand_devtype_data imx21_nand_devtype_data = {
.preset = preset_v1,
-@@ -1236,7 +1270,7 @@
+@@ -1247,7 +1281,7 @@ static const struct mxc_nand_devtype_dat
.irq_control = irq_control_v3,
.get_ecc_status = get_ecc_status_v3,
.ecclayout_512 = &nandv2_hw_eccoob_smallpage,
@@ -63,7 +59,7 @@ Index: linux-3.8-rc1/drivers/mtd/nand/mxc_nand.c
.ecclayout_4k = &nandv2_hw_eccoob_smallpage, /* XXX: needs fix */
.select_chip = mxc_nand_select_chip_v1_v3,
.correct_data = mxc_nand_correct_data_v2_v3,
-@@ -1482,8 +1516,13 @@
+@@ -1489,8 +1523,13 @@ static int mxcnd_probe(struct platform_d
this->options |= NAND_BUSWIDTH_16;
if (host->pdata.flash_bbt) {
diff --git a/patches/linux/3.10/0405-armadeus-esdhc-imx-add_possibility_to_deactivate_SDIO_interrupt.patch b/patches/linux/3.12/0405-armadeus-esdhc-imx-add_possibility_to_deactivate_SDIO_interrupt.patch
similarity index 100%
copy from patches/linux/3.10/0405-armadeus-esdhc-imx-add_possibility_to_deactivate_SDIO_interrupt.patch
copy to patches/lin...
[truncated message content] |