[PATCH 3/4] ARM: mach-shmobile: r8a7779: Minimal setup using DT

Magnus Damm magnus.damm at gmail.com
Mon Feb 18 07:14:05 EST 2013


On Mon, Feb 18, 2013 at 8:37 PM, Simon Horman <horms at verge.net.au> wrote:
> On Mon, Feb 18, 2013 at 06:36:12PM +0900, Magnus Damm wrote:
>> Hi Simon,
>>
>> Here's some feedback on your r8a7779 DT code.
>>
>> 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>
>> > ---
>>
>> > --- a/arch/arm/mach-shmobile/setup-r8a7779.c
>> > +++ b/arch/arm/mach-shmobile/setup-r8a7779.c
>> > @@ -321,7 +321,7 @@ static struct platform_device i2c3_device = {
>> >         .num_resources  = ARRAY_SIZE(rcar_i2c3_res),
>> >  };
>> >
>> > -static struct platform_device *r8a7779_early_devices[] __initdata = {
>> > +static struct platform_device *r8a7779_early_devices_dt[] __initdata = {
>> >         &scif0_device,
>> >         &scif1_device,
>> >         &scif2_device,
>> > @@ -330,15 +330,15 @@ static struct platform_device *r8a7779_early_devices[] __initdata = {
>> >         &scif5_device,
>> >         &tmu00_device,
>> >         &tmu01_device,
>> > +};
>> > +
>> > +static struct platform_device *r8a7779_early_devices[] __initdata = {
>> >         &i2c0_device,
>> >         &i2c1_device,
>> >         &i2c2_device,
>> >         &i2c3_device,
>> >  };
>> >
>> > -static struct platform_device *r8a7779_late_devices[] __initdata = {
>> > -};
>> > -
>>
>> Thanks for your work on this. Two things with early/late devices on r8a7779:
>>
>> 1)  Same thing as sh73a0 applies here, please refrain from using early
>> devices with DT.
>
> I guess you are referring to tmu.
> If so, yes, I can move them to r8a7779_early_devices.

As we talked about last Friday, please try to avoid using early
devices in general. It is enough to add SCIF and TMU as late devices.
This goes for both sh73a0 and r8a7779. The only thing you need to do
early is to setup the delay. Please look at the emev2 implementation
for what is needed.

>> 2) The i2c devices as early devices look incorrect. Can you make them
>> late devices?
>
> r8a7779_early_devices is only used for the non-DT case.
> For the non-DT case i2c was set up as early devices before this patch-set.
> Would you like me to change them to late devices for non-DT,
> a change that is orthogonal to this patch-set?

Yes. I realize it is not really related to this DT feature, but it
certainly looks incorrect.

Thanks,

/ magnus



More information about the linux-arm-kernel mailing list