diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.1/0221-bcm270x_dt-Use-the-sdhost-MMC-controller-by-default.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.1/0221-bcm270x_dt-Use-the-sdhost-MMC-controller-by-default.patch | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.1/0221-bcm270x_dt-Use-the-sdhost-MMC-controller-by-default.patch b/target/linux/brcm2708/patches-4.1/0221-bcm270x_dt-Use-the-sdhost-MMC-controller-by-default.patch new file mode 100644 index 0000000000..5eca600511 --- /dev/null +++ b/target/linux/brcm2708/patches-4.1/0221-bcm270x_dt-Use-the-sdhost-MMC-controller-by-default.patch @@ -0,0 +1,269 @@ +From 702070d58bb61bcdcc46f28b6cef7f269ef14c3e Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.org> +Date: Tue, 8 Dec 2015 16:23:33 +0000 +Subject: [PATCH 221/222] bcm270x_dt: Use the sdhost MMC controller by default + +The "mmc" overlay reverts to using the other controller. +--- + arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 11 ++++-- + arch/arm/boot/dts/bcm2708-rpi-b.dts | 11 ++++-- + arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 14 ++++++-- + arch/arm/boot/dts/bcm2708_common.dtsi | 13 +++++++ + arch/arm/boot/dts/bcm2709-rpi-2-b.dts | 11 ++++-- + arch/arm/boot/dts/overlays/mmc-overlay.dts | 22 +++++++++++- + arch/arm/boot/dts/overlays/sdhost-overlay.dts | 49 ++++++--------------------- + arch/arm/boot/dts/overlays/sdio-overlay.dts | 1 - + 8 files changed, 84 insertions(+), 48 deletions(-) + +--- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts +@@ -8,6 +8,11 @@ + }; + + &gpio { ++ sdhost_pins: sdhost_pins { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ + spi0_pins: spi0_pins { + brcm,pins = <7 8 9 10 11>; + brcm,function = <4>; /* alt0 */ +@@ -29,9 +34,11 @@ + }; + }; + +-&mmc { +- status = "okay"; ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_pins>; + bus-width = <4>; ++ status = "okay"; + }; + + &fb { +--- a/arch/arm/boot/dts/bcm2708-rpi-b.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts +@@ -8,6 +8,11 @@ + }; + + &gpio { ++ sdhost_pins: sdhost_pins { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ + spi0_pins: spi0_pins { + brcm,pins = <7 8 9 10 11>; + brcm,function = <4>; /* alt0 */ +@@ -29,9 +34,11 @@ + }; + }; + +-&mmc { +- status = "okay"; ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_pins>; + bus-width = <4>; ++ status = "okay"; + }; + + &fb { +--- a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi +@@ -1,5 +1,12 @@ + /include/ "bcm2708.dtsi" + ++&gpio { ++ sdhost_pins: sdhost_pins { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++}; ++ + &leds { + act_led: act { + label = "led0"; +@@ -8,9 +15,12 @@ + }; + }; + +-&mmc { +- status = "okay"; ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_pins>; + bus-width = <4>; ++ non-removable; ++ status = "okay"; + }; + + &fb { +--- a/arch/arm/boot/dts/bcm2708_common.dtsi ++++ b/arch/arm/boot/dts/bcm2708_common.dtsi +@@ -14,6 +14,7 @@ + mailbox = &mailbox; + gpio = &gpio; + uart0 = &uart0; ++ sdhost = &sdhost; + i2s = &i2s; + spi0 = &spi0; + i2c0 = &i2c0; +@@ -114,6 +115,18 @@ + status = "disabled"; + }; + ++ sdhost: sdhost@7e202000 { ++ compatible = "brcm,bcm2835-sdhost"; ++ reg = <0x7e202000 0x100>; ++ interrupts = <2 24>; ++ clocks = <&clk_core>; ++ dmas = <&dma 13>, ++ <&dma 13>; ++ dma-names = "tx", "rx"; ++ brcm,pio-limit = <1>; ++ status = "disabled"; ++ }; ++ + i2s: i2s@7e203000 { + compatible = "brcm,bcm2708-i2s"; + reg = <0x7e203000 0x24>, +--- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts ++++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts +@@ -8,6 +8,11 @@ + }; + + &gpio { ++ sdhost_pins: sdhost_pins { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ + spi0_pins: spi0_pins { + brcm,pins = <7 8 9 10 11>; + brcm,function = <4>; /* alt0 */ +@@ -29,9 +34,11 @@ + }; + }; + +-&mmc { +- status = "okay"; ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_pins>; + bus-width = <4>; ++ status = "okay"; + }; + + &fb { +--- a/arch/arm/boot/dts/overlays/mmc-overlay.dts ++++ b/arch/arm/boot/dts/overlays/mmc-overlay.dts +@@ -6,9 +6,29 @@ + + fragment@0 { + target = <&mmc>; +- + frag0: __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc_pins>; ++ bus-width = <4>; + brcm,overclock-50 = <0>; ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&gpio>; ++ __overlay__ { ++ mmc_pins: mmc_pins { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = <7>; /* alt3 */ ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&sdhost>; ++ __overlay__ { ++ status = "disabled"; + }; + }; + +--- a/arch/arm/boot/dts/overlays/sdhost-overlay.dts ++++ b/arch/arm/boot/dts/overlays/sdhost-overlay.dts +@@ -5,52 +5,25 @@ + compatible = "brcm,bcm2708"; + + fragment@0 { +- target = <&soc>; ++ target = <&mmc>; + __overlay__ { +- #address-cells = <1>; +- #size-cells = <1>; +- +- sdhost: sdhost@7e202000 { +- compatible = "brcm,bcm2835-sdhost"; +- reg = <0x7e202000 0x100>; +- pinctrl-names = "default"; +- pinctrl-0 = <&sdhost_pins>; +- interrupts = <2 24>; +- clocks = <&clk_core>; +- dmas = <&dma 13>, +- <&dma 13>; +- dma-names = "tx", "rx"; +- brcm,delay-after-stop = <0>; +- brcm,overclock-50 = <0>; +- brcm,pio-limit = <1>; +- status = "okay"; +- }; ++ status = "disabled"; + }; + }; + + fragment@1 { +- target = <&gpio>; +- __overlay__ { +- sdhost_pins: sdhost_pins { +- brcm,pins = <48 49 50 51 52 53>; +- brcm,function = <4>; /* alt0 */ +- }; +- }; +- }; +- +- fragment@2 { +- target = <&mmc>; +- __overlay__ { +- /* Find a way to disable the other driver */ +- compatible = ""; +- status = "disabled"; ++ target = <&sdhost>; ++ frag1: __overlay__ { ++ brcm,overclock-50 = <0>; ++ brcm,pio-limit = <1>; ++ status = "okay"; + }; + }; + + __overrides__ { +- overclock_50 = <&sdhost>,"brcm,overclock-50:0"; +- force_pio = <&sdhost>,"brcm,force-pio?"; +- pio_limit = <&sdhost>,"brcm,pio-limit:0"; +- debug = <&sdhost>,"brcm,debug?"; ++ overclock_50 = <&frag1>,"brcm,overclock-50:0"; ++ force_pio = <&frag1>,"brcm,force-pio?"; ++ pio_limit = <&frag1>,"brcm,pio-limit:0"; ++ debug = <&frag1>,"brcm,debug?"; + }; + }; +--- a/arch/arm/boot/dts/overlays/sdio-overlay.dts ++++ b/arch/arm/boot/dts/overlays/sdio-overlay.dts +@@ -8,7 +8,6 @@ + fragment@3 { + target = <&mmc>; + sdio_mmc: __overlay__ { +- compatible = "brcm,bcm2835-mmc"; + pinctrl-names = "default"; + pinctrl-0 = <&sdio_pins>; + non-removable; |