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

login
register
mail settings
Submitter Amar
Date Jan. 4, 2013, 9:34 a.m.
Message ID <1357292050-12137-3-git-send-email-amarendra.xt@samsung.com>
Download mbox | patch
Permalink /patch/209412/
State Superseded
Delegated to: Minkyu Kang
Headers show

Comments

Amar - Jan. 4, 2013, 9:34 a.m.
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.

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
Simon Glass - Jan. 10, 2013, 3:21 p.m.
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@12200000 {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               compatible = "samsung,exynos5250-dwmmc";
> +               reg = <0x12200000 0x1000>;
> +               interrupts = <0 75 0>;
> +       };
> +
> +       dwmmc@12210000 {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               compatible = "samsung,exynos5250-dwmmc";
> +               reg = <0x12210000 0x1000>;
> +               interrupts = <0 76 0>;
> +       };
> +
> +       dwmmc@12220000 {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               compatible = "samsung,exynos5250-dwmmc";
> +               reg = <0x12220000 0x1000>;
> +               interrupts = <0 77 0>;
> +       };
> +
> +       dwmmc@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@12d40000";
>                 spi3 = "/spi@131a0000";
>                 spi4 = "/spi@131b0000";
> +               dwmmc0 = "/dwmmc@12200000";
> +               dwmmc1 = "/dwmmc@12210000";
> +               dwmmc2 = "/dwmmc@12220000";
> +               dwmmc3 = "/dwmmc@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@12250000 {
> @@ -59,4 +63,22 @@
>                         compatible = "wolfson,wm8994-codec";
>                 };
>         };
> +
> +       dwmmc@12200000 {
> +               samsung,bus-width = <8>;
> +               samsung,timing = <1 3 3>;
> +       };
> +
> +       dwmmc@12210000 {
> +               status = "disabled";
> +       };
> +
> +       dwmmc@12220000 {
> +               samsung,bus-width = <4>;
> +               samsung,timing = <1 2 3>;
> +       };
> +
> +       dwmmc@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
>
Amarendra Reddy - Jan. 15, 2013, 9:11 a.m.
Hi Simon,



On 10 January 2013 20:51, Simon Glass <sjg@chromium.org> wrote:

> 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@12200000 {
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +               compatible = "samsung,exynos5250-dwmmc";
> > +               reg = <0x12200000 0x1000>;
> > +               interrupts = <0 75 0>;
> > +       };
> > +
> > +       dwmmc@12210000 {
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +               compatible = "samsung,exynos5250-dwmmc";
> > +               reg = <0x12210000 0x1000>;
> > +               interrupts = <0 76 0>;
> > +       };
> > +
> > +       dwmmc@12220000 {
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +               compatible = "samsung,exynos5250-dwmmc";
> > +               reg = <0x12220000 0x1000>;
> > +               interrupts = <0 77 0>;
> > +       };
> > +
> > +       dwmmc@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@12d40000";
> >                 spi3 = "/spi@131a0000";
> >                 spi4 = "/spi@131b0000";
> > +               dwmmc0 = "/dwmmc@12200000";
> > +               dwmmc1 = "/dwmmc@12210000";
> > +               dwmmc2 = "/dwmmc@12220000";
> > +               dwmmc3 = "/dwmmc@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.
>
> Ok.

>  >         };
> >
> >         sromc@12250000 {
> > @@ -59,4 +63,22 @@
> >                         compatible = "wolfson,wm8994-codec";
> >                 };
> >         };
> > +
> > +       dwmmc@12200000 {
> > +               samsung,bus-width = <8>;
> > +               samsung,timing = <1 3 3>;
> > +       };
> > +
> > +       dwmmc@12210000 {
> > +               status = "disabled";
> > +       };
> > +
> > +       dwmmc@12220000 {
> > +               samsung,bus-width = <4>;
> > +               samsung,timing = <1 2 3>;
> > +       };
> > +
> > +       dwmmc@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
> Ok. I will mention this.
> > +- 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?



> Ok
>


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



> Ok
>


> Also does the kernel use the same binding?
>
> The uboot binding is a subset of kernel binding.



> Regards,
> Simon
>
>
> > --
> > 1.8.0
> >
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

Patch

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@12200000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos5250-dwmmc";
+		reg = <0x12200000 0x1000>;
+		interrupts = <0 75 0>;
+	};
+
+	dwmmc@12210000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos5250-dwmmc";
+		reg = <0x12210000 0x1000>;
+		interrupts = <0 76 0>;
+	};
+
+	dwmmc@12220000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos5250-dwmmc";
+		reg = <0x12220000 0x1000>;
+		interrupts = <0 77 0>;
+	};
+
+	dwmmc@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@12d40000";
 		spi3 = "/spi@131a0000";
 		spi4 = "/spi@131b0000";
+		dwmmc0 = "/dwmmc@12200000";
+		dwmmc1 = "/dwmmc@12210000";
+		dwmmc2 = "/dwmmc@12220000";
+		dwmmc3 = "/dwmmc@12230000";
 	};
 
 	sromc@12250000 {
@@ -59,4 +63,22 @@ 
 			compatible = "wolfson,wm8994-codec";
 		};
 	};
+
+	dwmmc@12200000 {
+		samsung,bus-width = <8>;
+		samsung,timing = <1 3 3>;
+	};
+
+	dwmmc@12210000 {
+		status = "disabled";
+	};
+
+	dwmmc@12220000 {
+		samsung,bus-width = <4>;
+		samsung,timing = <1 2 3>;
+	};
+
+	dwmmc@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).
+- samsung,timing: The timing values to be written into the
+	Drv/sample clock selection register of corresponding channel.