cf9b0772f2
This branch contains platform-related driver updates for ARM and ARM64, these are the areas that bring the changes: New drivers: - Driver support for Renesas R-Car V3M (R8A77970) - Power management support for Amlogic GX - A new driver for the Tegra BPMP thermal sensor - A new bus driver for Technologic Systems NBUS Changes for subsystems that prefer to merge through arm-soc: - The usual updates for reset controller drivers from Philipp Zabel, with five added drivers for SoCs in the arc, meson, socfpa, uniphier and mediatek families. - Updates to the ARM SCPI and PSCI frameworks, from Sudeep Holla, Heiner Kallweit and Lorenzo Pieralisi. Changes specific to some ARM-based SoC - The Freescale/NXP DPAA QBMan drivers from PowerPC can now work on ARM as well. - Several changes for power management on Broadcom SoCs - Various improvements on Qualcomm, Broadcom, Amlogic, Atmel, Mediatek - Minor Cleanups for Samsung, TI OMAP SoCs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJaDggbAAoJEGCrR//JCVInIeQQAN1MDyO1UaWiFYnbkVOgzFcj dqbFOc41DBE/90JoBWE8kR/rjyF83OqztiaYpx9viu2qMMBZVcOwxhCUthWK59c/ IujYdw4zGevLscF+jdrLbXgk97nfaWebsHyTAF307WAdZVJxiVGGzQEcgm71d6Zp CXjLiUii4winHUMK9FLRY2st0HKAevXhuvZJVV432+sTg3p7fGVilYeGOL5G62WO zQfCisqzC5q677kGGyUlPRGlHWMPkllsTTnfXcmV/FUiGyVa3lUWY5sEu+wCl96O U1ffPENeNj/A/4fa1dbErtbiNnC2z/+jf+Dg7Cn8w/dPk4Suf0ppjP8RqIGyxmDl Wm/UxbwDClxaeF4GSaYh2yKgGRJMH5N87bJnZRINE5ccGiol8Ww/34bFG0xNnfyh jSAFAc318AFG62WD4lvqWc7LSpzOYxp/MNqIFXKN692St/MJLkx8/q0nTwY1qPY0 3SELz9II3hz+3MfDRqtRi7hZpkgHgQ+UG7S5+Xhmqrl309GOEldCjPVJhhXxWoxK ZPtZOuyYvGhIC+YAnHaN6lUjADIdNJZHwbuXFImx85oKHVofoxHbcni5vk8Uu7z1 sQNYOtdDGaPG/2u9RJdJlPg/jIgLKxxt/Xm9TYVawpZ5hFANhBTtIq5ExCRAil68 j9sMOrpZ1DzCQyR7zN2v =qDhq -----END PGP SIGNATURE----- Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC driver updates from Arnd Bergmann: "This branch contains platform-related driver updates for ARM and ARM64, these are the areas that bring the changes: New drivers: - driver support for Renesas R-Car V3M (R8A77970) - power management support for Amlogic GX - a new driver for the Tegra BPMP thermal sensor - a new bus driver for Technologic Systems NBUS Changes for subsystems that prefer to merge through arm-soc: - the usual updates for reset controller drivers from Philipp Zabel, with five added drivers for SoCs in the arc, meson, socfpa, uniphier and mediatek families - updates to the ARM SCPI and PSCI frameworks, from Sudeep Holla, Heiner Kallweit and Lorenzo Pieralisi Changes specific to some ARM-based SoC - the Freescale/NXP DPAA QBMan drivers from PowerPC can now work on ARM as well - several changes for power management on Broadcom SoCs - various improvements on Qualcomm, Broadcom, Amlogic, Atmel, Mediatek - minor Cleanups for Samsung, TI OMAP SoCs" [ NOTE! This doesn't work without the previous ARM SoC device-tree pull, because the R8A77970 driver is missing a header file that came from that pull. The fact that this got merged afterwards only fixes it at this point, and bisection of that driver will fail if/when you walk into the history of that driver. - Linus ] * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (96 commits) soc: amlogic: meson-gx-pwrc-vpu: fix power-off when powered by bootloader bus: add driver for the Technologic Systems NBUS memory: omap-gpmc: Remove deprecated gpmc_update_nand_reg() soc: qcom: remove unused label soc: amlogic: gx pm domain: add PM and OF dependencies drivers/firmware: psci_checker: Add missing destroy_timer_on_stack() dt-bindings: power: add amlogic meson power domain bindings soc: amlogic: add Meson GX VPU Domains driver soc: qcom: Remote filesystem memory driver dt-binding: soc: qcom: Add binding for rmtfs memory of: reserved_mem: Accessor for acquiring reserved_mem of/platform: Generalize /reserved-memory handling soc: mediatek: pwrap: fix fatal compiler error soc: mediatek: pwrap: fix compiler errors arm64: mediatek: cleanup message for platform selection soc: Allow test-building of MediaTek drivers soc: mediatek: place Kconfig for all SoC drivers under menu soc: mediatek: pwrap: add support for MT7622 SoC soc: mediatek: pwrap: add common way for setup CS timing extenstion soc: mediatek: pwrap: add MediaTek MT6380 as one slave of pwrap ..
81 lines
2.3 KiB
C
81 lines
2.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __OF_RESERVED_MEM_H
|
|
#define __OF_RESERVED_MEM_H
|
|
|
|
#include <linux/device.h>
|
|
|
|
struct of_phandle_args;
|
|
struct reserved_mem_ops;
|
|
|
|
struct reserved_mem {
|
|
const char *name;
|
|
unsigned long fdt_node;
|
|
unsigned long phandle;
|
|
const struct reserved_mem_ops *ops;
|
|
phys_addr_t base;
|
|
phys_addr_t size;
|
|
void *priv;
|
|
};
|
|
|
|
struct reserved_mem_ops {
|
|
int (*device_init)(struct reserved_mem *rmem,
|
|
struct device *dev);
|
|
void (*device_release)(struct reserved_mem *rmem,
|
|
struct device *dev);
|
|
};
|
|
|
|
typedef int (*reservedmem_of_init_fn)(struct reserved_mem *rmem);
|
|
|
|
#define RESERVEDMEM_OF_DECLARE(name, compat, init) \
|
|
_OF_DECLARE(reservedmem, name, compat, init, reservedmem_of_init_fn)
|
|
|
|
#ifdef CONFIG_OF_RESERVED_MEM
|
|
|
|
int of_reserved_mem_device_init_by_idx(struct device *dev,
|
|
struct device_node *np, int idx);
|
|
void of_reserved_mem_device_release(struct device *dev);
|
|
|
|
int early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
|
|
phys_addr_t align,
|
|
phys_addr_t start,
|
|
phys_addr_t end,
|
|
bool nomap,
|
|
phys_addr_t *res_base);
|
|
|
|
void fdt_init_reserved_mem(void);
|
|
void fdt_reserved_mem_save_node(unsigned long node, const char *uname,
|
|
phys_addr_t base, phys_addr_t size);
|
|
struct reserved_mem *of_reserved_mem_lookup(struct device_node *np);
|
|
#else
|
|
static inline int of_reserved_mem_device_init_by_idx(struct device *dev,
|
|
struct device_node *np, int idx)
|
|
{
|
|
return -ENOSYS;
|
|
}
|
|
static inline void of_reserved_mem_device_release(struct device *pdev) { }
|
|
|
|
static inline void fdt_init_reserved_mem(void) { }
|
|
static inline void fdt_reserved_mem_save_node(unsigned long node,
|
|
const char *uname, phys_addr_t base, phys_addr_t size) { }
|
|
static inline struct reserved_mem *of_reserved_mem_lookup(struct device_node *np)
|
|
{
|
|
return NULL;
|
|
}
|
|
#endif
|
|
|
|
/**
|
|
* of_reserved_mem_device_init() - assign reserved memory region to given device
|
|
* @dev: Pointer to the device to configure
|
|
*
|
|
* This function assigns respective DMA-mapping operations based on the first
|
|
* reserved memory region specified by 'memory-region' property in device tree
|
|
* node of the given device.
|
|
*
|
|
* Returns error code or zero on success.
|
|
*/
|
|
static inline int of_reserved_mem_device_init(struct device *dev)
|
|
{
|
|
return of_reserved_mem_device_init_by_idx(dev, dev->of_node, 0);
|
|
}
|
|
|
|
#endif /* __OF_RESERVED_MEM_H */
|