On Wed, Jul 18, 2012 at 01:33:42PM +0800, Shawn Guo wrote:
I have an IP block getting different FIFO size on different IMX SoCs.
We could introduce a new compatible string for driver to figure it out,
but I think the simpler way is just have the data encoded in device
tree. In any case DT is not completely limited in encoding board
specific data. Today, we have IO region and interrupt number of
hardware blocks encoded in DT, and to me, FIFO size could just be
another aspect of hardware block we could choose to encode in DT.
So, this is part of the problem with encoding the description of the SoC
into the DT - we're not doing a good job of splitting out the silicon
description from the board specific description which is not a triumph
for maintainability since it means that we end up needing to modify the
DT for every board using the silicon if we want to use the new feature
(assuming people maintain binary compatibility with old DTs, which we
don't do a good job at either even for established DT architectures).
It's not the using device tree bit that creates concern for me here,
it's the fact that the board and silicon aren't being separated.
+- db8500.dtsi // silicon
\
+-- snowball.dts // board
db8xx0.dtsi // shared silicon
_________/\_________
/ \
db8500.dtsi db8540.dtsi // differing silicon
\ \
+-- snowball.dts +-- new_board.dts // board