On Thursday 19 November 2015 17:37:13 Marc Gonzalez wrote: > Hello everyone, > > My SoC provides an "SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" > from Arasan Chip Systems (data sheet says rev 6.0, dated Feb 2010). > > There are two instances of the controller: > mmc0 is wired to an SD card reader, > mmc1 is wired to an eMMC chip. > > I'm trying to figure out how to write the DT. > (Currently using Linux 4.2) > > This is what I have so far: > > mmc0: mmc@21000 { > compatible = "arasan,sdhci-8.9a"; make this "arasan,sdhci-6.0", plus a chip specific string in front of it. > reg = <0x21000 0x200>; > clock-names = "clk_xin", "clk_ahb"; > clocks = <&sdio_clk>, <&clkgen 1>; > interrupts = <60 IRQ_TYPE_LEVEL_HIGH>; > bus-width = <8>; > cap-sd-highspeed; > sd-uhs-sdr12; > sd-uhs-sdr25; > sd-uhs-sdr50; > sd-uhs-ddr50; > sd-uhs-sdr104; > }; > > mmc1: mmc@21200 { > compatible = "arasan,sdhci-8.9a"; > reg = <0x21200 0x200>; > clock-names = "clk_xin", "clk_ahb"; > clocks = <&sdio_clk>, <&clkgen 1>; > interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; > bus-width = <8>; > non-removable; > }; > > https://www.kernel.org/doc/Documentation/devicetree/bindings/mmc/mmc.txt > > (I don't know anything about MMC, SDHCI, SDIO, etc.) > > Are cap-sd-highspeed and sd-uhs-* limited to mmc0? (wired to SD card reader) > > Are cap-mmc-highspeed and mmc-* limited to mmc1? (wired to eMMC) It depends: if the wiring is board specific, put them into the .dts file and put the generic properties (interrupts, clocks, reg, compatible) into the .dtsi file. > What about these? > - bus-width: Number of data lines, can be <1>, <4>, or <8>. The default > will be <1> if the property is absent. board specific > - cap-power-off-card: powering off the card is safe > - cap-mmc-hw-reset: eMMC hardware reset is supported > - cap-sdio-irq: enable SDIO IRQ signalling on this interface > - full-pwr-cycle: full power cycle of the card is supported > > Also, I set clk_xin to 48 MHz (and clk_ahb is set to 400 MHz). > Does clk_xin need to be higher for the faster modes? don't know. I think the clock gets set by the driver, so the clock controller needs to be programmable. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html