
On 5 August 2016 at 11:03, Stephen Warren swarren@wwwdotorg.org wrote:
From: Stephen Warren swarren@nvidia.com
The Tegra BPMP (Boot and Power Management Processor) is a separate auxiliary CPU embedded into Tegra to perform power management work, and controls related features such as clocks, resets, power domains, PMIC I2C bus, etc. This driver provides the core low-level communication path by which feature-specific drivers (such as clock) can make requests to the BPMP. This driver is similar to an MFD driver in the Linux kernel. It is unconditionally selected by CONFIG_TEGRA186 since virtually any Tegra186 build of U-Boot will need the feature.
Signed-off-by: Stephen Warren swarren@nvidia.com
v3:
- Implement misc uclass "call" op.
- Squash in patch that scans DT for child devices (for I2C support), v2 of which had changelog:
- Use dm_scan_fdt_dev() to scan sub-nodes. This function was just added.
v2:
- Use an SPDX license header in bpmp_abi.h.
- Add a function-level comment for tegra186_bpmp_call().
- Use fdtdec_get_addr_size_auto_noparent() to retrieve shmem address.
This depends on the following patches: fdt: allow fdtdec_get_addr_size_*() to translate addresses fdt_support: fdt_translate_address() blob const correctness
arch/arm/include/asm/arch-tegra/bpmp_abi.h | 1591 ++++++++++++++++++++++++++++ arch/arm/mach-tegra/Kconfig | 2 + drivers/misc/Kconfig | 12 + drivers/misc/Makefile | 1 + drivers/misc/tegra186_bpmp.c | 257 +++++ 5 files changed, 1863 insertions(+) create mode 100644 arch/arm/include/asm/arch-tegra/bpmp_abi.h create mode 100644 drivers/misc/tegra186_bpmp.c
Reviewed-by: Simon Glass sjg@chromium.org