Add support for SDM632 mss, it is very similar to MSM8953 mss only difference SDM632 is using mss-supply as pm domain.
Signed-off-by: Barnabás Czémán <[email protected]> --- drivers/remoteproc/qcom_q6v5_mss.c | 47 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c index 86edd826ede8..e63432184767 100644 --- a/drivers/remoteproc/qcom_q6v5_mss.c +++ b/drivers/remoteproc/qcom_q6v5_mss.c @@ -271,6 +271,7 @@ enum { MSS_MSM8998, MSS_SC7180, MSS_SC7280, + MSS_SDM632, MSS_SDM660, MSS_SDM845, }; @@ -760,6 +761,7 @@ static int q6v5proc_reset(struct q6v5 *qproc) qproc->version == MSS_MSM8953 || qproc->version == MSS_MSM8996 || qproc->version == MSS_MSM8998 || + qproc->version == MSS_SDM632 || qproc->version == MSS_SDM660) { /* Override the ACC value if required */ @@ -770,7 +772,9 @@ static int q6v5proc_reset(struct q6v5 *qproc) writel(QDSP6SS_ACC_OVERRIDE_VAL_9607, qproc->reg_base + QDSP6SS_STRAP_ACC); else if (qproc->version != MSS_MSM8909 && - qproc->version != MSS_MSM8953) + qproc->version != MSS_MSM8953 && + qproc->version != MSS_SDM632) + /* Override the ACC value if required */ writel(QDSP6SS_ACC_OVERRIDE_VAL, qproc->reg_base + QDSP6SS_STRAP_ACC); @@ -830,7 +834,8 @@ static int q6v5proc_reset(struct q6v5 *qproc) /* Turn on L1, L2, ETB and JU memories 1 at a time */ if (qproc->version == MSS_MSM8940 || qproc->version == MSS_MSM8953 || - qproc->version == MSS_MSM8996) { + qproc->version == MSS_MSM8996 || + qproc->version == MSS_SDM632) { mem_pwr_ctl = QDSP6SS_MEM_PWR_CTL; i = 19; reverse = 0; @@ -2303,6 +2308,43 @@ static const struct rproc_hexagon_res sc7280_mss = { .version = MSS_SC7280, }; +static const struct rproc_hexagon_res sdm632_mss = { + .hexagon_mba_image = "mba.mbn", + .proxy_supply = (struct qcom_mss_reg_res[]) { + { + .supply = "pll", + .uA = 100000, + }, + {} + }, + .proxy_clk_names = (char*[]){ + "xo", + NULL + }, + .active_clk_names = (char*[]){ + "iface", + "bus", + "mem", + NULL + }, + .proxy_pd_names = (char*[]) { + "cx", + "mx", + "mss", + NULL + }, + .need_mem_protection = false, + .need_pas_mem_setup = true, + .has_alt_reset = false, + .has_mba_logs = false, + .has_spare_reg = false, + .has_qaccept_regs = false, + .has_ext_bhs_reg = false, + .has_ext_cntl_regs = false, + .has_vq6 = false, + .version = MSS_SDM632, +}; + static const struct rproc_hexagon_res sdm660_mss = { .hexagon_mba_image = "mba.mbn", .proxy_clk_names = (char*[]){ @@ -2896,6 +2938,7 @@ static const struct of_device_id q6v5_of_match[] = { { .compatible = "qcom,msm8998-mss-pil", .data = &msm8998_mss}, { .compatible = "qcom,sc7180-mss-pil", .data = &sc7180_mss}, { .compatible = "qcom,sc7280-mss-pil", .data = &sc7280_mss}, + { .compatible = "qcom,sdm632-mss-pil", .data = &sdm632_mss}, { .compatible = "qcom,sdm660-mss-pil", .data = &sdm660_mss}, { .compatible = "qcom,sdm845-mss-pil", .data = &sdm845_mss}, { }, -- 2.53.0

