forked from Minki/linux
b465646ef4
It turns out that sun4i (A10) and sun5i (A13 & co) do not have sample clocks, so add a new sun7i-a20-mmc compatible and do not try to use sample clocks on sun4i / sun5i. Since sun4i / sun5i do not have sample clocks, they cannot (reliably) do DDR rates, so only set MMC_CAP_1_8V_DDR when we do have sample clks. Note this patch leaves the clk_prepare_enable() / clk_disable_unprepare() calls to the sample clks as-is, without adding checks for them being NULL. All the clk_foo calls accept a NULL clk and will return success when called with a NULL clk. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
48 lines
1.4 KiB
Plaintext
48 lines
1.4 KiB
Plaintext
* Allwinner sunxi MMC controller
|
|
|
|
The highspeed MMC host controller on Allwinner SoCs provides an interface
|
|
for MMC, SD and SDIO types of memory cards.
|
|
|
|
Supported maximum speeds are the ones of the eMMC standard 4.5 as well
|
|
as the speed of SD standard 3.0.
|
|
Absolute maximum transfer rate is 200MB/s
|
|
|
|
Required properties:
|
|
- compatible : should be one of:
|
|
* "allwinner,sun4i-a10-mmc"
|
|
* "allwinner,sun5i-a13-mmc"
|
|
* "allwinner,sun7i-a20-mmc"
|
|
* "allwinner,sun9i-a80-mmc"
|
|
- reg : mmc controller base registers
|
|
- clocks : a list with 4 phandle + clock specifier pairs
|
|
- clock-names : must contain "ahb", "mmc", "output" and "sample"
|
|
- interrupts : mmc controller interrupt
|
|
|
|
Optional properties:
|
|
- resets : phandle + reset specifier pair
|
|
- reset-names : must contain "ahb"
|
|
- for cd, bus-width and additional generic mmc parameters
|
|
please refer to mmc.txt within this directory
|
|
|
|
Examples:
|
|
- Within .dtsi:
|
|
mmc0: mmc@01c0f000 {
|
|
compatible = "allwinner,sun5i-a13-mmc";
|
|
reg = <0x01c0f000 0x1000>;
|
|
clocks = <&ahb_gates 8>, <&mmc0_clk>, <&mmc0_output_clk>, <&mmc0_sample_clk>;
|
|
clock-names = "ahb", "mod", "output", "sample";
|
|
interrupts = <0 32 4>;
|
|
status = "disabled";
|
|
};
|
|
|
|
- Within dts:
|
|
mmc0: mmc@01c0f000 {
|
|
pinctrl-names = "default", "default";
|
|
pinctrl-0 = <&mmc0_pins_a>;
|
|
pinctrl-1 = <&mmc0_cd_pin_reference_design>;
|
|
bus-width = <4>;
|
|
cd-gpios = <&pio 7 1 0>; /* PH1 */
|
|
cd-inverted;
|
|
status = "okay";
|
|
};
|