
This series converts all Tegra boards to use driver model for PCI. The net effect should be no change in functionality.
A few additional features are added to make this possible: - Helper functions to support accessing 8- and 16-bit values within a 32-bit word - Fixing a build error for CONFIG_CMD_PCI_ENUM - Decoding the PCI ranges property such that configuration ranges are ignored - Supporting bus-master devices on boards where RAM does not start at 0
This series is tested on beaver. It is available at u-boot-dm/tegra-working.
Changes in v2: - Update commit message to explain that the feature is not important - Drop the feature from tegra boards - Rename 'addr' to 'size' - Correct logic for use of gd->pci_ram_top - Update commit message to mention future work - Use the device_is_on_pci_bus() API - Leave pci_skip_dev() at the bottom of the file to reduce the diff size
Simon Glass (8): dm: tegra: pci: Move CONFIG_PCI_TEGRA to Kconfig dm: pci: Avoid a driver model build error with CONFIG_CMD_PCI_ENUM dm: pci: Set up the SDRAM mapping correctly dm: pci: Support decoding ranges with duplicate entries dm: pci: Add functions to emulate 8- and 16-bit access dm: pci: Add a function to get the controller for a bus dm: pci: Add a function to find the regions for a PCI bus dm: tegra: pci: Convert tegra boards to driver model for PCI
arch/arm/mach-tegra/Kconfig | 1 + common/cmd_pci.c | 4 + configs/apalis_t30_defconfig | 1 + configs/beaver_defconfig | 1 + configs/cardhu_defconfig | 1 + configs/jetson-tk1_defconfig | 1 + configs/trimslice_defconfig | 1 + drivers/pci/Kconfig | 10 ++ drivers/pci/pci-uclass.c | 105 +++++++++++- drivers/pci/pci_tegra.c | 394 +++++++++++++++---------------------------- include/configs/apalis_t30.h | 2 - include/configs/beaver.h | 2 - include/configs/cardhu.h | 2 - include/configs/jetson-tk1.h | 2 - include/configs/trimslice.h | 2 - include/fdtdec.h | 3 - include/pci.h | 51 ++++++ lib/fdtdec.c | 3 - 18 files changed, 304 insertions(+), 282 deletions(-)