Reputation: 8610
I am reading about .dts from Linux Source and have a query regarding Device register space. Following content took from "arch/arm/boot/dts/omap3.dtsi"
dss@48050000 {
compatible = "ti,omap3-dss","simple-bus";
reg = <0x48050000 0x200>;
ti,hwmods = "dss_core";
#address-cells = <1>;
#size-cells = <1>;
ranges;
dispc@48050400 {
compatible = "ti,omap3-dispc";
reg = <0x48050400 0x400>;
interrupts = <25>;
ti,hwmods = "dss_dispc";
};
}
For the node dss@48050000 device's register starts from 0x48050000 with size of 0x200 . My doubt is for child node dispc@48050400 the base address should starts from 0x48050200 since earlier device register address ends at 0x48050200.
How come it is starting from 0x48050400 .
Also what's difference between dts and dtsi file??
Upvotes: 1
Views: 2304
Reputation: 2716
Looking at page 2438 the omap3 TR (SPRUF98X–April 2010–Revised June 2012) http://www.ti.com/product/omap3530
You can see that the register map shows the display subsystem registers start at 0x48050000 (which correlates to the dts file). It also shows a big gap in the register addresses, with DISPC_REVISION at 0x48050400, which also correlates with the dts file.
I suppose you could make the size of the registers at 0x48050000 0x10 (because that is the size of the register space at that address), or you could make it 0x400 just so it goes to the start of the next block even though most of that space is unused. Whatever the case, it doesn't really matter much so long as all registers are covered.
So the moral of the story is that the software has to conform to the hardware, and that is why there is a gap.
Also a dtsi file is just a dst include file... a dtsi can be included in multiple dts files.
Upvotes: 2