aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-05-16 12:19:14 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-16 12:19:14 -0400
commitdc413a90edbe715bebebe859dc072ef73d490d70 (patch)
treea6e27ea8a90d61efc1467ca11dee1beb557ee94a /include/linux
parente8a1d70117116c8d96c266f0b99e931717670eaf (diff)
parent80d0c649244253d8cb3ba32d708c1431e7ac8fbf (diff)
Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC-related driver updates from Olof Johansson: "Various driver updates for platforms and a couple of the small driver subsystems we merge through our tree: Among the larger pieces: - Power management improvements for TI am335x and am437x (RTC suspend/wake) - Misc new additions for Amlogic (socinfo updates) - ZynqMP FPGA manager - Nvidia improvements for reset/powergate handling - PMIC wrapper for Mediatek MT8516 - Misc fixes/improvements for ARM SCMI, TEE, NXP i.MX SCU drivers" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (57 commits) soc: aspeed: fix Kconfig soc: add aspeed folder and misc drivers spi: zynqmp: Fix build break soc: imx: Add generic i.MX8 SoC driver MAINTAINERS: Update email for Qualcomm SoC maintainer memory: tegra: Fix a typos for "fdcdwr2" mc client Revert "ARM: tegra: Restore memory arbitration on resume from LP1 on Tegra30+" memory: tegra: Replace readl-writel with mc_readl-mc_writel memory: tegra: Fix integer overflow on tick value calculation memory: tegra: Fix missed registers values latching ARM: tegra: cpuidle: Handle tick broadcasting within cpuidle core on Tegra20/30 optee: allow to work without static shared memory soc/tegra: pmc: Move powergate initialisation to probe soc/tegra: pmc: Remove reset sysfs entries on error soc/tegra: pmc: Fix reset sources and levels soc: amlogic: meson-gx-pwrc-vpu: Add support for G12A soc: amlogic: meson-gx-pwrc-vpu: Fix power on/off register bitmask fpga manager: Adding FPGA Manager support for Xilinx zynqmp dt-bindings: fpga: Add bindings for ZynqMP fpga driver firmware: xilinx: Add fpga API's ...
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/firmware/imx/sci.h5
-rw-r--r--include/linux/firmware/xlnx-zynqmp.h14
-rw-r--r--include/linux/platform_data/pm33xx.h5
-rw-r--r--include/linux/reset.h2
-rw-r--r--include/linux/rtc/rtc-omap.h7
-rw-r--r--include/linux/ti-emif-sram.h3
6 files changed, 35 insertions, 1 deletions
diff --git a/include/linux/firmware/imx/sci.h b/include/linux/firmware/imx/sci.h
index ebc55098faee..17ba4e405129 100644
--- a/include/linux/firmware/imx/sci.h
+++ b/include/linux/firmware/imx/sci.h
@@ -15,4 +15,9 @@
15 15
16#include <linux/firmware/imx/svc/misc.h> 16#include <linux/firmware/imx/svc/misc.h>
17#include <linux/firmware/imx/svc/pm.h> 17#include <linux/firmware/imx/svc/pm.h>
18
19int imx_scu_enable_general_irq_channel(struct device *dev);
20int imx_scu_irq_register_notifier(struct notifier_block *nb);
21int imx_scu_irq_unregister_notifier(struct notifier_block *nb);
22int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable);
18#endif /* _SC_SCI_H */ 23#endif /* _SC_SCI_H */
diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
index 642dab10f65d..1262ea6a1f4b 100644
--- a/include/linux/firmware/xlnx-zynqmp.h
+++ b/include/linux/firmware/xlnx-zynqmp.h
@@ -48,6 +48,14 @@
48#define ZYNQMP_PM_CAPABILITY_WAKEUP 0x4U 48#define ZYNQMP_PM_CAPABILITY_WAKEUP 0x4U
49#define ZYNQMP_PM_CAPABILITY_POWER 0x8U 49#define ZYNQMP_PM_CAPABILITY_POWER 0x8U
50 50
51/*
52 * Firmware FPGA Manager flags
53 * XILINX_ZYNQMP_PM_FPGA_FULL: FPGA full reconfiguration
54 * XILINX_ZYNQMP_PM_FPGA_PARTIAL: FPGA partial reconfiguration
55 */
56#define XILINX_ZYNQMP_PM_FPGA_FULL 0x0U
57#define XILINX_ZYNQMP_PM_FPGA_PARTIAL BIT(0)
58
51enum pm_api_id { 59enum pm_api_id {
52 PM_GET_API_VERSION = 1, 60 PM_GET_API_VERSION = 1,
53 PM_REQUEST_NODE = 13, 61 PM_REQUEST_NODE = 13,
@@ -56,6 +64,8 @@ enum pm_api_id {
56 PM_RESET_ASSERT = 17, 64 PM_RESET_ASSERT = 17,
57 PM_RESET_GET_STATUS, 65 PM_RESET_GET_STATUS,
58 PM_PM_INIT_FINALIZE = 21, 66 PM_PM_INIT_FINALIZE = 21,
67 PM_FPGA_LOAD,
68 PM_FPGA_GET_STATUS,
59 PM_GET_CHIPID = 24, 69 PM_GET_CHIPID = 24,
60 PM_IOCTL = 34, 70 PM_IOCTL = 34,
61 PM_QUERY_DATA, 71 PM_QUERY_DATA,
@@ -258,6 +268,8 @@ struct zynqmp_pm_query_data {
258struct zynqmp_eemi_ops { 268struct zynqmp_eemi_ops {
259 int (*get_api_version)(u32 *version); 269 int (*get_api_version)(u32 *version);
260 int (*get_chipid)(u32 *idcode, u32 *version); 270 int (*get_chipid)(u32 *idcode, u32 *version);
271 int (*fpga_load)(const u64 address, const u32 size, const u32 flags);
272 int (*fpga_get_status)(u32 *value);
261 int (*query_data)(struct zynqmp_pm_query_data qdata, u32 *out); 273 int (*query_data)(struct zynqmp_pm_query_data qdata, u32 *out);
262 int (*clock_enable)(u32 clock_id); 274 int (*clock_enable)(u32 clock_id);
263 int (*clock_disable)(u32 clock_id); 275 int (*clock_disable)(u32 clock_id);
@@ -293,7 +305,7 @@ const struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void);
293#else 305#else
294static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void) 306static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void)
295{ 307{
296 return NULL; 308 return ERR_PTR(-ENODEV);
297} 309}
298#endif 310#endif
299 311
diff --git a/include/linux/platform_data/pm33xx.h b/include/linux/platform_data/pm33xx.h
index fbf5ed73c7cc..dd5971937a64 100644
--- a/include/linux/platform_data/pm33xx.h
+++ b/include/linux/platform_data/pm33xx.h
@@ -51,6 +51,11 @@ struct am33xx_pm_platform_data {
51 unsigned long args); 51 unsigned long args);
52 struct am33xx_pm_sram_addr *(*get_sram_addrs)(void); 52 struct am33xx_pm_sram_addr *(*get_sram_addrs)(void);
53 void __iomem *(*get_rtc_base_addr)(void); 53 void __iomem *(*get_rtc_base_addr)(void);
54 void (*save_context)(void);
55 void (*restore_context)(void);
56 void (*prepare_rtc_suspend)(void);
57 void (*prepare_rtc_resume)(void);
58 int (*check_off_mode_enable)(void);
54}; 59};
55 60
56struct am33xx_pm_sram_data { 61struct am33xx_pm_sram_data {
diff --git a/include/linux/reset.h b/include/linux/reset.h
index 95d555c2130a..e7793fc0fa93 100644
--- a/include/linux/reset.h
+++ b/include/linux/reset.h
@@ -2,6 +2,8 @@
2#ifndef _LINUX_RESET_H_ 2#ifndef _LINUX_RESET_H_
3#define _LINUX_RESET_H_ 3#define _LINUX_RESET_H_
4 4
5#include <linux/err.h>
6#include <linux/errno.h>
5#include <linux/types.h> 7#include <linux/types.h>
6 8
7struct device; 9struct device;
diff --git a/include/linux/rtc/rtc-omap.h b/include/linux/rtc/rtc-omap.h
new file mode 100644
index 000000000000..9f03a329e63f
--- /dev/null
+++ b/include/linux/rtc/rtc-omap.h
@@ -0,0 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2
3#ifndef _LINUX_RTCOMAP_H_
4#define _LINUX_RTCOMAP_H_
5
6int omap_rtc_power_off_program(struct device *dev);
7#endif /* _LINUX_RTCOMAP_H_ */
diff --git a/include/linux/ti-emif-sram.h b/include/linux/ti-emif-sram.h
index 53604b087f2c..2fc854155c27 100644
--- a/include/linux/ti-emif-sram.h
+++ b/include/linux/ti-emif-sram.h
@@ -55,6 +55,7 @@ struct ti_emif_pm_data {
55struct ti_emif_pm_functions { 55struct ti_emif_pm_functions {
56 u32 save_context; 56 u32 save_context;
57 u32 restore_context; 57 u32 restore_context;
58 u32 run_hw_leveling;
58 u32 enter_sr; 59 u32 enter_sr;
59 u32 exit_sr; 60 u32 exit_sr;
60 u32 abort_sr; 61 u32 abort_sr;
@@ -126,6 +127,8 @@ static inline void ti_emif_asm_offsets(void)
126 offsetof(struct ti_emif_pm_functions, save_context)); 127 offsetof(struct ti_emif_pm_functions, save_context));
127 DEFINE(EMIF_PM_RESTORE_CONTEXT_OFFSET, 128 DEFINE(EMIF_PM_RESTORE_CONTEXT_OFFSET,
128 offsetof(struct ti_emif_pm_functions, restore_context)); 129 offsetof(struct ti_emif_pm_functions, restore_context));
130 DEFINE(EMIF_PM_RUN_HW_LEVELING,
131 offsetof(struct ti_emif_pm_functions, run_hw_leveling));
129 DEFINE(EMIF_PM_ENTER_SR_OFFSET, 132 DEFINE(EMIF_PM_ENTER_SR_OFFSET,
130 offsetof(struct ti_emif_pm_functions, enter_sr)); 133 offsetof(struct ti_emif_pm_functions, enter_sr));
131 DEFINE(EMIF_PM_EXIT_SR_OFFSET, 134 DEFINE(EMIF_PM_EXIT_SR_OFFSET,