On 11/11/2012 11:27 AM, Viresh Kumar wrote: > On 11 November 2012 19:42, Rob Herring <robherri...@gmail.com> wrote: >> On 11/06/2012 10:22 PM, viresh kumar wrote: > >>> cluster0: cluster@0 { >>> + data1 = <0x50 0x60 0x70>; >>> + data2 = <0x5000 0x6000 0x7000>; >>> + data3 = <0x50000000 0x60000000 0x70000000>; >> >> So there is a mismatch in our assumptions. You are just truncating >> 32-bit values. I assumed you were using the 8 and 16 bit sizes that are >> now supported in dts. I don't think we should just truncate values >> blindly. We have support for specifying 8 and 16 values now so you >> should use that and define that as part of a binding. > > Sorry couldn't get your point at all :( > What did you mean by "truncating 32 bit values" and how should we > tell via DT, that the value passed is 8 bit, 16 bit or 32 bit? >
You are trying to retrieve an array of 8 or 16-bit values which are stored as 32-bit values in dtb. Why not define them in the binding as 8 or 16 bit to begin with. Then there is never any ambiguity about their size. I don't think the size is stored in the dtb. It is only in the dts. You need to define the size in the binding definitions and use '/bits/' annotation. With this the data is packed. Then the array function used should match what the binding defines. Rob _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev