|
139 | 139 | #define CLK_HS_POST GENMASK(15, 8)
|
140 | 140 | #define CLK_HS_EXIT GENMASK(23, 16)
|
141 | 141 |
|
142 |
| -#define DSI_VM_CMD_CON 0x130 |
| 142 | +/* DSI_VM_CMD_CON */ |
143 | 143 | #define VM_CMD_EN BIT(0)
|
144 | 144 | #define TS_VFP_EN BIT(5)
|
145 | 145 |
|
146 |
| -#define DSI_SHADOW_DEBUG 0x190U |
| 146 | +/* DSI_SHADOW_DEBUG */ |
147 | 147 | #define FORCE_COMMIT BIT(0)
|
148 | 148 | #define BYPASS_SHADOW BIT(1)
|
149 | 149 |
|
@@ -187,6 +187,8 @@ struct phy;
|
187 | 187 |
|
188 | 188 | struct mtk_dsi_driver_data {
|
189 | 189 | const u32 reg_cmdq_off;
|
| 190 | + const u32 reg_vm_cmd_off; |
| 191 | + const u32 reg_shadow_dbg_off; |
190 | 192 | bool has_shadow_ctl;
|
191 | 193 | bool has_size_ctl;
|
192 | 194 | bool cmdq_long_packet_ctl;
|
@@ -366,8 +368,8 @@ static void mtk_dsi_set_mode(struct mtk_dsi *dsi)
|
366 | 368 |
|
367 | 369 | static void mtk_dsi_set_vm_cmd(struct mtk_dsi *dsi)
|
368 | 370 | {
|
369 |
| - mtk_dsi_mask(dsi, DSI_VM_CMD_CON, VM_CMD_EN, VM_CMD_EN); |
370 |
| - mtk_dsi_mask(dsi, DSI_VM_CMD_CON, TS_VFP_EN, TS_VFP_EN); |
| 371 | + mtk_dsi_mask(dsi, dsi->driver_data->reg_vm_cmd_off, VM_CMD_EN, VM_CMD_EN); |
| 372 | + mtk_dsi_mask(dsi, dsi->driver_data->reg_vm_cmd_off, TS_VFP_EN, TS_VFP_EN); |
371 | 373 | }
|
372 | 374 |
|
373 | 375 | static void mtk_dsi_rxtx_control(struct mtk_dsi *dsi)
|
@@ -713,7 +715,7 @@ static int mtk_dsi_poweron(struct mtk_dsi *dsi)
|
713 | 715 |
|
714 | 716 | if (dsi->driver_data->has_shadow_ctl)
|
715 | 717 | writel(FORCE_COMMIT | BYPASS_SHADOW,
|
716 |
| - dsi->regs + DSI_SHADOW_DEBUG); |
| 718 | + dsi->regs + dsi->driver_data->reg_shadow_dbg_off); |
717 | 719 |
|
718 | 720 | mtk_dsi_reset_engine(dsi);
|
719 | 721 | mtk_dsi_phy_timconfig(dsi);
|
@@ -1262,26 +1264,36 @@ static void mtk_dsi_remove(struct platform_device *pdev)
|
1262 | 1264 |
|
1263 | 1265 | static const struct mtk_dsi_driver_data mt8173_dsi_driver_data = {
|
1264 | 1266 | .reg_cmdq_off = 0x200,
|
| 1267 | + .reg_vm_cmd_off = 0x130, |
| 1268 | + .reg_shadow_dbg_off = 0x190 |
1265 | 1269 | };
|
1266 | 1270 |
|
1267 | 1271 | static const struct mtk_dsi_driver_data mt2701_dsi_driver_data = {
|
1268 | 1272 | .reg_cmdq_off = 0x180,
|
| 1273 | + .reg_vm_cmd_off = 0x130, |
| 1274 | + .reg_shadow_dbg_off = 0x190 |
1269 | 1275 | };
|
1270 | 1276 |
|
1271 | 1277 | static const struct mtk_dsi_driver_data mt8183_dsi_driver_data = {
|
1272 | 1278 | .reg_cmdq_off = 0x200,
|
| 1279 | + .reg_vm_cmd_off = 0x130, |
| 1280 | + .reg_shadow_dbg_off = 0x190, |
1273 | 1281 | .has_shadow_ctl = true,
|
1274 | 1282 | .has_size_ctl = true,
|
1275 | 1283 | };
|
1276 | 1284 |
|
1277 | 1285 | static const struct mtk_dsi_driver_data mt8186_dsi_driver_data = {
|
1278 | 1286 | .reg_cmdq_off = 0xd00,
|
| 1287 | + .reg_vm_cmd_off = 0x200, |
| 1288 | + .reg_shadow_dbg_off = 0xc00, |
1279 | 1289 | .has_shadow_ctl = true,
|
1280 | 1290 | .has_size_ctl = true,
|
1281 | 1291 | };
|
1282 | 1292 |
|
1283 | 1293 | static const struct mtk_dsi_driver_data mt8188_dsi_driver_data = {
|
1284 | 1294 | .reg_cmdq_off = 0xd00,
|
| 1295 | + .reg_vm_cmd_off = 0x200, |
| 1296 | + .reg_shadow_dbg_off = 0xc00, |
1285 | 1297 | .has_shadow_ctl = true,
|
1286 | 1298 | .has_size_ctl = true,
|
1287 | 1299 | .cmdq_long_packet_ctl = true,
|
|
0 commit comments