PKGBUILDs/core/linux-armv5/imx23-olinuxino.patch
2013-09-29 02:50:56 +00:00

159 lines
3.9 KiB
Diff

diff -urN a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
--- a/arch/arm/boot/dts/imx23.dtsi 2013-09-23 16:41:09.000000000 -0600
+++ b/arch/arm/boot/dts/imx23.dtsi 2013-09-28 20:12:40.454968654 -0600
@@ -306,6 +306,39 @@
fsl,voltage = <1>;
fsl,pull-up = <1>;
};
+
+ i2c0_pins_a: i2c0@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x01e0 /* MX23_PAD_I2C_SCL__I2C_SCL */
+ 0x01f0 /* MX23_PAD_I2C_SDA__I2C_SDA */
+ >;
+ fsl,drive-strength = <1>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <1>;
+ };
+
+ i2c1_pins_a: i2c1@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1171 /* MX23_PAD_LCD_ENABLE__I2C_SCL */
+ 0x1181 /* MX23_PAD_LCD_HSYNC__I2C_SDA */
+ >;
+ fsl,drive-strength = <1>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <1>;
+ };
+
+ i2c2_pins_a: i2c2@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x2031 /* MX23_PAD_SSP1_DATA1__I2C_SCL */
+ 0x2041 /* MX23_PAD_SSP1_DATA2__I2C_SDA */
+ >;
+ fsl,drive-strength = <1>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <1>;
+ };
};
digctl@8001c000 {
@@ -377,7 +410,7 @@
reg = <0x80038000 0x2000>;
status = "disabled";
};
- };
+ };
apbx@80040000 {
compatible = "simple-bus";
@@ -439,8 +472,14 @@
status = "disabled";
};
- i2c@80058000 {
+ i2c0: i2c@80058000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx23-i2c";
reg = <0x80058000 0x2000>;
+ interrupts = <27 26>;
+ clock-frequency = <100000>;
+ fsl,i2c-dma-channel = <3>;
dmas = <&dma_apbx 3>;
dma-names = "rx-tx";
status = "disabled";
diff -urN a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts
--- a/arch/arm/boot/dts/imx23-olinuxino.dts 2013-09-23 16:41:09.000000000 -0600
+++ b/arch/arm/boot/dts/imx23-olinuxino.dts 2013-09-28 20:15:15.654269506 -0600
@@ -29,6 +29,7 @@
pinctrl-names = "default";
pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
bus-width = <4>;
+ non-removable;
broken-cd;
status = "okay";
};
@@ -73,6 +74,25 @@
status = "okay";
};
+ i2c0: i2c@80058000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins_a>;
+ status = "okay";
+
+ sgtl5000: codec@0a {
+ compatible = "fsl,sgtl5000";
+ reg = <0x0a>;
+ VDDA-supply = <&reg_3p3v>;
+ VDDIO-supply = <&reg_3p3v>;
+ };
+
+ at24@51 {
+ compatible = "at24,24c32";
+ pagesize = <32>;
+ reg = <0x51>;
+ };
+ };
+
duart: serial@80070000 {
pinctrl-names = "default";
pinctrl-0 = <&duart_pins_a>;
@@ -101,6 +121,14 @@
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_usb0_vbus: usb0_vbus {
compatible = "regulator-fixed";
regulator-name = "usb0_vbus";
@@ -112,6 +140,14 @@
};
};
+ sound {
+ compatible = "fsl,imx28-evk-sgtl5000",
+ "fsl,mxs-audio-sgtl5000";
+ model = "imx28-evk-sgtl5000";
+ saif-controllers = <&saif0 &saif1>;
+ audio-codec = <&sgtl5000>;
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
diff -urN a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
--- a/drivers/mmc/host/mxs-mmc.c 2013-09-23 16:41:09.000000000 -0600
+++ b/drivers/mmc/host/mxs-mmc.c 2013-09-28 20:12:40.454968654 -0600
@@ -94,6 +94,9 @@
static int mxs_mmc_get_cd(struct mmc_host *mmc)
{
+ if (mmc->caps & MMC_CAP_NONREMOVABLE)
+ return 1;
+
struct mxs_mmc_host *host = mmc_priv(mmc);
struct mxs_ssp *ssp = &host->ssp;
@@ -663,6 +666,9 @@
host->cd_inverted = of_property_read_bool(np, "cd-inverted");
+ if (of_find_property(np, "non-removable", NULL))
+ mmc->caps |= MMC_CAP_NONREMOVABLE;
+
mmc->f_min = 400000;
mmc->f_max = 288000000;
mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;