summaryrefslogtreecommitdiff
path: root/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'target/arm')
-rw-r--r--target/arm/raspberry-pi/patches/3.17.7/raspberry-pi.patch (renamed from target/arm/raspberry-pi/patches/3.17.5/raspberry-pi.patch)0
-rw-r--r--target/arm/solidrun-imx6/patches/3.17.5/rmk.patch7601
2 files changed, 0 insertions, 7601 deletions
diff --git a/target/arm/raspberry-pi/patches/3.17.5/raspberry-pi.patch b/target/arm/raspberry-pi/patches/3.17.7/raspberry-pi.patch
index 9e8b16382..9e8b16382 100644
--- a/target/arm/raspberry-pi/patches/3.17.5/raspberry-pi.patch
+++ b/target/arm/raspberry-pi/patches/3.17.7/raspberry-pi.patch
diff --git a/target/arm/solidrun-imx6/patches/3.17.5/rmk.patch b/target/arm/solidrun-imx6/patches/3.17.5/rmk.patch
deleted file mode 100644
index a0e0e7495..000000000
--- a/target/arm/solidrun-imx6/patches/3.17.5/rmk.patch
+++ /dev/null
@@ -1,7601 +0,0 @@
-diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6dl-hummingboard.dts linux-3.16.6/arch/arm/boot/dts/imx6dl-hummingboard.dts
---- linux-3.16.6.orig/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/arch/arm/boot/dts/imx6dl-hummingboard.dts 2014-10-23 12:37:45.114220003 -0500
-@@ -56,15 +56,32 @@
- };
- };
-
-+ sound-sgtl5000 {
-+ audio-codec = <&sgtl5000>;
-+ audio-routing =
-+ "MIC_IN", "Mic Jack",
-+ "Mic Jack", "Mic Bias",
-+ "Headphone Jack", "HP_OUT";
-+ compatible = "fsl,imx-audio-sgtl5000";
-+ model = "On-board Codec";
-+ mux-ext-port = <5>;
-+ mux-int-port = <1>;
-+ ssi-controller = <&ssi1>;
-+ };
-+
- sound-spdif {
- compatible = "fsl,imx-audio-spdif";
-- model = "imx-spdif";
-+ model = "On-board SPDIF";
- /* IMX6 doesn't implement this yet */
- spdif-controller = <&spdif>;
- spdif-out;
- };
- };
-
-+&audmux {
-+ status = "okay";
-+};
-+
- &can1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard_flexcan1>;
-@@ -81,16 +98,24 @@
- &i2c1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard_i2c1>;
--
-- /*
-- * Not fitted on Carrier-1 board... yet
- status = "okay";
-
-+ /* Pro model */
- rtc: pcf8523@68 {
- compatible = "nxp,pcf8523";
- reg = <0x68>;
- };
-- */
-+
-+ /* Pro model */
-+ sgtl5000: sgtl5000@0a {
-+ clocks = <&clks 201>;
-+ compatible = "fsl,sgtl5000";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard_sgtl5000>;
-+ reg = <0x0a>;
-+ VDDA-supply = <&reg_3p3v>;
-+ VDDIO-supply = <&reg_3p3v>;
-+ };
- };
-
- &i2c2 {
-@@ -135,6 +160,16 @@
- >;
- };
-
-+ pinctrl_hummingboard_sgtl5000: hummingboard-sgtl5000 {
-+ fsl,pins = <
-+ MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0 /*brk*/
-+ MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 /*ok*/
-+ MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0 /*brk*/
-+ MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0 /*ok*/
-+ MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0
-+ >;
-+ };
-+
- pinctrl_hummingboard_spdif: hummingboard-spdif {
- fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
- };
-@@ -180,12 +215,19 @@
- status = "okay";
- };
-
-+&ssi1 {
-+ fsl,mode = "i2s-slave";
-+ status = "okay";
-+};
-+
- &usbh1 {
-+ disable-over-current;
- vbus-supply = <&reg_usbh1_vbus>;
- status = "okay";
- };
-
- &usbotg {
-+ disable-over-current;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard_usbotg_id>;
- vbus-supply = <&reg_usbotg_vbus>;
-diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6q-cubox-i.dts linux-3.16.6/arch/arm/boot/dts/imx6q-cubox-i.dts
---- linux-3.16.6.orig/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/arch/arm/boot/dts/imx6q-cubox-i.dts 2014-10-23 12:26:42.106220014 -0500
-@@ -13,4 +13,8 @@
-
- &sata {
- status = "okay";
-+ fsl,transmit-level-mV = <1104>;
-+ fsl,transmit-boost-mdB = <0>;
-+ fsl,transmit-atten-16ths = <9>;
-+ fsl,no-spread-spectrum;
- };
-diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
---- linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi 2014-10-23 12:34:41.266219992 -0500
-@@ -61,7 +61,7 @@
-
- sound-spdif {
- compatible = "fsl,imx-audio-spdif";
-- model = "imx-spdif";
-+ model = "Integrated SPDIF";
- /* IMX6 doesn't implement this yet */
- spdif-controller = <&spdif>;
- spdif-out;
-@@ -130,16 +130,23 @@
- fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
- };
-
-+ pinctrl_cubox_i_usbh1: cubox-i-usbh1 {
-+ fsl,pins = <MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0>;
-+ };
-+
- pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
- fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
- };
-
-- pinctrl_cubox_i_usbotg_id: cubox-i-usbotg-id {
-+ pinctrl_cubox_i_usbotg: cubox-i-usbotg {
- /*
-- * The Cubox-i pulls this low, but as it's pointless
-+ * The Cubox-i pulls ID low, but as it's pointless
- * leaving it as a pull-up, even if it is just 10uA.
- */
-- fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
-+ MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
-+ >;
- };
-
- pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
-@@ -163,6 +170,28 @@
- MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
- >;
- };
-+
-+ pinctrl_cubox_i_usdhc2_100mhz: cubox-i-usdhc2-100mhz {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
-+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
-+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
-+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
-+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
-+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x130b9
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_usdhc2_200mhz: cubox-i-usdhc2-200mhz {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
-+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
-+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
-+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
-+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
-+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x130f9
-+ >;
-+ };
- };
- };
-
-@@ -173,20 +202,24 @@
- };
-
- &usbh1 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_usbh1>;
- vbus-supply = <&reg_usbh1_vbus>;
- status = "okay";
- };
-
- &usbotg {
- pinctrl-names = "default";
-- pinctrl-0 = <&pinctrl_cubox_i_usbotg_id>;
-+ pinctrl-0 = <&pinctrl_cubox_i_usbotg>;
- vbus-supply = <&reg_usbotg_vbus>;
- status = "okay";
- };
-
- &usdhc2 {
-- pinctrl-names = "default";
-+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
-+ pinctrl-1 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2_100mhz>;
-+ pinctrl-2 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2_200mhz>;
- vmmc-supply = <&reg_3p3v>;
- cd-gpios = <&gpio1 4 0>;
- status = "okay";
-diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig
---- linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig 1969-12-31 18:00:00.000000000 -0600
-+++ linux-3.16.6/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi.orig 2014-10-23 12:27:10.986220036 -0500
-@@ -0,0 +1,202 @@
-+/*
-+ * Copyright (C) 2014 Russell King
-+ */
-+#include "imx6qdl-microsom.dtsi"
-+#include "imx6qdl-microsom-ar8035.dtsi"
-+
-+/ {
-+ ir_recv: ir-receiver {
-+ compatible = "gpio-ir-receiver";
-+ gpios = <&gpio3 9 1>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_ir>;
-+ };
-+
-+ pwmleds {
-+ compatible = "pwm-leds";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_pwm1>;
-+
-+ front {
-+ active-low;
-+ label = "imx6:red:front";
-+ max-brightness = <248>;
-+ pwms = <&pwm1 0 50000>;
-+ };
-+ };
-+
-+ regulators {
-+ compatible = "simple-bus";
-+
-+ reg_3p3v: 3p3v {
-+ compatible = "regulator-fixed";
-+ regulator-name = "3P3V";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-always-on;
-+ };
-+
-+ reg_usbh1_vbus: usb-h1-vbus {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio1 0 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_usbh1_vbus>;
-+ regulator-name = "usb_h1_vbus";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ };
-+
-+ reg_usbotg_vbus: usb-otg-vbus {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio3 22 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_usbotg_vbus>;
-+ regulator-name = "usb_otg_vbus";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ };
-+ };
-+
-+ sound-spdif {
-+ compatible = "fsl,imx-audio-spdif";
-+ model = "Integrated SPDIF";
-+ /* IMX6 doesn't implement this yet */
-+ spdif-controller = <&spdif>;
-+ spdif-out;
-+ };
-+};
-+
-+&hdmi {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_hdmi>;
-+ ddc-i2c-bus = <&i2c2>;
-+ status = "okay";
-+};
-+
-+&i2c2 {
-+ clock-frequency = <100000>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_i2c2>;
-+ status = "okay";
-+};
-+
-+&i2c3 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_i2c3>;
-+
-+ status = "okay";
-+
-+ rtc: pcf8523@68 {
-+ compatible = "nxp,pcf8523";
-+ reg = <0x68>;
-+ };
-+};
-+
-+&iomuxc {
-+ cubox_i {
-+ pinctrl_cubox_i_hdmi: cubox-i-hdmi {
-+ fsl,pins = <
-+ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_i2c2: cubox-i-i2c2 {
-+ fsl,pins = <
-+ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
-+ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_i2c3: cubox-i-i2c3 {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
-+ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_ir: cubox-i-ir {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_pwm1: cubox-i-pwm1-front-led {
-+ fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0>;
-+ };
-+
-+ pinctrl_cubox_i_spdif: cubox-i-spdif {
-+ fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
-+ };
-+
-+ pinctrl_cubox_i_usbh1: cubox-i-usbh1 {
-+ fsl,pins = <MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0>;
-+ };
-+
-+ pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
-+ fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
-+ };
-+
-+ pinctrl_cubox_i_usbotg: cubox-i-usbotg {
-+ /*
-+ * The Cubox-i pulls ID low, but as it's pointless
-+ * leaving it as a pull-up, even if it is just 10uA.
-+ */
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
-+ MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
-+ fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
-+ };
-+
-+ pinctrl_cubox_i_usdhc2_aux: cubox-i-usdhc2-aux {
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
-+ MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
-+ >;
-+ };
-+
-+ pinctrl_cubox_i_usdhc2: cubox-i-usdhc2 {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
-+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
-+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
-+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
-+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
-+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
-+ >;
-+ };
-+ };
-+};
-+
-+&spdif {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_spdif>;
-+ status = "okay";
-+};
-+
-+&usbh1 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_usbh1>;
-+ vbus-supply = <&reg_usbh1_vbus>;
-+ status = "okay";
-+};
-+
-+&usbotg {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_usbotg>;
-+ vbus-supply = <&reg_usbotg_vbus>;
-+ status = "okay";
-+};
-+
-+&usdhc2 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
-+ vmmc-supply = <&reg_3p3v>;
-+ cd-gpios = <&gpio1 4 0>;
-+ status = "okay";
-+};
-diff -Nur linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi linux-3.16.6/arch/arm/boot/dts/imx6qdl-microsom.dtsi
---- linux-3.16.6.orig/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/arch/arm/boot/dts/imx6qdl-microsom.dtsi 2014-10-23 12:34:48.394220240 -0500
-@@ -1,15 +1,95 @@
- /*
- * Copyright (C) 2013,2014 Russell King
- */
-+#include <dt-bindings/gpio/gpio.h>
-+/ {
-+ regulators {
-+ compatible = "simple-bus";
-+
-+ reg_brcm_osc: brcm-osc-reg {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio5 5 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_osc_reg>;
-+ regulator-name = "brcm_osc_reg";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-always-on;
-+ regulator-boot-on;
-+ };
-+
-+ reg_brcm: brcm-reg {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio3 19 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_reg>;
-+ regulator-name = "brcm_reg";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ startup-delay-us = <200000>;
-+ };
-+ };
-+};
-
- &iomuxc {
- microsom {
-+ pinctrl_microsom_brcm_bt: microsom-brcm-bt {
-+ fsl,pins = <
-+ MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x40013070
-+ MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x40013070
-+ MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x40013070
-+ >;
-+ };
-+
-+ pinctrl_microsom_brcm_osc_reg: microsom-brcm-osc-reg {
-+ fsl,pins = <
-+ MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x40013070
-+ >;
-+ };
-+
-+ pinctrl_microsom_brcm_reg: microsom-brcm-reg {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x40013070
-+ >;
-+ };
-+
-+ pinctrl_microsom_brcm_wifi: microsom-brcm-wifi {
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K 0x1b0b0
-+ MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x40013070
-+ MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x40013070
-+ MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x40013070
-+ >;
-+ };
-+
- pinctrl_microsom_uart1: microsom-uart1 {
- fsl,pins = <
- MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
- MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
- >;
- };
-+
-+ pinctrl_microsom_uart4_1: microsom-uart4 {
-+ fsl,pins = <
-+ MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
-+ MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
-+ MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
-+ MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
-+ >;
-+ };
-+
-+ pinctrl_microsom_usdhc1: microsom-usdhc1 {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
-+ MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
-+ MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
-+ MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
-+ MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
-+ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
-+ >;
-+ };
- };
- };
-
-@@ -18,3 +98,23 @@
- pinctrl-0 = <&pinctrl_microsom_uart1>;
- status = "okay";
- };
-+
-+/* UART4 - Connected to optional BRCM Wifi/BT/FM */
-+&uart4 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4_1>;
-+ fsl,uart-has-rtscts;
-+ status = "okay";
-+};
-+
-+/* USDHC1 - Connected to optional BRCM Wifi/BT/FM */
-+&usdhc1 {
-+ card-external-vcc-supply = <&reg_brcm>;
-+ card-reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>, <&gpio6 0 GPIO_ACTIVE_LOW>;
-+ keep-power-in-suspend;
-+ non-removable;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_microsom_brcm_wifi &pinctrl_microsom_usdhc1>;
-+ vmmc-supply = <&reg_brcm>;
-+ status = "okay";
-+};
-diff -Nur linux-3.16.6.orig/arch/arm/mach-imx/clk-imx6q.c linux-3.16.6/arch/arm/mach-imx/clk-imx6q.c
---- linux-3.16.6.orig/arch/arm/mach-imx/clk-imx6q.c 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/arch/arm/mach-imx/clk-imx6q.c 2014-10-23 12:36:09.214219998 -0500
-@@ -461,6 +461,9 @@
- clk_set_parent(clk[ipu2_di0_sel], clk[ipu2_di0_pre]);
- clk_set_parent(clk[ipu2_di1_sel], clk[ipu2_di1_pre]);
-
-+ if (cpu_is_imx6dl())
-+ clk_set_parent(clk[ipu1_sel], clk[pll3_pfd1_540m]);
-+
- /*
- * The gpmi needs 100MHz frequency in the EDO/Sync mode,
- * We can not get the 100MHz from the pll2_pfd0_352m.
-diff -Nur linux-3.16.6.orig/arch/arm/mach-imx/clk-pllv3.c linux-3.16.6/arch/arm/mach-imx/clk-pllv3.c
---- linux-3.16.6.orig/arch/arm/mach-imx/clk-pllv3.c 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/arch/arm/mach-imx/clk-pllv3.c 2014-10-23 12:36:01.390219997 -0500
-@@ -273,9 +273,10 @@
- struct clk_pllv3 *pll = to_clk_pllv3(hw);
- unsigned long min_rate = parent_rate * 27;
- unsigned long max_rate = parent_rate * 54;
-- u32 val, div;
-+ u32 val, newval, div;
- u32 mfn, mfd = 1000000;
- s64 temp64;
-+ int ret;
-
- if (rate < min_rate || rate > max_rate)
- return -EINVAL;
-@@ -287,13 +288,27 @@
- mfn = temp64;
-
- val = readl_relaxed(pll->base);
-- val &= ~pll->div_mask;
-- val |= div;
-- writel_relaxed(val, pll->base);
-+
-+ /* set the PLL into bypass mode */
-+ newval = val | BM_PLL_BYPASS;
-+ writel_relaxed(newval, pll->base);
-+
-+ /* configure the new frequency */
-+ newval &= ~pll->div_mask;
-+ newval |= div;
-+ writel_relaxed(newval, pll->base);
- writel_relaxed(mfn, pll->base + PLL_NUM_OFFSET);
-- writel_relaxed(mfd, pll->base + PLL_DENOM_OFFSET);
-+ writel(mfd, pll->base + PLL_DENOM_OFFSET);
-+
-+ ret = clk_pllv3_wait_lock(pll);
-+ if (ret == 0 && val & BM_PLL_POWER) {
-+ /* only if it locked can we switch back to the PLL */
-+ newval &= ~BM_PLL_BYPASS;
-+ newval |= val & BM_PLL_BYPASS;
-+ writel(newval, pll->base);
-+ }
-
-- return clk_pllv3_wait_lock(pll);
-+ return ret;
- }
-
- static const struct clk_ops clk_pllv3_av_ops = {
-diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt linux-3.16.6/Documentation/devicetree/bindings/ata/ahci-platform.txt
---- linux-3.16.6.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/Documentation/devicetree/bindings/ata/ahci-platform.txt 2014-10-23 12:15:35.154220017 -0500
-@@ -6,8 +6,6 @@
- Required properties:
- - compatible : compatible string, one of:
- - "allwinner,sun4i-a10-ahci"
-- - "fsl,imx53-ahci"
-- - "fsl,imx6q-ahci"
- - "hisilicon,hisi-ahci"
- - "ibm,476gtr-ahci"
- - "marvell,armada-380-ahci"
-@@ -22,10 +20,6 @@
- - clocks : a list of phandle + clock specifier pairs
- - target-supply : regulator for SATA target power
-
--"fsl,imx53-ahci", "fsl,imx6q-ahci" required properties:
--- clocks : must contain the sata, sata_ref and ahb clocks
--- clock-names : must contain "ahb" for the ahb clock
--
- Examples:
- sata@ffe08000 {
- compatible = "snps,spear-ahci";
-diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/ata/imx-sata.txt linux-3.16.6/Documentation/devicetree/bindings/ata/imx-sata.txt
---- linux-3.16.6.orig/Documentation/devicetree/bindings/ata/imx-sata.txt 1969-12-31 18:00:00.000000000 -0600
-+++ linux-3.16.6/Documentation/devicetree/bindings/ata/imx-sata.txt 2014-10-23 12:26:27.434219953 -0500
-@@ -0,0 +1,36 @@
-+* Freescale i.MX AHCI SATA Controller
-+
-+The Freescale i.MX SATA controller mostly conforms to the AHCI interface
-+with some special extensions at integration level.
-+
-+Required properties:
-+- compatible : should be one of the following:
-+ - "fsl,imx53-ahci" for i.MX53 SATA controller
-+ - "fsl,imx6q-ahci" for i.MX6Q SATA controller
-+- interrupts : interrupt mapping for SATA IRQ
-+- reg : registers mapping
-+- clocks : list of clock specifiers, must contain an entry for each
-+ required entry in clock-names
-+- clock-names : should include "sata", "sata_ref" and "ahb" entries
-+
-+Optional properties:
-+- fsl,transmit-level-mV : transmit voltage level, in millivolts.
-+- fsl,transmit-boost-mdB : transmit boost level, in milli-decibels
-+- fsl,transmit-atten-16ths : transmit attenuation, in 16ths
-+- fsl,receive-eq-mdB : receive equalisation, in milli-decibels
-+ Please refer to the technical documentation or the driver source code
-+ for the list of legal values for these options.
-+- fsl,no-spread-spectrum : disable spread-spectrum clocking on the SATA
-+ link.
-+
-+Examples:
-+
-+sata@02200000 {
-+ compatible = "fsl,imx6q-ahci";
-+ reg = <0x02200000 0x4000>;
-+ interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
-+ clocks = <&clks IMX6QDL_CLK_SATA>,
-+ <&clks IMX6QDL_CLK_SATA_REF_100M>,
-+ <&clks IMX6QDL_CLK_AHB>;
-+ clock-names = "sata", "sata_ref", "ahb";
-+};
-diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/mmc/mmc.txt linux-3.16.6/Documentation/devicetree/bindings/mmc/mmc.txt
---- linux-3.16.6.orig/Documentation/devicetree/bindings/mmc/mmc.txt 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/Documentation/devicetree/bindings/mmc/mmc.txt 2014-10-23 12:34:18.694220003 -0500
-@@ -5,6 +5,8 @@
- Interpreted by the OF core:
- - reg: Registers location and length.
- - interrupts: Interrupts used by the MMC controller.
-+- clocks: Clocks needed for the host controller, if any.
-+- clock-names: Goes with clocks above.
-
- Card detection:
- If no property below is supplied, host native card detect is used.
-@@ -41,6 +43,15 @@
- - mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported
- - mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported
-
-+Card power and reset control:
-+The following properties can be specified for cases where the MMC
-+peripheral needs additional reset, regulator and clock lines. It is for
-+example common for WiFi/BT adapters to have these separate from the main
-+MMC bus:
-+ - card-reset-gpios: Specify GPIOs for card reset (reset active low)
-+ - card-external-vcc-supply: Regulator to drive (independent) card VCC
-+ - clock with name "card_ext_clock": External clock provided to the card
-+
- *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
- polarity properties, we have to fix the meaning of the "normal" and "inverted"
- line levels. We choose to follow the SDHCI standard, which specifies both those
-diff -Nur linux-3.16.6.orig/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt linux-3.16.6/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
---- linux-3.16.6.orig/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt 2014-10-23 12:35:30.946219998 -0500
-@@ -60,8 +60,8 @@
- - compatible: Should be "fsl,imx-parallel-display"
- Optional properties:
- - interface_pix_fmt: How this display is connected to the
-- display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
-- and "lvds666".
-+ display interface. Currently supported types: "rgb24", "rgb565", "bgr666",
-+ "rgb666" and "lvds666".
- - edid: verbatim EDID data block describing attached display.
- - ddc: phandle describing the i2c bus handling the display data
- channel
-diff -Nur linux-3.16.6.orig/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml linux-3.16.6/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
---- linux-3.16.6.orig/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml 2014-10-23 12:35:23.678220004 -0500
-@@ -279,6 +279,45 @@
- <entry></entry>
- <entry></entry>
- </row>
-+ <row id="V4L2-PIX-FMT-RGB666">
-+ <entry><constant>V4L2_PIX_FMT_RGB666</constant></entry>
-+ <entry>'RGBH'</entry>
-+ <entry></entry>
-+ <entry>r<subscript>5</subscript></entry>
-+ <entry>r<subscript>4</subscript></entry>
-+ <entry>r<subscript>3</subscript></entry>
-+ <entry>r<subscript>2</subscript></entry>
-+ <entry>r<subscript>1</subscript></entry>
-+ <entry>r<subscript>0</subscript></entry>
-+ <entry>g<subscript>5</subscript></entry>
-+ <entry>g<subscript>4</subscript></entry>
-+ <entry></entry>
-+ <entry>g<subscript>3</subscript></entry>
-+ <entry>g<subscript>2</subscript></entry>
-+ <entry>g<subscript>1</subscript></entry>
-+ <entry>g<subscript>0</subscript></entry>
-+ <entry>b<subscript>5</subscript></entry>
-+ <entry>b<subscript>4</subscript></entry>
-+ <entry>b<subscript>3</subscript></entry>
-+ <entry>b<subscript>2</subscript></entry>
-+ <entry></entry>
-+ <entry>b<subscript>1</subscript></entry>
-+ <entry>b<subscript>0</subscript></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ <entry></entry>
-+ </row>
- <row id="V4L2-PIX-FMT-BGR24">
- <entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
- <entry>'BGR3'</entry>
-diff -Nur linux-3.16.6.orig/drivers/ata/ahci_imx.c linux-3.16.6/drivers/ata/ahci_imx.c
---- linux-3.16.6.orig/drivers/ata/ahci_imx.c 2014-10-15 05:05:43.000000000 -0500
-+++ linux-3.16.6/drivers/ata/ahci_imx.c 2014-10-23 12:26:19.770220044 -0500
-@@ -64,6 +64,7 @@
- struct regmap *gpr;
- bool no_device;
- bool first_time;
-+ u32 phy_params;
- };
-
- static int ahci_imx_hotplug;
-@@ -248,14 +249,7 @@
- IMX6Q_GPR13_SATA_TX_LVL_MASK |
- IMX6Q_GPR13_SATA_MPLL_CLK_EN |
- IMX6Q_GPR13_SATA_TX_EDGE_RATE,
-- IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB |
-- IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M |
-- IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F |
-- IMX6Q_GPR13_SATA_SPD_MODE_3P0G |
-- IMX6Q_GPR13_SATA_MPLL_SS_EN |
-- IMX6Q_GPR13_SATA_TX_ATTEN_9_16 |
-- IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB |
-- IMX6Q_GPR13_SATA_TX_LVL_1_025_V);
-+ imxpriv->phy_params);
- regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13,
- IMX6Q_GPR13_SATA_MPLL_CLK_EN,
- IMX6Q_GPR13_SATA_MPLL_CLK_EN);
-@@ -369,6 +363,165 @@
- };
- MODULE_DEVICE_TABLE(of, imx_ahci_of_match);
-
-+struct reg_value {
-+ u32 of_value;
-+ u32 reg_value;
-+};
-+
-+struct reg_property {
-+ const char *name;
-+ const struct reg_value *values;
-+ size_t num_values;
-+ u32 def_value;
-+ u32 set_value;
-+};
-+
-+static const struct reg_value gpr13_tx_level[] = {
-+ { 937, IMX6Q_GPR13_SATA_TX_LVL_0_937_V },
-+ { 947, IMX6Q_GPR13_SATA_TX_LVL_0_947_V },
-+ { 957, IMX6Q_GPR13_SATA_TX_LVL_0_957_V },
-+ { 966, IMX6Q_GPR13_SATA_TX_LVL_0_966_V },
-+ { 976, IMX6Q_GPR13_SATA_TX_LVL_0_976_V },
-+ { 986, IMX6Q_GPR13_SATA_TX_LVL_0_986_V },
-+ { 996, IMX6Q_GPR13_SATA_TX_LVL_0_996_V },
-+ { 1005, IMX6Q_GPR13_SATA_TX_LVL_1_005_V },
-+ { 1015, IMX6Q_GPR13_SATA_TX_LVL_1_015_V },
-+ { 1025, IMX6Q_GPR13_SATA_TX_LVL_1_025_V },
-+ { 1035, IMX6Q_GPR13_SATA_TX_LVL_1_035_V },
-+ { 1045, IMX6Q_GPR13_SATA_TX_LVL_1_045_V },
-+ { 1054, IMX6Q_GPR13_SATA_TX_LVL_1_054_V },
-+ { 1064, IMX6Q_GPR13_SATA_TX_LVL_1_064_V },
-+ { 1074, IMX6Q_GPR13_SATA_TX_LVL_1_074_V },
-+ { 1084, IMX6Q_GPR13_SATA_TX_LVL_1_084_V },
-+ { 1094, IMX6Q_GPR13_SATA_TX_LVL_1_094_V },
-+ { 1104, IMX6Q_GPR13_SATA_TX_LVL_1_104_V },
-+ { 1113, IMX6Q_GPR13_SATA_TX_LVL_1_113_V },
-+ { 1123, IMX6Q_GPR13_SATA_TX_LVL_1_123_V },
-+ { 1133, IMX6Q_GPR13_SATA_TX_LVL_1_133_V },
-+ { 1143, IMX6Q_GPR13_SATA_TX_LVL_1_143_V },
-+ { 1152, IMX6Q_GPR13_SATA_TX_LVL_1_152_V },
-+ { 1162, IMX6Q_GPR13_SATA_TX_LVL_1_162_V },
-+ { 1172, IMX6Q_GPR13_SATA_TX_LVL_1_172_V },
-+ { 1182, IMX6Q_GPR13_SATA_TX_LVL_1_182_V },
-+ { 1191, IMX6Q_GPR13_SATA_TX_LVL_1_191_V },
-+ { 1201, IMX6Q_GPR13_SATA_TX_LVL_1_201_V },
-+ { 1211, IMX6Q_GPR13_SATA_TX_LVL_1_211_V },
-+ { 1221, IMX6Q_GPR13_SATA_TX_LVL_1_221_V },
-+ { 1230, IMX6Q_GPR13_SATA_TX_LVL_1_230_V },
-+ { 1240, IMX6Q_GPR13_SATA_TX_LVL_1_240_V }
-+};
-+
-+static const struct reg_value gpr13_tx_boost[] = {
-+ { 0, IMX6Q_GPR13_SATA_TX_BOOST_0_00_DB },
-+ { 370, IMX6Q_GPR13_SATA_TX_BOOST_0_37_DB },
-+ { 740, IMX6Q_GPR13_SATA_TX_BOOST_0_74_DB },
-+ { 1110, IMX6Q_GPR13_SATA_TX_BOOST_1_11_DB },
-+ { 1480, IMX6Q_GPR13_SATA_TX_BOOST_1_48_DB },
-+ { 1850, IMX6Q_GPR13_SATA_TX_BOOST_1_85_DB },
-+ { 2220, IMX6Q_GPR13_SATA_TX_BOOST_2_22_DB },
-+ { 2590, IMX6Q_GPR13_SATA_TX_BOOST_2_59_DB },
-+ { 2960, IMX6Q_GPR13_SATA_TX_BOOST_2_96_DB },
-+ { 3330, IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB },
-+ { 3700, IMX6Q_GPR13_SATA_TX_BOOST_3_70_DB },
-+ { 4070, IMX6Q_GPR13_SATA_TX_BOOST_4_07_DB },
-+ { 4440, IMX6Q_GPR13_SATA_TX_BOOST_4_44_DB },
-+ { 4810, IMX6Q_GPR13_SATA_TX_BOOST_4_81_DB },
-+ { 5280, IMX6Q_GPR13_SATA_TX_BOOST_5_28_DB },
-+ { 5750, IMX6Q_GPR13_SATA_TX_BOOST_5_75_DB }
-+};
-+
-+static const struct reg_value gpr13_tx_atten[] = {
-+ { 8, IMX6Q_GPR13_SATA_TX_ATTEN_8_16 },
-+ { 9, IMX6Q_GPR13_SATA_TX_ATTEN_9_16 },
-+ { 10, IMX6Q_GPR13_SATA_TX_ATTEN_10_16 },
-+ { 12, IMX6Q_GPR13_SATA_TX_ATTEN_12_16 },
-+ { 14, IMX6Q_GPR13_SATA_TX_ATTEN_14_16 },
-+ { 16, IMX6Q_GPR13_SATA_TX_ATTEN_16_16 },
-+};
-+
-+static const struct reg_value gpr13_rx_eq[] = {
-+ { 500, IMX6Q_GPR13_SATA_RX_EQ_VAL_0_5_DB },
-+ { 1000, IMX6Q_GPR13_SATA_RX_EQ_VAL_1_0_DB },
-+ { 1500, IMX6Q_GPR13_SATA_RX_EQ_VAL_1_5_DB },
-+ { 2000, IMX6Q_GPR13_SATA_RX_EQ_VAL_2_0_DB },
-+ { 2500, IMX6Q_GPR13_SATA_RX_EQ_VAL_2_5_DB },
-+ { 3000, IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB },
-+ { 3500, IMX6Q_GPR13_SATA_RX_EQ_VAL_3_5_DB },
-+ { 4000, IMX6Q_GPR13_SATA_RX_EQ_VAL_4_0_DB },
-+};
-+
-+static const struct reg_property gpr13_props[] = {
-+ {
-+ .name = "fsl,transmit-level-mV",
-+ .values = gpr13_tx_level,
-+ .num_values = ARRAY_SIZE(gpr13_tx_level),
-+ .def_value = IMX6Q_GPR13_SATA_TX_LVL_1_025_V,
-+ }, {
-+ .name = "fsl,transmit-boost-mdB",
-+ .values = gpr13_tx_boost,
-+ .num_values = ARRAY_SIZE(gpr13_tx_boost),
-+ .def_value = IMX6Q_GPR13_SATA_TX_BOOST_3_33_DB,
-+ }, {
-+ .name = "fsl,transmit-atten-16ths",
-+ .values = gpr13_tx_atten,
-+ .num_values = ARRAY_SIZE(gpr13_tx_atten),
-+ .def_value = IMX6Q_GPR13_SATA_TX_ATTEN_9_16,
-+ }, {
-+ .name = "fsl,receive-eq-mdB",
-+ .values = gpr13_rx_eq,
-+ .num_values = ARRAY_SIZE(gpr13_rx_eq),
-+ .def_value = IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB,
-+ }, {
-+ .name = "fsl,no-spread-spectrum",
-+ .def_value = IMX6Q_GPR13_SATA_MPLL_SS_EN,
-+ .set_value = 0,
-+ },
-+};
-+
-+static u32 imx_ahci_parse_props(struct device *dev,
-+ const struct reg_property *prop, size_t num)
-+{
-+ struct device_node *np = dev->of_node;
-+ u32 reg_value = 0;
-+ int i, j;
-+
-+ for (i = 0; i < num; i++, prop++) {
-+ u32 of_val;
-+
-+ if (prop->num_values == 0) {
-+ if (of_property_read_bool(np, prop->name))
-+ reg_value |= prop->set_value;
-+ else
-+ reg_value |= prop->def_value;
-+ continue;
-+ }
-+
-+ if (of_property_read_u32(np, prop->name, &of_val)) {
-+ dev_info(dev, "%s not specified, using %08x\n",
-+ prop->name, prop->def_value);
-+ reg_value |= prop->def_value;
-+ continue;
-+ }
-+
-+ for (j = 0; j < prop->num_values; j++) {
-+ if (prop->values[j].of_value == of_val) {
-+ dev_info(dev, "%s value %u, using %08x\n",
-+ prop->name, of_val, prop->values[j].reg_value);
-+ reg_value |= prop->values[j].reg_value;
-+ break;
-+ }
-+ }
-+
-+ if (j == prop->num_values) {
-+ dev_err(dev, "DT property %s is not a valid value\n",
-+ prop->name);
-+ reg_value |= prop->def_value;
-+ }
-+ }
-+
-+ return reg_value;
-+}
-+
- static int imx_ahci_probe(struct platform_device *pdev)
- {
- struct device *dev = &pdev->dev;
-@@ -410,6 +563,8 @@
- }
-
- if (imxpriv->type == AHCI_IMX6Q) {
-+ u32 reg_value;
-+
- imxpriv->gpr = syscon_regmap_lookup_by_compatible(
- "fsl,imx6q-iomuxc-gpr");
- if (IS_ERR(imxpriv->gpr)) {
-@@ -417,6 +572,15 @@
- "failed to find fsl,imx6q-iomux-gpr regmap\n");
- return PTR_ERR(imxpriv->gpr);
- }
-+
-+ reg_value = imx_ahci_parse_props(dev, gpr13_props,
-+ ARRAY_SIZE(gpr13_props));
-+
-+ imxpriv->phy_params =
-+ IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M |
-+ IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F |
-+ IMX6Q_GPR13_SATA_SPD_MODE_3P0G |
-+ reg_value;
- }
-
- hpriv = ahci_platform_get_resources(pdev);
-diff -Nur linux-3.16.6.orig/drivers/ata/ahci_imx.c.orig linux-3.16.6/drivers/ata/ahci_imx.c.orig
---- linux-3.16.6.orig/drivers/ata/ahci_imx.c.orig 1969-12-31 18:00:00.000000000 -0600
-+++ linux-3.16.6/drivers/ata/ahci_imx.c.orig 2014-10-23 12:18:59.602219672 -0500
-@@ -0,0 +1,679 @@
-+/*
-+ * copyright (c) 2013 Freescale Semiconductor, Inc.
-+ * Freescale IMX AHCI SATA platform driver
-+ *
-+ * based on the AHCI SATA platform driver by Jeff Garzik and Anton Vorontsov
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms and conditions of the GNU General Public License,
-+ * version 2, as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-+ * more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program. If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <linux/regmap.h>
-+#include <linux/ahci_platform.h>
-+#include <linux/of_device.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
-+#include <linux/libata.h>
-+#include "ahci.h"
-+
-+enum {
-+ /* Timer 1-ms Register */
-+ IMX_TIMER1MS = 0x00e0,
-+ /* Port0 PHY Control Register */
-+ IMX_P0PHYCR = 0x0178,
-+ IMX_P0PHYCR_TEST_PDDQ = 1 << 20,
-+ IMX_P0PHYCR_CR_READ = 1 << 19,
-+ IMX_P0PHYCR_CR_WRITE = 1 << 18,
-+ IMX_P0PHYCR_CR_CAP_DATA = 1 << 17,
-+ IMX_P0PHYCR_CR_CAP_ADDR = 1 << 16,
-+ /* Port0 PHY Status Register */
-+ IMX_P0PHYSR = 0x017c,
-+ IMX_P0PHYSR_CR_ACK = 1 << 18,
-+ IMX_P0PHYSR_CR_DATA_OUT = 0xffff << 0,
-+ /* Lane0 Output Status Register */
-+ IMX_LANE0_OUT_STAT = 0x2003,
-+ IMX_LANE0_OUT_STAT_RX_PLL_STATE = 1 << 1,
-+ /* Clock Reset Register */
-+ IMX_CLOCK_RESET = 0x7f3f,
-+ IMX_CLOCK_RESET_RESET = 1 << 0,
-+};
-+
-+enum ahci_imx_type {
-+ AHCI_IMX53,
-+ AHCI_IMX6Q,
-+};
-+
-+struct imx_ahci_priv {
-+ struct platform_device *ahci_pdev;
-+ enum ahci_imx_type type;
-+ struct clk *sata_clk;