From a0adae0d3e1327dfa796986e45bbe20dee335f2c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Sep 2015 15:14:50 +0100 Subject: [PATCH 177/203] BCM270X_DT: Add SDIO overlay Enable SDIO from MMC interface via GPIOs 22-27. Includes the sdhost overlay to free up the MMC interface. --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 15 +++++++++++++++ arch/arm/boot/dts/overlays/sdio-overlay.dts | 29 +++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/sdio-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -44,6 +44,7 @@ dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-ove dtb-$(RPI_DT_OVERLAYS) += rpi-proto-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += rpi-sense-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb +dtb-$(RPI_DT_OVERLAYS) += sdio-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += spi-dma-overlay.dtb --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -513,6 +513,21 @@ Params: overclock_50 Clock ( debug Enable debug output (default off) +Name: sdio +Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock, + and enables SDIO via GPIOs 22-27. +Load: dtoverlay=sdio,= +Params: overclock_50 Clock (in MHz) to use when the MMC framework + requests 50MHz + + force_pio Disable DMA support (default off) + + pio_limit Number of blocks above which to use DMA + (default 1) + + debug Enable debug output (default off) + + Name: spi-bcm2708 Info: Selects the bcm2708-spi SPI driver Load: dtoverlay=spi-bcm2708 --- /dev/null +++ b/arch/arm/boot/dts/overlays/sdio-overlay.dts @@ -0,0 +1,29 @@ +/* Enable SDIO from MMC interface via GPIOs 22-27. Includes sdhost overlay. */ + +/include/ "sdhost-overlay.dts" + +/{ + compatible = "brcm,bcm2708"; + + fragment@3 { + target = <&mmc>; + __overlay__ { + compatible = "brcm,bcm2835-mmc"; + pinctrl-names = "default"; + pinctrl-0 = <&sdio_pins>; + non-removable; + status = "okay"; + }; + }; + + fragment@4 { + target = <&gpio>; + __overlay__ { + sdio_pins: sdio_pins { + brcm,pins = <22 23 24 25 26 27>; + brcm,function = <7 7 7 7 7 7>; /* ALT3 = SD1 */ + brcm,pull = <0 2 2 2 2 2>; + }; + }; + }; +};