
Masahiro,
I'm about to work on some refactoring of the Tegra-specific header files in U-Boot to enable support for another Tegra variant. I'd like to confirm where you think header files should be located before doing that.
I believe you want Tegra-specific headers moved into arch/arm/mach-tegra/include. That would probably be a good location for headers currently in arch/arm/include/asm/arch-tegra/. Does that sound correct to you?
What about SoC-specific headers currently in arch/arm/include/asm/arch-tegraNNN/; should they move to arch/arm/mach-tegra/tegraNNN/include?
A number of those header files primarily contain driver-internal definitions such as HW register layouts. I'd like to propose moving this private information into the relevant drivers/ directories where the driver implementation already is. There is no need to place it in an include directory where any C file could include it. For example, 99% of arch/arm/include/asm/arch-tegra/tegra_mmc.h might move to drivers/mmc/tegra_mmc_{priv,internal}.h or even into drivers/mmc/tegra_mmc.c itself. The only thing that wouldn't move is the public prototype for pad_init_mmc(); a function the MMC driver calls and board code is expected to implement. I am considering making a single header that defines all those Tegra-specific function prototypes so we can reduce the number of header files too. What do you think about this.