[U-Boot] [PATCH V4 2/9] EXYNOS5: FDT: Add DWMMC device node data

Simon Glass
2013-01-10T15:21:12Z

Hi Amar,

On Fri, Jan 4, 2013 at 1:34 AM, Amar <amarendra.xt@samsung.com> wrote:
> This patch adds DWMMC device node data for exynos5.
> This patch also adds binding file for DWMMC device node.
>
> Changes from V1:
> 1)Added binding file for DWMMC device node at the location
> "doc/device-tree-bindings/exynos/dwmmc.txt".
> 2)Removed the propname 'index' from device node.
> 3)Prefixed the vendor name 'samsung' before propname in device node.
>
> Changes from V2:
> 1)Updation of commit message and resubmition of proper patch set.
>
> Changes from V3:
> No change.

Sorry I may be too late with this comment.

>
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> Signed-off-by: Amar <amarendra.xt@samsung.com>X
> ---
> arch/arm/dts/exynos5250.dtsi | 32 +++++++++++++++++++++++++++++++
> board/samsung/dts/exynos5250-smdk5250.dts | 22 +++++++++++++++++++++
> doc/device-tree-bindings/exynos/dwmmc.txt | 29 ++++++++++++++++++++++++++++
> 3 files changed, 83 insertions(+)
> create mode 100644 doc/device-tree-bindings/exynos/dwmmc.txt
>
> diff --git a/arch/arm/dts/exynos5250.dtsi b/arch/arm/dts/exynos5250.dtsi
> index 1008797..b701ae5 100644
> --- a/arch/arm/dts/exynos5250.dtsi
> +++ b/arch/arm/dts/exynos5250.dtsi
> @@ -138,4 +138,36 @@
> reg = <0x131b0000 0x30>;
> interrupts = <0 130 0>;
> };
> +
> + dwmmc at 12200000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "samsung,exynos5250-dwmmc";
> + reg = <0x12200000 0x1000>;
> + interrupts = <0 75 0>;
> + };
> +
> + dwmmc at 12210000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "samsung,exynos5250-dwmmc";
> + reg = <0x12210000 0x1000>;
> + interrupts = <0 76 0>;
> + };
> +
> + dwmmc at 12220000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "samsung,exynos5250-dwmmc";
> + reg = <0x12220000 0x1000>;
> + interrupts = <0 77 0>;
> + };
> +
> + dwmmc at 12230000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "samsung,exynos5250-dwmmc";
> + reg = <0x12230000 0x1000>;
> + interrupts = <0 78 0>;
> + };
> };
> diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/board/samsung/dts/exynos5250-smdk5250.dts
> index a8e62da..9baf622 100644
> --- a/board/samsung/dts/exynos5250-smdk5250.dts
> +++ b/board/samsung/dts/exynos5250-smdk5250.dts
> @@ -30,6 +30,10 @@
> spi2 = "/spi at 12d40000";
> spi3 = "/spi at 131a0000";
> spi4 = "/spi at 131b0000";
> + dwmmc0 = "/dwmmc at 12200000";
> + dwmmc1 = "/dwmmc at 12210000";
> + dwmmc2 = "/dwmmc at 12220000";
> + dwmmc3 = "/dwmmc at 12230000";

I think this should be mmc0, mmc1 instead of dwmmc0, dwmmc1, since
ultimate we might want to support different drivers for each. The
alias is support to link the generic mmc device number with the
driver, and I don't think the numbering should be specific to the
driver.

> };
>
> sromc at 12250000 {
> @@ -59,4 +63,22 @@
> compatible = "wolfson,wm8994-codec";
> };
> };
> +
> + dwmmc at 12200000 {
> + samsung,bus-width = <8>;
> + samsung,timing = <1 3 3>;
> + };
> +
> + dwmmc at 12210000 {
> + status = "disabled";
> + };
> +
> + dwmmc at 12220000 {
> + samsung,bus-width = <4>;
> + samsung,timing = <1 2 3>;
> + };
> +
> + dwmmc at 12230000 {
> + status = "disabled";
> + };
> };
> diff --git a/doc/device-tree-bindings/exynos/dwmmc.txt b/doc/device-tree-bindings/exynos/dwmmc.txt
> new file mode 100644
> index 0000000..6232ad6
> --- /dev/null
> +++ b/doc/device-tree-bindings/exynos/dwmmc.txt
> @@ -0,0 +1,29 @@
> +* Exynos 5250 DWC_mobile_storage
> +
> +The Exynos 5250 provides DWC_mobile_storage interface which supports
> +. Embedded Multimedia Cards (EMMC-version 4.5)
> +. Secure Digital memory (SD mem-version 2.0)
> +. Secure Digital I/O (SDIO-version 3.0)
> +. Consumer Electronics Advanced Transport Architecture (CE-ATA-version 1.1)
> +
> +The Exynos 5250 DWC_mobile_storage provides four channels.
> +SOC specific and Board specific properties are channel specific.
> +
> +Required SoC Specific Properties:
> +
> +- compatible: should be
> + - samsung,exynos5250-dwmmc: for exynos5250 platforms
> +
> +- reg: physical base address of the controller and length of memory mapped
> + region.
> +
> +- interrupts: The interrupt number to the cpu.
> +
> +Required Board Specific Properties:
> +
> +- #address-cells: should be 1.
> +- #size-cells: should be 0.
> +- samsung,bus-width: The width of the bus used to interface the devices
> + supported by DWC_mobile_storage (SD-MMC/EMMC/SDIO).

typically 4 or 8

> +- samsung,timing: The timing values to be written into the
> + Drv/sample clock selection register of corresponding channel.

Please add a bit more detail here - there are 3 values - what do they mean?

You should add an example for your binding (something will illustrates
the binding).

Also does the kernel use the same binding?

Regards,
Simon

> --
> 1.8.0
>