On Fri, Sep 24, 2010 at 1:09 AM, Grant Likely <[email protected]> wrote:
> On Mon, Sep 20, 2010 at 03:49:10PM +0530, Shaju Abraham wrote:
>
> Hi Shaju,
>
> Thanks for this series.  First of, as Jon mentioned, please format
> your patches so that the first line is a short one-line description of
> the patch, followed by a blank line, followed by the detailed
> description.
>
> Comments below.
>
>> Signed-off-by: Shaju Abraham <[email protected]>
>> ---
>>  arch/arm/boot/dts/v210.dts |  147 
>> ++++++++++++++++++++++++++++++++++++++++++++
>>  1 files changed, 147 insertions(+), 0 deletions(-)
>>  create mode 100644 arch/arm/boot/dts/v210.dts
>>
>> diff --git a/arch/arm/boot/dts/v210.dts b/arch/arm/boot/dts/v210.dts
>> new file mode 100644
>> index 0000000..7cd219f
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/v210.dts
>> @@ -0,0 +1,147 @@
>> +/dts-v1/;
>> +
>> +/ {
>> +     model = "smdkv210";
>
> The manufacturer name should also appear in the 'model' property

OK.

>
>> +     compatible = "samsung,smdkv210";
>> +     #address-cells = <1>;
>> +     #size-cells = <1>;
>> +     interrupt-parent = <&VIC0>;
>> +
>> +     aliases{
>> +             vic0=&VIC0;
>
> This alias isn't actually needed as far as I can see.

 Will remove it..


>
>> +     };
>> +
>> +
>> +     memory {
>> +             name = "memory";
>> +             device_type = "memory";
>> +             reg = <0x20000000 0x40000000>;
>> +     };
>> +
>> +     chosen {
>> +             bootargs = "root=/dev/nfs rw 
>> nfsroot=192.168.0.10:/opt/ubuntu-taiwan/ 
>> ip=192.168.0.1:192.168.0.10:192.168.0.10:255:255:255:0:eth0
>> +                             console=ttySAC2,115200 init=/linuxrc";
>
> It's generally a bad idea to put default bootargs into the device tree
> source file.  It is okay for the moment, but will need to be removed
> later when the firmware starts passing the bootargs natively.
>
>> +     };
>> +
>> +     soc {
>> +             #address-cells = <1>;
>> +             #size-cells = <1>;
>> +             compatible = "simple-bus";
>> +             ranges = <0x00000000 0x00000000 0xFFFFFFFF>;
>
> A single range that translates the entire address range can be
> specified simply as an empty ranges property, like so:
>
>        ranges;
>
>> +
>> +             watch...@0xe2700000{
>
> should be: 'watch...@e2700000 {'.  In the node name the address should
> be lowercase and the '0x' prefix should not be used.
>
>> +                     compatible = "samsung,s3c2410-wdt";
>> +                     reg = <0xE2700000 0x2000>;
>
> Nitpick; use lowercase in addresses.
>
>> +                     interrupts = <27 >;
>
> Nitpick; inconsistent whitespace.
>
>> +                     interrupt-parent = <&VIC0>;
>> +             };
>> +
>> +
>> +             VIC0:v...@f2000000 {
>
> Node names should reflect what the device is for, not what the
> specific device is.  So this node name should be: "VIC0:
> interrupt-control...@f2000000 {"
>
>> +                     #interrupt-cells = <1>;
>> +                     interrupt-controller;
>> +                     reg = <0xf2000000 0x1000>;
>> +                     virtual-reg = <0xf4000000>;
>
> Don't specify virtual-reg unless firmware is setting it the MMU in a
> way that the kernel must reuse (which would be unusual).  You can
> probably drop this property.

OK. My intention was to retrieve the  virtual address for the
statically mapped  devices.
I can drop it and use existing macros to pass the virtual address.


>
>> +                     compatible = "arm,vic";
>
> The compatible property for SoC devices should also include the exact
> device in addition to the generic specification.  Something like
> "samsung,s3c2410-vic".  Also, arm,vic may be too generic a name.  The
> exact core name may is a better choice; ie: "arm,pl192".  So, for all
> the interrupt controller nodes, compatible should look like this:
>
>        compatible = "samsung,s3c2410-vic", "arm,pl192";
>
>
> Finally, documentation needs to be added to devicetree.org to document
> the "arm,vic" binding.
>
>> +                     irq-src = <0xffffffff>;
>
> What does irq-src mean?

That is the bitmask for the interrupts populated on each vic.

>
>> +             };
>> +             VIC1:v...@f2100000 {
>> +                     #interrupt-cells = <1>;
>> +                     interrupt-controller;
>> +                     reg = <0xf2100000 0x1000>;
>> +                     virtual-reg = <0xf4010000>;
>
> ditto
>
>> +                     interrupt-parent = <&VIC0>;
>> +                     irq-src = <0xffffffff>;
>> +                     compatible = "arm,vic";
>> +             };
>> +             VIC2:v...@f2200000{
>> +                     #interrupt-cells = <1>;
>> +                     interrupt-controller;
>> +                     reg = <0xf2200000 0x1000>;
>> +                     virtual-reg = <0xf4020000>;
>> +                     interrupt-parent = <&VIC1>;
>> +                     irq-src = <0xffffffff>;
>> +                     compatible = "arm,vic";
>> +             };
>> +             VIC3:v...@f2300000 {
>> +                     #interrupt-cells = <1>;
>> +                     interrupt-controller;
>> +                     reg = <0xf2300000 0x1000>;
>> +                     virtual-reg = <0xf4030000>;
>> +                     interrupt-parent = <&VIC2>;
>> +                     irq-src = <0xffffffff>;
>> +                     compatible = "arm,vic";
>> +             };
>> +             u...@0xe2900000 {
>
> Use generic name 'serial' instead of 'uart'.  Drop the '0x'.
>
> So, this should be: ser...@e2900000.  Ditto for the rest of the uart
> nodes.
>
>> +                     reg = <0xe2900000 0x1000>;
>> +                     virtual-reg = <0xf5000000>;
>
> remove virtual-reg
>
>> +                     interrupts = <10>;
>> +                     interrupt-parent = <&VIC1>;
>> +                     compatible = 
>> "samsung,s3c-uart","samsung,s5pv210-uart_sh";
>
> Use 's3c2410-uart' instead of 's3c-uart'.  Don't use the underscore
> '_' character in compatible values.  Only claim compatibility with an
> older part if there already is a binding documented for the older
> part.  Ditto for the rest of the uart nodes.
>
>> +             };
>> +             u...@0xe2900400 {
>> +                     reg = <0xe2900400 0x1000>;
>> +                     virtual-reg = <0xf5000400>;
>> +                     interrupts = <11>;
>> +                     interrupt-parent = <&VIC1>;
>> +                     compatible = 
>> "samsung,s3c-uart","samsung,s5pv210-uart_sh";
>> +             };
>> +             u...@0xe2900800 {
>> +                     reg = <0xe2900800 0x1000>;
>> +                     virtual-reg = <0xf5000800>;
>> +                     interrupts = <12>;
>> +                     interrupt-parent = <&VIC1>;
>> +                     compatible = 
>> "samsung,s3c-uart","samsung,s5pv210-uart_sh";
>> +             };
>> +             u...@0xe2900c00 {
>> +                     reg = <0xe2900c00 0x1000>;
>> +                     virtual-reg = <0xf5000c00>;
>> +                     interrupts = <13>;
>> +                     interrupt-parent = <&VIC1>;
>> +                     compatible = 
>> "samsung,s3c-uart","samsung,s5pv210-uart_sh";
>> +             };
>> +
>> +             tim...@e2500000 {
>
> Should be simply 'ti...@e2500000'.  It should not be called 'timer0'.
> Same goes for timers 1 through 4.
>
>> +                     reg = <0xe2500000 0x1000>;
>> +                     virtual-reg = <0xf0300000>;
>> +                     interrupts = <21 11>;
>
> Just to double check; this property says that the timer has two
> interrupt output lines.  Correct?

No . Thats a mistake . Timer has only one irq line. Will modify.

>
>> +                     compatible = "samsung,s3c-timer","samsung,s5p-timer";
>
> Same comments for timers as made for uart compatible property.
>
>> +
>> +             };
>> +             tim...@e2500000 {
>> +                     reg = <0xe2500000 0x1000>;
>> +                     virtual-reg = <0xf0300000>;
>> +                     interrupts = <22 12>;
>> +                     compatible = "samsung,s3c-timer","samsung,s5p-timer";
>> +
>> +             };
>> +             tim...@e2500000 {
>> +                     reg = <0xe2500000 0x1000>;
>> +                     virtual-reg = <0xf0300000>;
>> +                     interrupts = <23 13>;
>> +                     compatible = "samsung,s3c-timer","samsung,s5p-timer";
>> +
>> +             };
>> +             tim...@e2500000 {
>> +                     reg = <0xe2500000 0x1000>;
>> +                     virtual-reg = <0xf0300000>;
>> +                     interrupts = <24 14>;
>> +                     compatible = "samsung,s3c-timer","samsung,s5p-timer";
>> +
>> +             };
>> +
>> +             tim...@e2600000 {
>> +                     reg = <0xe2600000 0x1000>;
>> +                     virtual-reg = <0xf5200000>;
>> +                     interrupts = <25 15>;
>> +                     compatible = "samsung,s3c-timer","samsung,s5p-timer";
>> +
>> +             };
>> +             s...@e2600000 {
>> +                     reg = <0xe8000000 0x1000>;
>> +                     virtual-reg = <0xf5100000>;
>
> What is 'SROM'?  This node is missing a compatible property.

SROM is the controller for NOR Flash,SRAM,PROM memory. The physical-virtual
address mapping  are statically setup by the kernel during initial
bootup. This is done
in the devicemaps_init() called from paging_init().

The device tree is flattened later in the bootup sequence. So it is
not possible to retrieve
properties for statically mapped devices from the device tree.


Regards
Shaju



>
> g.
>
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to