summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2022-07-12 15:01:30 +0200
committerArnd Bergmann <arnd@arndb.de>2022-07-12 15:01:31 +0200
commitff6c226953b1bd57c6f4d4e7a37f586426b80e0d (patch)
treec86b98fc82a2c55e58f041ca2633e60cfb2a3f35 /include
parent611f6810aac8e9b5b3eb48c0eed47e2f791af224 (diff)
parent4d3ddc9bce4b2bfc167d8c2880f34de29b4587c6 (diff)
Merge tag 'v5.19-next-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/drivers
pmic wrapper: - code style improvements devapc: - add support for MT8186 Smart Voltage Scaling (SVS) - add support for MT8183 and MT8192 MMSYS: - Add more display paths for MT8365 Mutex: - Add common interface for MOD and SOF table - Add support for MDP on MT8183 - Move binding to soc folder - Add support to use CMDQ to enable the mutex, needed by MDP3 Power domains: - Add support for MT6795 * tag 'v5.19-next-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: (29 commits) soc: mediatek: mutex: Simplify with devm_platform_get_and_ioremap_resource() soc: mediatek: pm-domains: Add support for Helio X10 MT6795 dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains soc: mediatek: SVS: Use DEFINE_SIMPLE_DEV_PM_OPS for svs_pm_ops soc: mediatek: mtk-pm-domains: Allow probing vreg supply on two MFGs soc: mediatek: fix missing clk_disable_unprepare() on err in svs_resume() soc: mediatek: mutex: Use DDP_COMPONENT_DITHER0 mod index for MT8365 soc: mediatek: mutex: add functions that operate registers by CMDQ dt-bindings: soc: mediatek: add gce-client-reg for MUTEX dt-bindings: soc: mediatek: move out common module from display folder soc: mediatek: mutex: add 8183 MUTEX MOD settings for MDP soc: mediatek: mutex: add common interface for modules setting soc: mediatek: pm-domains: Add support always on flag soc: mediatek: mt8365-mmsys: add DPI/HDMI display path soc: mediatek: mutex: add MT8365 support soc: mediatek: SVS: add mt8192 SVS GPU driver dt-bindings: soc: mediatek: add mt8192 svs dt-bindings soc: mediatek: SVS: add debug commands soc: mediatek: SVS: add monitor mode soc: mediatek: SVS: introduce MTK SVS engine ... Link: https://lore.kernel.org/r/b733bd82-6d99-23ef-0541-98e98eb8d3bc@gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include')
-rw-r--r--include/dt-bindings/power/mt6795-power.h16
-rw-r--r--include/linux/soc/mediatek/mtk-mutex.h27
2 files changed, 43 insertions, 0 deletions
diff --git a/include/dt-bindings/power/mt6795-power.h b/include/dt-bindings/power/mt6795-power.h
new file mode 100644
index 000000000000..b0fc26cb1da4
--- /dev/null
+++ b/include/dt-bindings/power/mt6795-power.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+#ifndef _DT_BINDINGS_POWER_MT6795_POWER_H
+#define _DT_BINDINGS_POWER_MT6795_POWER_H
+
+#define MT6795_POWER_DOMAIN_MM 0
+#define MT6795_POWER_DOMAIN_VDEC 1
+#define MT6795_POWER_DOMAIN_VENC 2
+#define MT6795_POWER_DOMAIN_ISP 3
+#define MT6795_POWER_DOMAIN_MJC 4
+#define MT6795_POWER_DOMAIN_AUDIO 5
+#define MT6795_POWER_DOMAIN_MFG_ASYNC 6
+#define MT6795_POWER_DOMAIN_MFG_2D 7
+#define MT6795_POWER_DOMAIN_MFG 8
+#define MT6795_POWER_DOMAIN_MODEM 9
+
+#endif /* _DT_BINDINGS_POWER_MT6795_POWER_H */
diff --git a/include/linux/soc/mediatek/mtk-mutex.h b/include/linux/soc/mediatek/mtk-mutex.h
index 6fe4ffbde290..a0f4f51a3b45 100644
--- a/include/linux/soc/mediatek/mtk-mutex.h
+++ b/include/linux/soc/mediatek/mtk-mutex.h
@@ -10,11 +10,33 @@ struct regmap;
struct device;
struct mtk_mutex;
+enum mtk_mutex_mod_index {
+ /* MDP table index */
+ MUTEX_MOD_IDX_MDP_RDMA0,
+ MUTEX_MOD_IDX_MDP_RSZ0,
+ MUTEX_MOD_IDX_MDP_RSZ1,
+ MUTEX_MOD_IDX_MDP_TDSHP0,
+ MUTEX_MOD_IDX_MDP_WROT0,
+ MUTEX_MOD_IDX_MDP_WDMA,
+ MUTEX_MOD_IDX_MDP_AAL0,
+ MUTEX_MOD_IDX_MDP_CCORR0,
+
+ MUTEX_MOD_IDX_MAX /* ALWAYS keep at the end */
+};
+
+enum mtk_mutex_sof_index {
+ MUTEX_SOF_IDX_SINGLE_MODE,
+
+ MUTEX_SOF_IDX_MAX /* ALWAYS keep at the end */
+};
+
struct mtk_mutex *mtk_mutex_get(struct device *dev);
int mtk_mutex_prepare(struct mtk_mutex *mutex);
void mtk_mutex_add_comp(struct mtk_mutex *mutex,
enum mtk_ddp_comp_id id);
void mtk_mutex_enable(struct mtk_mutex *mutex);
+int mtk_mutex_enable_by_cmdq(struct mtk_mutex *mutex,
+ void *pkt);
void mtk_mutex_disable(struct mtk_mutex *mutex);
void mtk_mutex_remove_comp(struct mtk_mutex *mutex,
enum mtk_ddp_comp_id id);
@@ -22,5 +44,10 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex);
void mtk_mutex_put(struct mtk_mutex *mutex);
void mtk_mutex_acquire(struct mtk_mutex *mutex);
void mtk_mutex_release(struct mtk_mutex *mutex);
+int mtk_mutex_write_mod(struct mtk_mutex *mutex,
+ enum mtk_mutex_mod_index idx,
+ bool clear);
+int mtk_mutex_write_sof(struct mtk_mutex *mutex,
+ enum mtk_mutex_sof_index idx);
#endif /* MTK_MUTEX_H */