On Tue, Sep 02, 2008 at 03:56:30PM -0600, Gary Thomas wrote:
> Following on with my RTC problem, I cut&pasted this from
> the TQM5200 dts file:
>                 [EMAIL PROTECTED] {
>                         #address-cells = <1>;
>                         #size-cells = <0>;
>                         compatible = "fsl,mpc5200-i2c","fsl-i2c";
>                         reg = <0x3d40 0x40>;
>                         interrupts = <2 16 0>;
>                         interrupt-parent = <&mpc5200_pic>;
>                         fsl5200-clocking;
>
>                          [EMAIL PROTECTED] {
>                                 device_type = "rtc";
>                                 compatible = "dallas,ds1307";
>                                 reg = <0x68>;
>                         };
>                 };
>
> However, the dts file I started with had this (*mine*):
>               [EMAIL PROTECTED] {
>                       #address-cells = <1>;
>                       #size-cells = <0>;
>                       compatible = "fsl,mpc5200-i2c","fsl-i2c";
>                       cell-index = <1>;
>                       reg = <3d40 40>;
>                       interrupts = <2 10 0>;
>                       interrupt-parent = <&mpc5200_pic>;
>                       fsl5200-clocking;
>               };
>
> Notice the different mix of hex (0xNNN) and implied hex values.
> This is really confusing to me.  Even more so when I added the
> RTC snippet cut directly from the TQM5200 file:
>
>                          [EMAIL PROTECTED] {
>                                 device_type = "rtc";
>                                 compatible = "dallas,ds1307";
>                                 reg = <0x68>;
>                         };
>
> This yielded a syntax error when merged with my platform dts.
> When I changed the 'reg=<0x68>' to 'reg=<68>', the syntax error
> went away & it worked perfectly.
>
> What gives?  Why is explicit hex sometimes an error and sometimes not?

Because we changed the format at one point.  Originally (the "dts-v0"
format) it was implicitly hex everywhere, which turned out to be a
mistake.  So we introduced the new dts-v1 format which uses C-style
literals.  New-style files are marked with a /dts-v1/; token at the
top of the file.

> Is the format of this file documented anywhere (I've not found it)?

It's in Documentation/dts-format.txt in the dtc tree.  I don't think
that's been included in the version of dtc in the kernel tree, though,
so you'll need to download the standalone dtc.

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to