Add support for SDM632 mss, it is very similar to MSM8953 mss only difference SDM632 is using mss-supply as pm domain.
Reviewed-by: Konrad Dybcio <[email protected]> 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 8f6312213e1a..79510cbfcb8f 100644 --- a/drivers/remoteproc/qcom_q6v5_mss.c +++ b/drivers/remoteproc/qcom_q6v5_mss.c @@ -273,6 +273,7 @@ enum { MSS_MSM8998, MSS_SC7180, MSS_SC7280, + MSS_SDM632, MSS_SDM660, MSS_SDM845, }; @@ -762,6 +763,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 */ @@ -772,7 +774,8 @@ 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) writel(QDSP6SS_ACC_OVERRIDE_VAL, qproc->reg_base + QDSP6SS_STRAP_ACC); @@ -832,7 +835,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; @@ -2316,6 +2320,44 @@ static const struct rproc_hexagon_res sc7280_mss = { .ssctl_id = 0x12, }; +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, + .ssctl_id = 0x12, +}; + static const struct rproc_hexagon_res sdm660_mss = { .hexagon_mba_image = "mba.mbn", .proxy_clk_names = (char*[]){ @@ -2923,6 +2965,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.56.0

