mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-05-26 11:40:24 +02:00
Merge tag 'mtk-soc-for-v6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/drivers
MediaTek driver updates for v6.16 This brings some cleanups to the MediaTek DVFSRC driver, commonizing the bandwidth constraints platform data, and also adds support for the DVFSRC hardware found in the MediaTek Dimensity 1200 MT6893 SoC. * tag 'mtk-soc-for-v6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux: soc: mediatek: mtk-dvfsrc: remove an unused variable soc: mediatek: mtk-dvfsrc: Add support for Dimensity 1200 MT6893 soc: mediatek: mtk-dvfsrc: Rename and move bw constraints data dt-bindings: soc: mediatek: dvfsrc: Add support for MT6893 Link: https://lore.kernel.org/r/20250506091736.125733-2-angelogioacchino.delregno@collabora.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -23,6 +23,7 @@ properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- mediatek,mt6893-dvfsrc
|
||||
- mediatek,mt8183-dvfsrc
|
||||
- mediatek,mt8195-dvfsrc
|
||||
- items:
|
||||
|
||||
@@ -446,6 +446,46 @@ static int mtk_dvfsrc_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct dvfsrc_bw_constraints dvfsrc_bw_constr_v1 = { 0, 0, 0 };
|
||||
static const struct dvfsrc_bw_constraints dvfsrc_bw_constr_v2 = {
|
||||
.max_dram_nom_bw = 255,
|
||||
.max_dram_peak_bw = 255,
|
||||
.max_dram_hrt_bw = 1023,
|
||||
};
|
||||
|
||||
static const struct dvfsrc_opp dvfsrc_opp_mt6893_lp4[] = {
|
||||
{ 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 },
|
||||
{ 0, 1 }, { 1, 1 }, { 2, 1 }, { 3, 1 },
|
||||
{ 0, 2 }, { 1, 2 }, { 2, 2 }, { 3, 2 },
|
||||
{ 0, 3 }, { 1, 3 }, { 2, 3 }, { 3, 3 },
|
||||
{ 1, 4 }, { 2, 4 }, { 3, 4 }, { 2, 5 },
|
||||
{ 3, 5 }, { 3, 6 }, { 4, 6 }, { 4, 7 },
|
||||
};
|
||||
|
||||
static const struct dvfsrc_opp_desc dvfsrc_opp_mt6893_desc[] = {
|
||||
[0] = {
|
||||
.opps = dvfsrc_opp_mt6893_lp4,
|
||||
.num_opp = ARRAY_SIZE(dvfsrc_opp_mt6893_lp4),
|
||||
}
|
||||
};
|
||||
|
||||
static const struct dvfsrc_soc_data mt6893_data = {
|
||||
.opps_desc = dvfsrc_opp_mt6893_desc,
|
||||
.regs = dvfsrc_mt8195_regs,
|
||||
.get_target_level = dvfsrc_get_target_level_v2,
|
||||
.get_current_level = dvfsrc_get_current_level_v2,
|
||||
.get_vcore_level = dvfsrc_get_vcore_level_v2,
|
||||
.get_vscp_level = dvfsrc_get_vscp_level_v2,
|
||||
.set_dram_bw = dvfsrc_set_dram_bw_v1,
|
||||
.set_dram_peak_bw = dvfsrc_set_dram_peak_bw_v1,
|
||||
.set_dram_hrt_bw = dvfsrc_set_dram_hrt_bw_v1,
|
||||
.set_vcore_level = dvfsrc_set_vcore_level_v2,
|
||||
.set_vscp_level = dvfsrc_set_vscp_level_v2,
|
||||
.wait_for_opp_level = dvfsrc_wait_for_opp_level_v2,
|
||||
.wait_for_vcore_level = dvfsrc_wait_for_vcore_level_v1,
|
||||
.bw_constraints = &dvfsrc_bw_constr_v2,
|
||||
};
|
||||
|
||||
static const struct dvfsrc_opp dvfsrc_opp_mt8183_lp4[] = {
|
||||
{ 0, 0 }, { 0, 1 }, { 0, 2 }, { 1, 2 },
|
||||
};
|
||||
@@ -469,8 +509,6 @@ static const struct dvfsrc_opp_desc dvfsrc_opp_mt8183_desc[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static const struct dvfsrc_bw_constraints dvfsrc_bw_constr_mt8183 = { 0, 0, 0 };
|
||||
|
||||
static const struct dvfsrc_soc_data mt8183_data = {
|
||||
.opps_desc = dvfsrc_opp_mt8183_desc,
|
||||
.regs = dvfsrc_mt8183_regs,
|
||||
@@ -482,7 +520,7 @@ static const struct dvfsrc_soc_data mt8183_data = {
|
||||
.set_vcore_level = dvfsrc_set_vcore_level_v1,
|
||||
.wait_for_opp_level = dvfsrc_wait_for_opp_level_v1,
|
||||
.wait_for_vcore_level = dvfsrc_wait_for_vcore_level_v1,
|
||||
.bw_constraints = &dvfsrc_bw_constr_mt8183,
|
||||
.bw_constraints = &dvfsrc_bw_constr_v1,
|
||||
};
|
||||
|
||||
static const struct dvfsrc_opp dvfsrc_opp_mt8195_lp4[] = {
|
||||
@@ -501,12 +539,6 @@ static const struct dvfsrc_opp_desc dvfsrc_opp_mt8195_desc[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static const struct dvfsrc_bw_constraints dvfsrc_bw_constr_mt8195 = {
|
||||
.max_dram_nom_bw = 255,
|
||||
.max_dram_peak_bw = 255,
|
||||
.max_dram_hrt_bw = 1023,
|
||||
};
|
||||
|
||||
static const struct dvfsrc_soc_data mt8195_data = {
|
||||
.opps_desc = dvfsrc_opp_mt8195_desc,
|
||||
.regs = dvfsrc_mt8195_regs,
|
||||
@@ -521,10 +553,11 @@ static const struct dvfsrc_soc_data mt8195_data = {
|
||||
.set_vscp_level = dvfsrc_set_vscp_level_v2,
|
||||
.wait_for_opp_level = dvfsrc_wait_for_opp_level_v2,
|
||||
.wait_for_vcore_level = dvfsrc_wait_for_vcore_level_v1,
|
||||
.bw_constraints = &dvfsrc_bw_constr_mt8195,
|
||||
.bw_constraints = &dvfsrc_bw_constr_v2,
|
||||
};
|
||||
|
||||
static const struct of_device_id mtk_dvfsrc_of_match[] = {
|
||||
{ .compatible = "mediatek,mt6893-dvfsrc", .data = &mt6893_data },
|
||||
{ .compatible = "mediatek,mt8183-dvfsrc", .data = &mt8183_data },
|
||||
{ .compatible = "mediatek,mt8195-dvfsrc", .data = &mt8195_data },
|
||||
{ /* sentinel */ }
|
||||
|
||||
Reference in New Issue
Block a user