
On 12 May 2016 at 13:32, Stephen Warren swarren@wwwdotorg.org wrote:
From: Stephen Warren swarren@nvidia.com
This adds the bare minimum code to support Tegra186, with UART and eMMC working.
The empty gpio.h is required because <asm/gpio.h> includes it. A future cleanup round may be able to solve this for all Tegra generations at once.
mach-tegra/Makefile is adjusted not to compile anything for Tegra186, but instead to defer everything to mach-tegra/tegra186/Makefile. This allows the SoC code to pick-and-choose which of the C files in the "common" mach-tegra/ directory to compile in based on the SoC's needs. Most of the code is not valid for Tegra186, and this approach removes the need for mach-tegra/Makefile to contain many SoC-specific ifdefs. This approach may be applied to all other Tegra SoCs in a future cleanup round.
board186.c is introduced to replace board.c and board2.c. These files currently contain a slew of SoC- and board-specific code that is not valid for Tegra186. This approach avoids adding yet more ifdefs to those files. A future cleanup round may refactor most of board*.c into board-/ SoC-specific functions files thus allowing the top-level functions like board_init_early_f to be shared again.
Signed-off-by: Stephen Warren swarren@nvidia.com
This patch series depends on the following at compile time:
- gpio: add Tegra186 GPIO driver
- mmc: tegra: add basic Tegra186 support
... and the following only at run time:
- dm: allow setting driver_data before/during bind
arch/arm/dts/tegra186.dtsi | 56 +++++++++++++++++++++++ arch/arm/include/asm/arch-tegra186/gpio.h | 10 +++++ arch/arm/include/asm/arch-tegra186/tegra.h | 16 +++++++ arch/arm/mach-tegra/Kconfig | 6 +++ arch/arm/mach-tegra/Makefile | 3 ++ arch/arm/mach-tegra/board186.c | 55 +++++++++++++++++++++++ arch/arm/mach-tegra/tegra186/Kconfig | 15 +++++++ arch/arm/mach-tegra/tegra186/Makefile | 8 ++++ include/configs/tegra186-common.h | 71 ++++++++++++++++++++++++++++++ 9 files changed, 240 insertions(+) create mode 100644 arch/arm/dts/tegra186.dtsi create mode 100644 arch/arm/include/asm/arch-tegra186/gpio.h create mode 100644 arch/arm/include/asm/arch-tegra186/tegra.h create mode 100644 arch/arm/mach-tegra/board186.c create mode 100644 arch/arm/mach-tegra/tegra186/Kconfig create mode 100644 arch/arm/mach-tegra/tegra186/Makefile create mode 100644 include/configs/tegra186-common.h
Reviewed-by: Simon Glass sjg@chromium.org
Strange use of floating point!