diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index c536fe9f08e1..d536a7c82d22 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -2524,6 +2524,14 @@ static int swrm_master_init(struct swr_mstr_ctrl *swrm) swr_master_bulk_write(swrm, reg, value, len); + /* SW workaround to gate hw_ctl for SWR version >=1.6 */ + if (swrm->version >= SWRM_VERSION_1_6) { + if (swrm->swrm_hctl_reg) { + temp = ioread32(swrm->swrm_hctl_reg); + temp &= 0xFFFFFFFD; + iowrite32(temp, swrm->swrm_hctl_reg); + } + } if (!swrm_check_link_status(swrm, 0x1)) { dev_err(swrm->dev, "%s: swr link failed to connect\n",