[PATCH 3/4] ARM: mach-shmobile: r8a7779: Minimal setup using DT
Magnus Damm
magnus.damm at gmail.com
Mon Feb 18 07:22:24 EST 2013
Hi Simon,
On Thu, Jan 31, 2013 at 10:50 AM, Simon Horman
<horms+renesas at verge.net.au> wrote:
> Allow a minimal setup of the r8a7779 SoC using a flattened device tree.
> In particular, configure the i2c and ethernet controllers using a
> flattened device tree.
>
> SCI serial controller and TMU clock source, whose drivers do not yet
> support configuration using a flattened device tree, are still configured
> using C code in order to allow booting of a board with this SoC.
>
> The ethernet controller also requires a regulator which is a board property.
> A sample snippet DT for the marzen board is as follows:
>
> /dts-v1/;
> /include/ "r8a7779.dtsi"
>
> / {
> fixedregulator3v3: fixedregulator at 0 {
> compatible = "regulator-fixed";
> regulator-name = "fixed-3.3V";
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> regulator-boot-on;
> regulator-always-on;
> };
> };
>
> &lan0 {
> vddvario-supply = <&fixedregulator3v3>;
> vdd33a-supply = <&fixedregulator3v3>;
> };
>
> Signed-off-by: Simon Horman <horms+renesas at verge.net.au>
> ---
> arch/arm/boot/dts/r8a7779.dtsi | 45 ++++++++++++++++++++
> arch/arm/mach-shmobile/include/mach/common.h | 2 +
> arch/arm/mach-shmobile/setup-r8a7779.c | 58 +++++++++++++++++++++++---
> 3 files changed, 99 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
> index eadc12e..9564040 100644
> --- a/arch/arm/boot/dts/r8a7779.dtsi
> +++ b/arch/arm/boot/dts/r8a7779.dtsi
> @@ -37,4 +37,49 @@
> reg = <0xf0001000 0x1000>,
> <0xf0000100 0x100>;
> };
> +
> + i2c0: i2c at 0xffc70000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "renesas,rmobile-iic";
> + reg = <0xffc70000 0x1000>;
> + interrupt-parent = <&gic>;
> + interrupts = <0 79 0x4>;
> + };
> +
> + i2c1: i2c at 0xffc71000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "renesas,rmobile-iic";
> + reg = <0xffc71000 0x1000>;
> + interrupt-parent = <&gic>;
> + interrupts = <0 82 0x4>;
> + };
> +
> + i2c2: i2c at 0xffc72000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "renesas,rmobile-iic";
> + reg = <0xffc72000 0x1000>;
> + interrupt-parent = <&gic>;
> + interrupts = <0 80 0x4>;
> + };
> +
> + i2c3: i2c at 0xffc73000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "renesas,rmobile-iic";
> + reg = <0xffc73000 0x1000>;
> + interrupt-parent = <&gic>;
> + interrupts = <0 81 0x4>;
> + };
> +
> + lan0: lan0 at 18000000 {
> + compatible = "smsc,lan9220", "smsc,lan9115";
> + reg = <0x18000000 0x100>;
> + phy-mode = "mii";
> + interrupt-parent = <&gic>;
> + interrupts = <0 28 0x4>;
> + reg-io-width = <4>;
> + };
> };
Simon, thanks for your efforts on this DT reference implementation.
The lan0 snippet above seems incorrect. If I understand the code above
correctly then it is written to be specific to the r8a7779 SoC. I
suspect so because it is located in the SoC-specific dtsi file. The
smsc ethernet controller is a board specific property - so it should
instead be located in r8a7779-marzen-reference.dts.
In the future, feel free to ask if you are unsure which bits that are
SoC specific properties and which that belong to the board.
Thanks,
/ magnus
More information about the linux-arm-kernel
mailing list