Commit 5f79d767 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'v6.11-next-soc' of...

Merge tag 'v6.11-next-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/drivers

pmic warpper:
- reduce size by constifying data structures
- use devm_clk_bulk_det_all_enable

mutex:
- reduce size by changing variable bit size

* tag 'v6.11-next-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  soc: mediatek: mtk-mutex: Reduce type size for mtk_mutex_data members
  soc: mediatek: pwrap: Use devm_clk_bulk_get_all_enable()
  soc: mediatek: pwrap: Constify some struct int[]
  soc: mediatek: pwrap: Constify struct pmic_wrapper_type

Link: https://lore.kernel.org/r/bfa9ab87-9de8-41fc-bfd1-de5ec324cfe0@gmail.comSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 540c8302 d1e5d531
...@@ -327,11 +327,11 @@ enum mtk_mutex_sof_id { ...@@ -327,11 +327,11 @@ enum mtk_mutex_sof_id {
}; };
struct mtk_mutex_data { struct mtk_mutex_data {
const unsigned int *mutex_mod; const u8 *mutex_mod;
const unsigned int *mutex_sof; const u8 *mutex_table_mod;
const unsigned int mutex_mod_reg; const u16 *mutex_sof;
const unsigned int mutex_sof_reg; const u16 mutex_mod_reg;
const unsigned int *mutex_table_mod; const u16 mutex_sof_reg;
const bool no_clk; const bool no_clk;
}; };
...@@ -345,7 +345,7 @@ struct mtk_mutex_ctx { ...@@ -345,7 +345,7 @@ struct mtk_mutex_ctx {
struct cmdq_client_reg cmdq_reg; struct cmdq_client_reg cmdq_reg;
}; };
static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_BLS] = MT2701_MUTEX_MOD_DISP_BLS, [DDP_COMPONENT_BLS] = MT2701_MUTEX_MOD_DISP_BLS,
[DDP_COMPONENT_COLOR0] = MT2701_MUTEX_MOD_DISP_COLOR, [DDP_COMPONENT_COLOR0] = MT2701_MUTEX_MOD_DISP_COLOR,
[DDP_COMPONENT_OVL0] = MT2701_MUTEX_MOD_DISP_OVL, [DDP_COMPONENT_OVL0] = MT2701_MUTEX_MOD_DISP_OVL,
...@@ -354,7 +354,7 @@ static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -354,7 +354,7 @@ static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_WDMA0] = MT2701_MUTEX_MOD_DISP_WDMA, [DDP_COMPONENT_WDMA0] = MT2701_MUTEX_MOD_DISP_WDMA,
}; };
static const unsigned int mt2712_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt2712_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT2712_MUTEX_MOD_DISP_AAL0, [DDP_COMPONENT_AAL0] = MT2712_MUTEX_MOD_DISP_AAL0,
[DDP_COMPONENT_AAL1] = MT2712_MUTEX_MOD2_DISP_AAL1, [DDP_COMPONENT_AAL1] = MT2712_MUTEX_MOD2_DISP_AAL1,
[DDP_COMPONENT_COLOR0] = MT2712_MUTEX_MOD_DISP_COLOR0, [DDP_COMPONENT_COLOR0] = MT2712_MUTEX_MOD_DISP_COLOR0,
...@@ -374,7 +374,7 @@ static const unsigned int mt2712_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -374,7 +374,7 @@ static const unsigned int mt2712_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_WDMA1] = MT2712_MUTEX_MOD_DISP_WDMA1, [DDP_COMPONENT_WDMA1] = MT2712_MUTEX_MOD_DISP_WDMA1,
}; };
static const unsigned int mt8167_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8167_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT8167_MUTEX_MOD_DISP_AAL, [DDP_COMPONENT_AAL0] = MT8167_MUTEX_MOD_DISP_AAL,
[DDP_COMPONENT_CCORR] = MT8167_MUTEX_MOD_DISP_CCORR, [DDP_COMPONENT_CCORR] = MT8167_MUTEX_MOD_DISP_CCORR,
[DDP_COMPONENT_COLOR0] = MT8167_MUTEX_MOD_DISP_COLOR, [DDP_COMPONENT_COLOR0] = MT8167_MUTEX_MOD_DISP_COLOR,
...@@ -389,7 +389,7 @@ static const unsigned int mt8167_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -389,7 +389,7 @@ static const unsigned int mt8167_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_WDMA0] = MT8167_MUTEX_MOD_DISP_WDMA0, [DDP_COMPONENT_WDMA0] = MT8167_MUTEX_MOD_DISP_WDMA0,
}; };
static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT8173_MUTEX_MOD_DISP_AAL, [DDP_COMPONENT_AAL0] = MT8173_MUTEX_MOD_DISP_AAL,
[DDP_COMPONENT_COLOR0] = MT8173_MUTEX_MOD_DISP_COLOR0, [DDP_COMPONENT_COLOR0] = MT8173_MUTEX_MOD_DISP_COLOR0,
[DDP_COMPONENT_COLOR1] = MT8173_MUTEX_MOD_DISP_COLOR1, [DDP_COMPONENT_COLOR1] = MT8173_MUTEX_MOD_DISP_COLOR1,
...@@ -407,7 +407,7 @@ static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -407,7 +407,7 @@ static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_WDMA1] = MT8173_MUTEX_MOD_DISP_WDMA1, [DDP_COMPONENT_WDMA1] = MT8173_MUTEX_MOD_DISP_WDMA1,
}; };
static const unsigned int mt8183_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8183_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT8183_MUTEX_MOD_DISP_AAL0, [DDP_COMPONENT_AAL0] = MT8183_MUTEX_MOD_DISP_AAL0,
[DDP_COMPONENT_CCORR] = MT8183_MUTEX_MOD_DISP_CCORR0, [DDP_COMPONENT_CCORR] = MT8183_MUTEX_MOD_DISP_CCORR0,
[DDP_COMPONENT_COLOR0] = MT8183_MUTEX_MOD_DISP_COLOR0, [DDP_COMPONENT_COLOR0] = MT8183_MUTEX_MOD_DISP_COLOR0,
...@@ -421,7 +421,7 @@ static const unsigned int mt8183_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -421,7 +421,7 @@ static const unsigned int mt8183_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_WDMA0] = MT8183_MUTEX_MOD_DISP_WDMA0, [DDP_COMPONENT_WDMA0] = MT8183_MUTEX_MOD_DISP_WDMA0,
}; };
static const unsigned int mt8183_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { static const u8 mt8183_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_RDMA0] = MT8183_MUTEX_MOD_MDP_RDMA0, [MUTEX_MOD_IDX_MDP_RDMA0] = MT8183_MUTEX_MOD_MDP_RDMA0,
[MUTEX_MOD_IDX_MDP_RSZ0] = MT8183_MUTEX_MOD_MDP_RSZ0, [MUTEX_MOD_IDX_MDP_RSZ0] = MT8183_MUTEX_MOD_MDP_RSZ0,
[MUTEX_MOD_IDX_MDP_RSZ1] = MT8183_MUTEX_MOD_MDP_RSZ1, [MUTEX_MOD_IDX_MDP_RSZ1] = MT8183_MUTEX_MOD_MDP_RSZ1,
...@@ -432,7 +432,7 @@ static const unsigned int mt8183_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { ...@@ -432,7 +432,7 @@ static const unsigned int mt8183_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_CCORR0] = MT8183_MUTEX_MOD_MDP_CCORR0, [MUTEX_MOD_IDX_MDP_CCORR0] = MT8183_MUTEX_MOD_MDP_CCORR0,
}; };
static const unsigned int mt8186_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8186_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT8186_MUTEX_MOD_DISP_AAL0, [DDP_COMPONENT_AAL0] = MT8186_MUTEX_MOD_DISP_AAL0,
[DDP_COMPONENT_CCORR] = MT8186_MUTEX_MOD_DISP_CCORR0, [DDP_COMPONENT_CCORR] = MT8186_MUTEX_MOD_DISP_CCORR0,
[DDP_COMPONENT_COLOR0] = MT8186_MUTEX_MOD_DISP_COLOR0, [DDP_COMPONENT_COLOR0] = MT8186_MUTEX_MOD_DISP_COLOR0,
...@@ -445,7 +445,7 @@ static const unsigned int mt8186_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -445,7 +445,7 @@ static const unsigned int mt8186_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_RDMA1] = MT8186_MUTEX_MOD_DISP_RDMA1, [DDP_COMPONENT_RDMA1] = MT8186_MUTEX_MOD_DISP_RDMA1,
}; };
static const unsigned int mt8186_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { static const u8 mt8186_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_RDMA0] = MT8186_MUTEX_MOD_MDP_RDMA0, [MUTEX_MOD_IDX_MDP_RDMA0] = MT8186_MUTEX_MOD_MDP_RDMA0,
[MUTEX_MOD_IDX_MDP_RSZ0] = MT8186_MUTEX_MOD_MDP_RSZ0, [MUTEX_MOD_IDX_MDP_RSZ0] = MT8186_MUTEX_MOD_MDP_RSZ0,
[MUTEX_MOD_IDX_MDP_RSZ1] = MT8186_MUTEX_MOD_MDP_RSZ1, [MUTEX_MOD_IDX_MDP_RSZ1] = MT8186_MUTEX_MOD_MDP_RSZ1,
...@@ -456,7 +456,7 @@ static const unsigned int mt8186_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { ...@@ -456,7 +456,7 @@ static const unsigned int mt8186_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_COLOR0] = MT8186_MUTEX_MOD_MDP_COLOR0, [MUTEX_MOD_IDX_MDP_COLOR0] = MT8186_MUTEX_MOD_MDP_COLOR0,
}; };
static const unsigned int mt8188_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8188_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_OVL0] = MT8188_MUTEX_MOD_DISP_OVL0, [DDP_COMPONENT_OVL0] = MT8188_MUTEX_MOD_DISP_OVL0,
[DDP_COMPONENT_WDMA0] = MT8188_MUTEX_MOD_DISP_WDMA0, [DDP_COMPONENT_WDMA0] = MT8188_MUTEX_MOD_DISP_WDMA0,
[DDP_COMPONENT_RDMA0] = MT8188_MUTEX_MOD_DISP_RDMA0, [DDP_COMPONENT_RDMA0] = MT8188_MUTEX_MOD_DISP_RDMA0,
...@@ -496,7 +496,7 @@ static const unsigned int mt8188_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -496,7 +496,7 @@ static const unsigned int mt8188_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_MERGE5] = MT8188_MUTEX_MOD_DISP1_VPP_MERGE4, [DDP_COMPONENT_MERGE5] = MT8188_MUTEX_MOD_DISP1_VPP_MERGE4,
}; };
static const unsigned int mt8188_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { static const u8 mt8188_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_RDMA0] = MT8195_MUTEX_MOD_MDP_RDMA0, [MUTEX_MOD_IDX_MDP_RDMA0] = MT8195_MUTEX_MOD_MDP_RDMA0,
[MUTEX_MOD_IDX_MDP_RDMA2] = MT8195_MUTEX_MOD_MDP_RDMA2, [MUTEX_MOD_IDX_MDP_RDMA2] = MT8195_MUTEX_MOD_MDP_RDMA2,
[MUTEX_MOD_IDX_MDP_RDMA3] = MT8195_MUTEX_MOD_MDP_RDMA3, [MUTEX_MOD_IDX_MDP_RDMA3] = MT8195_MUTEX_MOD_MDP_RDMA3,
...@@ -530,7 +530,7 @@ static const unsigned int mt8188_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { ...@@ -530,7 +530,7 @@ static const unsigned int mt8188_mdp_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_WROT3] = MT8195_MUTEX_MOD_MDP_WROT3, [MUTEX_MOD_IDX_MDP_WROT3] = MT8195_MUTEX_MOD_MDP_WROT3,
}; };
static const unsigned int mt8192_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8192_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT8192_MUTEX_MOD_DISP_AAL0, [DDP_COMPONENT_AAL0] = MT8192_MUTEX_MOD_DISP_AAL0,
[DDP_COMPONENT_CCORR] = MT8192_MUTEX_MOD_DISP_CCORR0, [DDP_COMPONENT_CCORR] = MT8192_MUTEX_MOD_DISP_CCORR0,
[DDP_COMPONENT_COLOR0] = MT8192_MUTEX_MOD_DISP_COLOR0, [DDP_COMPONENT_COLOR0] = MT8192_MUTEX_MOD_DISP_COLOR0,
...@@ -544,7 +544,7 @@ static const unsigned int mt8192_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -544,7 +544,7 @@ static const unsigned int mt8192_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_RDMA4] = MT8192_MUTEX_MOD_DISP_RDMA4, [DDP_COMPONENT_RDMA4] = MT8192_MUTEX_MOD_DISP_RDMA4,
}; };
static const unsigned int mt8195_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8195_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_OVL0] = MT8195_MUTEX_MOD_DISP_OVL0, [DDP_COMPONENT_OVL0] = MT8195_MUTEX_MOD_DISP_OVL0,
[DDP_COMPONENT_WDMA0] = MT8195_MUTEX_MOD_DISP_WDMA0, [DDP_COMPONENT_WDMA0] = MT8195_MUTEX_MOD_DISP_WDMA0,
[DDP_COMPONENT_RDMA0] = MT8195_MUTEX_MOD_DISP_RDMA0, [DDP_COMPONENT_RDMA0] = MT8195_MUTEX_MOD_DISP_RDMA0,
...@@ -575,7 +575,7 @@ static const unsigned int mt8195_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -575,7 +575,7 @@ static const unsigned int mt8195_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_DP_INTF1] = MT8195_MUTEX_MOD_DISP1_DP_INTF0, [DDP_COMPONENT_DP_INTF1] = MT8195_MUTEX_MOD_DISP1_DP_INTF0,
}; };
static const unsigned int mt8195_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { static const u8 mt8195_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_RDMA0] = MT8195_MUTEX_MOD_MDP_RDMA0, [MUTEX_MOD_IDX_MDP_RDMA0] = MT8195_MUTEX_MOD_MDP_RDMA0,
[MUTEX_MOD_IDX_MDP_RDMA1] = MT8195_MUTEX_MOD_MDP_RDMA1, [MUTEX_MOD_IDX_MDP_RDMA1] = MT8195_MUTEX_MOD_MDP_RDMA1,
[MUTEX_MOD_IDX_MDP_RDMA2] = MT8195_MUTEX_MOD_MDP_RDMA2, [MUTEX_MOD_IDX_MDP_RDMA2] = MT8195_MUTEX_MOD_MDP_RDMA2,
...@@ -621,7 +621,7 @@ static const unsigned int mt8195_mutex_table_mod[MUTEX_MOD_IDX_MAX] = { ...@@ -621,7 +621,7 @@ static const unsigned int mt8195_mutex_table_mod[MUTEX_MOD_IDX_MAX] = {
[MUTEX_MOD_IDX_MDP_WROT3] = MT8195_MUTEX_MOD_MDP_WROT3, [MUTEX_MOD_IDX_MDP_WROT3] = MT8195_MUTEX_MOD_MDP_WROT3,
}; };
static const unsigned int mt8365_mutex_mod[DDP_COMPONENT_ID_MAX] = { static const u8 mt8365_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_AAL0] = MT8365_MUTEX_MOD_DISP_AAL, [DDP_COMPONENT_AAL0] = MT8365_MUTEX_MOD_DISP_AAL,
[DDP_COMPONENT_CCORR] = MT8365_MUTEX_MOD_DISP_CCORR, [DDP_COMPONENT_CCORR] = MT8365_MUTEX_MOD_DISP_CCORR,
[DDP_COMPONENT_COLOR0] = MT8365_MUTEX_MOD_DISP_COLOR0, [DDP_COMPONENT_COLOR0] = MT8365_MUTEX_MOD_DISP_COLOR0,
...@@ -637,7 +637,7 @@ static const unsigned int mt8365_mutex_mod[DDP_COMPONENT_ID_MAX] = { ...@@ -637,7 +637,7 @@ static const unsigned int mt8365_mutex_mod[DDP_COMPONENT_ID_MAX] = {
[DDP_COMPONENT_WDMA0] = MT8365_MUTEX_MOD_DISP_WDMA0, [DDP_COMPONENT_WDMA0] = MT8365_MUTEX_MOD_DISP_WDMA0,
}; };
static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_MAX] = { static const u16 mt2712_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0,
[MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, [MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1,
...@@ -647,14 +647,14 @@ static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_MAX] = { ...@@ -647,14 +647,14 @@ static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, [MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3,
}; };
static const unsigned int mt6795_mutex_sof[DDP_MUTEX_SOF_MAX] = { static const u16 mt6795_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0,
[MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, [MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1,
[MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, [MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0,
}; };
static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_MAX] = { static const u16 mt8167_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0,
[MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, [MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0,
...@@ -662,13 +662,13 @@ static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_MAX] = { ...@@ -662,13 +662,13 @@ static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_MAX] = {
}; };
/* Add EOF setting so overlay hardware can receive frame done irq */ /* Add EOF setting so overlay hardware can receive frame done irq */
static const unsigned int mt8183_mutex_sof[DDP_MUTEX_SOF_MAX] = { static const u16 mt8183_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0 | MT8183_MUTEX_EOF_DSI0, [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0 | MT8183_MUTEX_EOF_DSI0,
[MUTEX_SOF_DPI0] = MT8183_MUTEX_SOF_DPI0 | MT8183_MUTEX_EOF_DPI0, [MUTEX_SOF_DPI0] = MT8183_MUTEX_SOF_DPI0 | MT8183_MUTEX_EOF_DPI0,
}; };
static const unsigned int mt8186_mutex_sof[MUTEX_SOF_DSI3 + 1] = { static const u16 mt8186_mutex_sof[MUTEX_SOF_DSI3 + 1] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = MT8186_MUTEX_SOF_DSI0 | MT8186_MUTEX_EOF_DSI0, [MUTEX_SOF_DSI0] = MT8186_MUTEX_SOF_DSI0 | MT8186_MUTEX_EOF_DSI0,
[MUTEX_SOF_DPI0] = MT8186_MUTEX_SOF_DPI0 | MT8186_MUTEX_EOF_DPI0, [MUTEX_SOF_DPI0] = MT8186_MUTEX_SOF_DPI0 | MT8186_MUTEX_EOF_DPI0,
...@@ -682,7 +682,7 @@ static const unsigned int mt8186_mutex_sof[MUTEX_SOF_DSI3 + 1] = { ...@@ -682,7 +682,7 @@ static const unsigned int mt8186_mutex_sof[MUTEX_SOF_DSI3 + 1] = {
* but also detect the error at end of frame(EAEOF) when EOF signal * but also detect the error at end of frame(EAEOF) when EOF signal
* arrives. * arrives.
*/ */
static const unsigned int mt8188_mutex_sof[DDP_MUTEX_SOF_MAX] = { static const u16 mt8188_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = [MUTEX_SOF_DSI0] =
MT8188_MUTEX_SOF_DSI0 | MT8188_MUTEX_EOF_DSI0, MT8188_MUTEX_SOF_DSI0 | MT8188_MUTEX_EOF_DSI0,
...@@ -692,7 +692,7 @@ static const unsigned int mt8188_mutex_sof[DDP_MUTEX_SOF_MAX] = { ...@@ -692,7 +692,7 @@ static const unsigned int mt8188_mutex_sof[DDP_MUTEX_SOF_MAX] = {
MT8188_MUTEX_SOF_DP_INTF1 | MT8188_MUTEX_EOF_DP_INTF1, MT8188_MUTEX_SOF_DP_INTF1 | MT8188_MUTEX_EOF_DP_INTF1,
}; };
static const unsigned int mt8195_mutex_sof[DDP_MUTEX_SOF_MAX] = { static const u16 mt8195_mutex_sof[DDP_MUTEX_SOF_MAX] = {
[MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE,
[MUTEX_SOF_DSI0] = MT8195_MUTEX_SOF_DSI0 | MT8195_MUTEX_EOF_DSI0, [MUTEX_SOF_DSI0] = MT8195_MUTEX_SOF_DSI0 | MT8195_MUTEX_EOF_DSI0,
[MUTEX_SOF_DSI1] = MT8195_MUTEX_SOF_DSI1 | MT8195_MUTEX_EOF_DSI1, [MUTEX_SOF_DSI1] = MT8195_MUTEX_SOF_DSI1 | MT8195_MUTEX_EOF_DSI1,
......
...@@ -483,7 +483,7 @@ enum pwrap_regs { ...@@ -483,7 +483,7 @@ enum pwrap_regs {
PWRAP_MSB_FIRST, PWRAP_MSB_FIRST,
}; };
static int mt2701_regs[] = { static const int mt2701_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -569,7 +569,7 @@ static int mt2701_regs[] = { ...@@ -569,7 +569,7 @@ static int mt2701_regs[] = {
[PWRAP_ADC_RDATA_ADDR2] = 0x154, [PWRAP_ADC_RDATA_ADDR2] = 0x154,
}; };
static int mt6765_regs[] = { static const int mt6765_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -601,7 +601,7 @@ static int mt6765_regs[] = { ...@@ -601,7 +601,7 @@ static int mt6765_regs[] = {
[PWRAP_DCM_DBC_PRD] = 0x1E0, [PWRAP_DCM_DBC_PRD] = 0x1E0,
}; };
static int mt6779_regs[] = { static const int mt6779_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -640,7 +640,7 @@ static int mt6779_regs[] = { ...@@ -640,7 +640,7 @@ static int mt6779_regs[] = {
[PWRAP_WACS2_VLDCLR] = 0xC28, [PWRAP_WACS2_VLDCLR] = 0xC28,
}; };
static int mt6795_regs[] = { static const int mt6795_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -725,7 +725,7 @@ static int mt6795_regs[] = { ...@@ -725,7 +725,7 @@ static int mt6795_regs[] = {
[PWRAP_EXT_CK] = 0x14c, [PWRAP_EXT_CK] = 0x14c,
}; };
static int mt6797_regs[] = { static const int mt6797_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -758,7 +758,7 @@ static int mt6797_regs[] = { ...@@ -758,7 +758,7 @@ static int mt6797_regs[] = {
[PWRAP_DCM_DBC_PRD] = 0x1D4, [PWRAP_DCM_DBC_PRD] = 0x1D4,
}; };
static int mt6873_regs[] = { static const int mt6873_regs[] = {
[PWRAP_INIT_DONE2] = 0x0, [PWRAP_INIT_DONE2] = 0x0,
[PWRAP_TIMER_EN] = 0x3E0, [PWRAP_TIMER_EN] = 0x3E0,
[PWRAP_INT_EN] = 0x448, [PWRAP_INT_EN] = 0x448,
...@@ -769,7 +769,7 @@ static int mt6873_regs[] = { ...@@ -769,7 +769,7 @@ static int mt6873_regs[] = {
[PWRAP_WACS2_RDATA] = 0xCA8, [PWRAP_WACS2_RDATA] = 0xCA8,
}; };
static int mt7622_regs[] = { static const int mt7622_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -881,7 +881,7 @@ static int mt7622_regs[] = { ...@@ -881,7 +881,7 @@ static int mt7622_regs[] = {
[PWRAP_SPI2_CTRL] = 0x244, [PWRAP_SPI2_CTRL] = 0x244,
}; };
static int mt8135_regs[] = { static const int mt8135_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -954,7 +954,7 @@ static int mt8135_regs[] = { ...@@ -954,7 +954,7 @@ static int mt8135_regs[] = {
[PWRAP_DCM_DBC_PRD] = 0x160, [PWRAP_DCM_DBC_PRD] = 0x160,
}; };
static int mt8173_regs[] = { static const int mt8173_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -1036,7 +1036,7 @@ static int mt8173_regs[] = { ...@@ -1036,7 +1036,7 @@ static int mt8173_regs[] = {
[PWRAP_DCM_DBC_PRD] = 0x148, [PWRAP_DCM_DBC_PRD] = 0x148,
}; };
static int mt8183_regs[] = { static const int mt8183_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -1087,7 +1087,7 @@ static int mt8183_regs[] = { ...@@ -1087,7 +1087,7 @@ static int mt8183_regs[] = {
[PWRAP_WACS2_VLDCLR] = 0xC28, [PWRAP_WACS2_VLDCLR] = 0xC28,
}; };
static int mt8195_regs[] = { static const int mt8195_regs[] = {
[PWRAP_INIT_DONE2] = 0x0, [PWRAP_INIT_DONE2] = 0x0,
[PWRAP_STAUPD_CTRL] = 0x4C, [PWRAP_STAUPD_CTRL] = 0x4C,
[PWRAP_TIMER_EN] = 0x3E4, [PWRAP_TIMER_EN] = 0x3E4,
...@@ -1104,7 +1104,7 @@ static int mt8195_regs[] = { ...@@ -1104,7 +1104,7 @@ static int mt8195_regs[] = {
[PWRAP_WACS2_RDATA] = 0x8A8, [PWRAP_WACS2_RDATA] = 0x8A8,
}; };
static int mt8365_regs[] = { static const int mt8365_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -1166,7 +1166,7 @@ static int mt8365_regs[] = { ...@@ -1166,7 +1166,7 @@ static int mt8365_regs[] = {
[PWRAP_WDT_SRC_EN_1] = 0xf8, [PWRAP_WDT_SRC_EN_1] = 0xf8,
}; };
static int mt8516_regs[] = { static const int mt8516_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -1251,7 +1251,7 @@ static int mt8516_regs[] = { ...@@ -1251,7 +1251,7 @@ static int mt8516_regs[] = {
[PWRAP_MSB_FIRST] = 0x170, [PWRAP_MSB_FIRST] = 0x170,
}; };
static int mt8186_regs[] = { static const int mt8186_regs[] = {
[PWRAP_MUX_SEL] = 0x0, [PWRAP_MUX_SEL] = 0x0,
[PWRAP_WRAP_EN] = 0x4, [PWRAP_WRAP_EN] = 0x4,
[PWRAP_DIO_EN] = 0x8, [PWRAP_DIO_EN] = 0x8,
...@@ -1366,10 +1366,6 @@ struct pmic_wrapper { ...@@ -1366,10 +1366,6 @@ struct pmic_wrapper {
struct regmap *regmap; struct regmap *regmap;
const struct pmic_wrapper_type *master; const struct pmic_wrapper_type *master;
const struct pwrap_slv_type *slave; const struct pwrap_slv_type *slave;
struct clk *clk_spi;
struct clk *clk_wrap;
struct clk *clk_sys;
struct clk *clk_tmr;
struct reset_control *rstc; struct reset_control *rstc;
struct reset_control *rstc_bridge; struct reset_control *rstc_bridge;
...@@ -1377,7 +1373,7 @@ struct pmic_wrapper { ...@@ -1377,7 +1373,7 @@ struct pmic_wrapper {
}; };
struct pmic_wrapper_type { struct pmic_wrapper_type {
int *regs; const int *regs;
enum pwrap_type type; enum pwrap_type type;
u32 arb_en_all; u32 arb_en_all;
u32 int_en_all; u32 int_en_all;
...@@ -2397,7 +2393,7 @@ static const struct pmic_wrapper_type pwrap_mt8183 = { ...@@ -2397,7 +2393,7 @@ static const struct pmic_wrapper_type pwrap_mt8183 = {
.init_soc_specific = pwrap_mt8183_init_soc_specific, .init_soc_specific = pwrap_mt8183_init_soc_specific,
}; };
static struct pmic_wrapper_type pwrap_mt8195 = { static const struct pmic_wrapper_type pwrap_mt8195 = {
.regs = mt8195_regs, .regs = mt8195_regs,
.type = PWRAP_MT8195, .type = PWRAP_MT8195,
.arb_en_all = 0x777f, /* NEED CONFIRM */ .arb_en_all = 0x777f, /* NEED CONFIRM */
...@@ -2423,7 +2419,7 @@ static const struct pmic_wrapper_type pwrap_mt8365 = { ...@@ -2423,7 +2419,7 @@ static const struct pmic_wrapper_type pwrap_mt8365 = {
.init_soc_specific = NULL, .init_soc_specific = NULL,
}; };
static struct pmic_wrapper_type pwrap_mt8516 = { static const struct pmic_wrapper_type pwrap_mt8516 = {
.regs = mt8516_regs, .regs = mt8516_regs,
.type = PWRAP_MT8516, .type = PWRAP_MT8516,
.arb_en_all = 0xff, .arb_en_all = 0xff,
...@@ -2435,7 +2431,7 @@ static struct pmic_wrapper_type pwrap_mt8516 = { ...@@ -2435,7 +2431,7 @@ static struct pmic_wrapper_type pwrap_mt8516 = {
.init_soc_specific = NULL, .init_soc_specific = NULL,
}; };
static struct pmic_wrapper_type pwrap_mt8186 = { static const struct pmic_wrapper_type pwrap_mt8186 = {
.regs = mt8186_regs, .regs = mt8186_regs,
.type = PWRAP_MT8186, .type = PWRAP_MT8186,
.arb_en_all = 0xfb27f, .arb_en_all = 0xfb27f,
...@@ -2472,6 +2468,7 @@ static int pwrap_probe(struct platform_device *pdev) ...@@ -2472,6 +2468,7 @@ static int pwrap_probe(struct platform_device *pdev)
int ret, irq; int ret, irq;
u32 mask_done; u32 mask_done;
struct pmic_wrapper *wrp; struct pmic_wrapper *wrp;
struct clk_bulk_data *clk;
struct device_node *np = pdev->dev.of_node; struct device_node *np = pdev->dev.of_node;
const struct of_device_id *of_slave_id = NULL; const struct of_device_id *of_slave_id = NULL;
...@@ -2521,49 +2518,10 @@ static int pwrap_probe(struct platform_device *pdev) ...@@ -2521,49 +2518,10 @@ static int pwrap_probe(struct platform_device *pdev)
} }
} }
wrp->clk_spi = devm_clk_get(wrp->dev, "spi"); ret = devm_clk_bulk_get_all_enable(wrp->dev, &clk);
if (IS_ERR(wrp->clk_spi)) {
dev_dbg(wrp->dev, "failed to get clock: %ld\n",
PTR_ERR(wrp->clk_spi));
return PTR_ERR(wrp->clk_spi);
}
wrp->clk_wrap = devm_clk_get(wrp->dev, "wrap");
if (IS_ERR(wrp->clk_wrap)) {
dev_dbg(wrp->dev, "failed to get clock: %ld\n",
PTR_ERR(wrp->clk_wrap));
return PTR_ERR(wrp->clk_wrap);
}
wrp->clk_sys = devm_clk_get_optional(wrp->dev, "sys");
if (IS_ERR(wrp->clk_sys)) {
return dev_err_probe(wrp->dev, PTR_ERR(wrp->clk_sys),
"failed to get clock: %pe\n",
wrp->clk_sys);
}
wrp->clk_tmr = devm_clk_get_optional(wrp->dev, "tmr");
if (IS_ERR(wrp->clk_tmr)) {
return dev_err_probe(wrp->dev, PTR_ERR(wrp->clk_tmr),
"failed to get clock: %pe\n",
wrp->clk_tmr);
}
ret = clk_prepare_enable(wrp->clk_spi);
if (ret)
return ret;
ret = clk_prepare_enable(wrp->clk_wrap);
if (ret) if (ret)
goto err_out1; return dev_err_probe(wrp->dev, ret,
"failed to get clocks\n");
ret = clk_prepare_enable(wrp->clk_sys);
if (ret)
goto err_out2;
ret = clk_prepare_enable(wrp->clk_tmr);
if (ret)
goto err_out3;
/* Enable internal dynamic clock */ /* Enable internal dynamic clock */
if (HAS_CAP(wrp->master->caps, PWRAP_CAP_DCM)) { if (HAS_CAP(wrp->master->caps, PWRAP_CAP_DCM)) {
...@@ -2579,7 +2537,7 @@ static int pwrap_probe(struct platform_device *pdev) ...@@ -2579,7 +2537,7 @@ static int pwrap_probe(struct platform_device *pdev)
ret = pwrap_init(wrp); ret = pwrap_init(wrp);
if (ret) { if (ret) {
dev_dbg(wrp->dev, "init failed with %d\n", ret); dev_dbg(wrp->dev, "init failed with %d\n", ret);
goto err_out4; return ret;
} }
} }
...@@ -2592,8 +2550,7 @@ static int pwrap_probe(struct platform_device *pdev) ...@@ -2592,8 +2550,7 @@ static int pwrap_probe(struct platform_device *pdev)
if (!(pwrap_readl(wrp, PWRAP_WACS2_RDATA) & mask_done)) { if (!(pwrap_readl(wrp, PWRAP_WACS2_RDATA) & mask_done)) {
dev_dbg(wrp->dev, "initialization isn't finished\n"); dev_dbg(wrp->dev, "initialization isn't finished\n");
ret = -ENODEV; return -ENODEV;
goto err_out4;
} }
/* Initialize watchdog, may not be done by the bootloader */ /* Initialize watchdog, may not be done by the bootloader */
...@@ -2622,42 +2579,27 @@ static int pwrap_probe(struct platform_device *pdev) ...@@ -2622,42 +2579,27 @@ static int pwrap_probe(struct platform_device *pdev)
pwrap_writel(wrp, wrp->master->int1_en_all, PWRAP_INT1_EN); pwrap_writel(wrp, wrp->master->int1_en_all, PWRAP_INT1_EN);
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (irq < 0) { if (irq < 0)
ret = irq; return irq;
goto err_out2;
}
ret = devm_request_irq(wrp->dev, irq, pwrap_interrupt, ret = devm_request_irq(wrp->dev, irq, pwrap_interrupt,
IRQF_TRIGGER_HIGH, IRQF_TRIGGER_HIGH,
"mt-pmic-pwrap", wrp); "mt-pmic-pwrap", wrp);
if (ret) if (ret)
goto err_out4; return ret;
wrp->regmap = devm_regmap_init(wrp->dev, NULL, wrp, wrp->slave->regops->regmap); wrp->regmap = devm_regmap_init(wrp->dev, NULL, wrp, wrp->slave->regops->regmap);
if (IS_ERR(wrp->regmap)) { if (IS_ERR(wrp->regmap))
ret = PTR_ERR(wrp->regmap); return PTR_ERR(wrp->regmap);
goto err_out2;
}
ret = of_platform_populate(np, NULL, NULL, wrp->dev); ret = of_platform_populate(np, NULL, NULL, wrp->dev);
if (ret) { if (ret) {
dev_dbg(wrp->dev, "failed to create child devices at %pOF\n", dev_dbg(wrp->dev, "failed to create child devices at %pOF\n",
np); np);
goto err_out4; return ret;
} }
return 0; return 0;
err_out4:
clk_disable_unprepare(wrp->clk_tmr);
err_out3:
clk_disable_unprepare(wrp->clk_sys);
err_out2:
clk_disable_unprepare(wrp->clk_wrap);
err_out1:
clk_disable_unprepare(wrp->clk_spi);
return ret;
} }
static struct platform_driver pwrap_drv = { static struct platform_driver pwrap_drv = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment