Re: [PATCH 3/7] mmc: dw_mmc: add device tree support
From: Olof Johansson <hidden>
Date: 2012-05-02 18:07:48
Also in:
linux-arm-kernel, linux-devicetree, linux-samsung-soc, lkml
Hi, On Tue, May 1, 2012 at 10:07 PM, Thomas Abraham [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Add device tree based discovery support. Signed-off-by: Thomas Abraham <redacted> --- .../devicetree/bindings/mmc/synposis-dw-mshc.txt | 85 +++++++++ drivers/mmc/host/dw_mmc-pltfm.c | 24 +++ drivers/mmc/host/dw_mmc.c | 181 +++++++++++++++++++- drivers/mmc/host/dw_mmc.h | 10 + include/linux/mmc/dw_mmc.h | 2 + 5 files changed, 296 insertions(+), 6 deletions(-) create mode 100644 Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txtdiff --git a/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt new file mode 100644 index 0000000..c1ed70e --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt@@ -0,0 +1,85 @@ +* Synopsis Designware Mobile Storage Host Controller + +The Synopsis designware mobile storage host controller is used to interface +a SoC with storage medium such as eMMC or SD/MMC cards. + +Required Properties: + +* compatible: should be one of the following + - synopsis,dw-mshc: for controllers compliant with synopsis dw-mshc. + +* reg: physical base address of the dw-mshc controller and size of its memory + region. + +* interrupts: interrupt specifier for the controller. The format and value of + the interrupt specifier depends on the interrupt parent for the controller. + +# Slots: The slot specific information are contained within child-nodes with + each child-node representing a supported slot. There should be atleast one + child node representing a card slot. The name of the slot child node should + be 'slot{n}' where n is the unique number of the slot connnected to the + controller. The following are optional properties which can be included in + the slot child node.
Since we're talking slots / cards on a bus, I think the addressing
model would be useful here. So in the main controller node:
#address-cells = <1>;
#size-cells = <0>;
And then each slot would need a reg property and possibly unit address:
slot {
reg = <0>;
...
};
(unit addresses on the slots are only needed if they can't be
disambiguated by name, so not needed if you only have one slot).
-Olof