Hi Grant,
On 17 February 2011 06:04, Grant Likely grant.likely@secretlab.ca wrote:
On Sat, Feb 12, 2011 at 06:17:00PM +0530, Thomas Abraham wrote:
This patch adds a basic dts file for Samsung's SMDKV310 board which is based on the s5pv310 machine.
Signed-off-by: Thomas Abraham thomas.abraham@linaro.org
Structure looks good. Some comments below, but it is getting close.
arch/arm/mach-s5pv310/mach-smdkv310.dts | 78 +++++++++++++++++++++++++++++++ 1 files changed, 78 insertions(+), 0 deletions(-) create mode 100755 arch/arm/mach-s5pv310/mach-smdkv310.dts
diff --git a/arch/arm/mach-s5pv310/mach-smdkv310.dts b/arch/arm/mach-s5pv310/mach-smdkv310.dts new file mode 100755 index 0000000..75aa76d --- /dev/null +++ b/arch/arm/mach-s5pv310/mach-smdkv310.dts @@ -0,0 +1,78 @@ +/dts-v1/;
+/ {
- model = "smdkv310";
<snip>
- chosen {
- bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc";
initrd address should be passed via the linux,initrd-start and linux,initrd-end properties. U-Boot already knows how to do this so it shouldn't be encoded in the kernel parameters list.
Ok. "linux,initrd-start" and "linux,initrd-end" properties will be added in chosen node and initrd parameters from bootargs removed as below.
chosen { bootargs = "root=/dev/ram0 console=ttySAC1,115200 init=/linuxrc"; linux,initrd-start=<0x41000000>; linux,initrd-end=<0x40800000>; } ;
- console-defaults = <0x3c5 0x3 0x111>;
Drop console-defaults. The configuration should be encoded in the uart's device tree node.
The stage at which console_init is called, the code that initializes the uart module for console operation does not have access to the uart device tree node. Hence, the console-default register values are put into the chosen node which is easier to access. If this not the right approach, maybe the uart device tree node will have to be looked up by using "for_each_compatible_node" or similar. Would you suggest using for_each_compatible_node in this case.
- xtal-frequency = <24000000>;
It looks like this is misplaced. If this is the primary frequency for the system, then it should go either in the root node, the soc node, or the cpu nodes.
This is the frequency of the crystal clock from which all the SoC internal clocks are derived. The crystal clock frequency depends on the board. So it was put into the chosen node. Since this is board specific, this is added in the chosen node.
- };
<snip>
- serial@0x13800000 {
- reg = <0x13800000 0x100>;
- interrupts = <16 18 17>;
- reg-defaults = <0x3c5 0x3 0x111>;
reg-defaults doesn't sound like a very good binding. It's better when the properties reflect what is trying to be configured instead of a set of magic values. (That said, sometimes magic values are appropriate, but even then it needs to be well documented so that mere-mortals have a fighting chance of understanding and manipulating it).
Ok. This will be changed to be more informative.
- compatible = "samsung,s5pv310-uart","samsung,s3c2410-uart";
- };
<snip>
Thanks, Thomas.