diff options
author | loos <loos@FreeBSD.org> | 2015-05-21 17:39:42 +0000 |
---|---|---|
committer | loos <loos@FreeBSD.org> | 2015-05-21 17:39:42 +0000 |
commit | 7b0055b31081ea9e862e9782e2cd5d957ac9b157 (patch) | |
tree | 87aad7c040bd0e443d6816f15fed80747d1db24e /sys/boot/fdt/dts | |
parent | ba307f79ae0de7bc8108458af27ce0949aeff3ed (diff) | |
download | FreeBSD-src-7b0055b31081ea9e862e9782e2cd5d957ac9b157.zip FreeBSD-src-7b0055b31081ea9e862e9782e2cd5d957ac9b157.tar.gz |
Add the MMC/SD driver for Allwinner SoCs.
This is based on the patch sent by Alexander Fedorov with the following
fixes/improvements:
- Better error handling;
- Clock is derived from PLL6 (obtained from netbsd);
- No more unnecessary busy loops on interrupt handler;
- style(9) fixes and code cleanup.
I also want to thanks Martin Galvan who has sent an alternative
implementation with some interesting fixes.
Tested on CubieBoard2, Banana-Pi (thanks to netgate!) and Cubieboard1
(Pratik Singhal).
This is intended to pave the way for the upcoming GSoC work (and make
easier the build of images for the supported boards).
PR: 196081
Submitted by: Alexander Fedorov <alexander.fedorov@rtlservice.com>
Diffstat (limited to 'sys/boot/fdt/dts')
-rw-r--r-- | sys/boot/fdt/dts/arm/cubieboard.dts | 4 | ||||
-rw-r--r-- | sys/boot/fdt/dts/arm/cubieboard2.dts | 4 | ||||
-rw-r--r-- | sys/boot/fdt/dts/arm/sun4i-a10.dtsi | 8 | ||||
-rw-r--r-- | sys/boot/fdt/dts/arm/sun7i-a20.dtsi | 8 |
4 files changed, 24 insertions, 0 deletions
diff --git a/sys/boot/fdt/dts/arm/cubieboard.dts b/sys/boot/fdt/dts/arm/cubieboard.dts index 636b5ce..d9a7c15 100644 --- a/sys/boot/fdt/dts/arm/cubieboard.dts +++ b/sys/boot/fdt/dts/arm/cubieboard.dts @@ -57,6 +57,10 @@ status = "okay"; }; + mmc0: mmc@01c0f000 { + status = "okay"; + }; + emac@01c0b000 { status = "okay"; }; diff --git a/sys/boot/fdt/dts/arm/cubieboard2.dts b/sys/boot/fdt/dts/arm/cubieboard2.dts index ce0081e..9593b91 100644 --- a/sys/boot/fdt/dts/arm/cubieboard2.dts +++ b/sys/boot/fdt/dts/arm/cubieboard2.dts @@ -57,6 +57,10 @@ status = "okay"; }; + mmc0: mmc@01c0f000 { + status = "okay"; + }; + emac@01c0b000 { status = "okay"; }; diff --git a/sys/boot/fdt/dts/arm/sun4i-a10.dtsi b/sys/boot/fdt/dts/arm/sun4i-a10.dtsi index 09eebaa..087e314 100644 --- a/sys/boot/fdt/dts/arm/sun4i-a10.dtsi +++ b/sys/boot/fdt/dts/arm/sun4i-a10.dtsi @@ -103,6 +103,14 @@ interrupt-parent = <&AINTC>; }; + mmc0: mmc@01c0f000 { + compatible = "allwinner,sun4i-a10-mmc"; + reg = <0x01c0f000 0x1000>; + interrupts = <32>; + interrupt-parent = <&AINTC>; + status = "disabled"; + }; + sata@01c18000 { compatible = "allwinner,sun4i-ahci"; reg = <0x01c18000 0x1000>; diff --git a/sys/boot/fdt/dts/arm/sun7i-a20.dtsi b/sys/boot/fdt/dts/arm/sun7i-a20.dtsi index ab4ef1e..7dd8947 100644 --- a/sys/boot/fdt/dts/arm/sun7i-a20.dtsi +++ b/sys/boot/fdt/dts/arm/sun7i-a20.dtsi @@ -109,6 +109,14 @@ interrupt-parent = <&GIC>; }; + mmc0: mmc@01c0f000 { + compatible = "allwinner,sun4i-a10-mmc"; + reg = <0x01c0f000 0x1000>; + interrupts = <32>; + interrupt-parent = <&GIC>; + status = "disabled"; + }; + sata@01c18000 { compatible = "allwinner,sun4i-a10-ahci"; reg = <0x01c18000 0x1000>; |