[1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead
diff mbox series

Message ID 1544707047-4417-2-git-send-email-abel.vesa@nxp.com
State New
Headers show
Series
  • i.MX8MQ build dependency fixes
Related show

Commit Message

Abel Vesa Dec. 13, 2018, 1:17 p.m. UTC
To keep aligned with arm64, remove the unnecessary SOC_IMX8MQ and use
ARCH_MXC instead.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 arch/arm64/Kconfig.platforms           | 8 --------
 arch/arm64/boot/dts/freescale/Makefile | 2 +-
 drivers/clk/imx/Makefile               | 3 ++-
 drivers/phy/freescale/Kconfig          | 2 +-
 drivers/pinctrl/freescale/Kconfig      | 2 +-
 drivers/soc/imx/Kconfig                | 2 +-
 6 files changed, 6 insertions(+), 13 deletions(-)

Comments

Lucas Stach Dec. 13, 2018, 2:35 p.m. UTC | #1
Am Donnerstag, den 13.12.2018, 13:17 +0000 schrieb Abel Vesa:
> To keep aligned with arm64, remove the unnecessary SOC_IMX8MQ and use
> ARCH_MXC instead.
> 
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> ---
>  arch/arm64/Kconfig.platforms           | 8 --------
>  arch/arm64/boot/dts/freescale/Makefile | 2 +-
>  drivers/clk/imx/Makefile               | 3 ++-
>  drivers/phy/freescale/Kconfig          | 2 +-
>  drivers/pinctrl/freescale/Kconfig      | 2 +-
>  drivers/soc/imx/Kconfig                | 2 +-
>  6 files changed, 6 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig.platforms
> b/arch/arm64/Kconfig.platforms
> index 7e1545a..318dbb9 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -148,14 +148,6 @@ config ARCH_MXC
>  	  This enables support for the ARMv8 based SoCs in the
>  	  NXP i.MX family.
>  
> -config SOC_IMX8MQ
> -	bool "i.MX8MQ support"
> -	depends on ARCH_MXC
> -	select ARM64_ERRATUM_843419
> -	select ARM64_ERRATUM_845719
> -	help
> -	  This enables support for the i.MX8MQ SoC.
> -

NACK on this one. Having a single place where stuff that is absolutely
critical for proper SoC operation can be selected is very useful and
avoids hard to debug issues due to slightly wrong configs in the long
run.

Regards,
Lucas

>  config ARCH_QCOM
>  	bool "Qualcomm Platforms"
>  	select GPIOLIB
> diff --git a/arch/arm64/boot/dts/freescale/Makefile
> b/arch/arm64/boot/dts/freescale/Makefile
> index 0001361..f9be242 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -19,4 +19,4 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-
> rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
>  
> -dtb-$(CONFIG_SOC_IMX8MQ) += imx8mq-evk.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
> diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
> index 5c0b11e..62a1882 100644
> --- a/drivers/clk/imx/Makefile
> +++ b/drivers/clk/imx/Makefile
> @@ -34,5 +34,6 @@ obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
>  obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
>  obj-$(CONFIG_SOC_IMX7D)  += clk-imx7d.o
>  obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
> -obj-$(CONFIG_SOC_IMX8MQ) += clk-imx8mq.o
>  obj-$(CONFIG_SOC_VF610)  += clk-vf610.o
> +
> +obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
> diff --git a/drivers/phy/freescale/Kconfig
> b/drivers/phy/freescale/Kconfig
> index f050bd4..923c0ef 100644
> --- a/drivers/phy/freescale/Kconfig
> +++ b/drivers/phy/freescale/Kconfig
> @@ -2,4 +2,4 @@ config PHY_FSL_IMX8MQ_USB
>  	tristate "Freescale i.MX8M USB3 PHY"
>  	depends on OF && HAS_IOMEM
>  	select GENERIC_PHY
> -	default SOC_IMX8MQ
> +	default ARCH_MXC
> diff --git a/drivers/pinctrl/freescale/Kconfig
> b/drivers/pinctrl/freescale/Kconfig
> index 2d6db43..9874a16 100644
> --- a/drivers/pinctrl/freescale/Kconfig
> +++ b/drivers/pinctrl/freescale/Kconfig
> @@ -123,7 +123,7 @@ config PINCTRL_IMX7ULP
>  
>  config PINCTRL_IMX8MQ
>  	bool "IMX8MQ pinctrl driver"
> -	depends on SOC_IMX8MQ
> +	depends on ARCH_MXC
>  	select PINCTRL_IMX
>  	help
>  	  Say Y here to enable the imx8mq pinctrl driver
> diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
> index 2112d18..7ffbb6b 100644
> --- a/drivers/soc/imx/Kconfig
> +++ b/drivers/soc/imx/Kconfig
> @@ -2,7 +2,7 @@ menu "i.MX SoC drivers"
>  
>  config IMX_GPCV2_PM_DOMAINS
>  	bool "i.MX GPCv2 PM domains"
> -	depends on SOC_IMX7D || SOC_IMX8MQ || (COMPILE_TEST && OF)
> +	depends on SOC_IMX7D || ARCH_MXC || (COMPILE_TEST && OF)
>  	depends on PM
>  	select PM_GENERIC_DOMAINS
>  	default y if SOC_IMX7D
Abel Vesa Dec. 13, 2018, 2:51 p.m. UTC | #2
On 18-12-13 15:35:27, Lucas Stach wrote:
> Am Donnerstag, den 13.12.2018, 13:17 +0000 schrieb Abel Vesa:
> > To keep aligned with arm64, remove the unnecessary SOC_IMX8MQ and use
> > ARCH_MXC instead.
> > 
> > Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> > ---
> >  arch/arm64/Kconfig.platforms           | 8 --------
> >  arch/arm64/boot/dts/freescale/Makefile | 2 +-
> >  drivers/clk/imx/Makefile               | 3 ++-
> >  drivers/phy/freescale/Kconfig          | 2 +-
> >  drivers/pinctrl/freescale/Kconfig      | 2 +-
> >  drivers/soc/imx/Kconfig                | 2 +-
> >  6 files changed, 6 insertions(+), 13 deletions(-)
> > 
> > diff --git a/arch/arm64/Kconfig.platforms
> > b/arch/arm64/Kconfig.platforms
> > index 7e1545a..318dbb9 100644
> > --- a/arch/arm64/Kconfig.platforms
> > +++ b/arch/arm64/Kconfig.platforms
> > @@ -148,14 +148,6 @@ config ARCH_MXC
> >  	  This enables support for the ARMv8 based SoCs in the
> >  	  NXP i.MX family.
> >  
> > -config SOC_IMX8MQ
> > -	bool "i.MX8MQ support"
> > -	depends on ARCH_MXC
> > -	select ARM64_ERRATUM_843419
> > -	select ARM64_ERRATUM_845719
> > -	help
> > -	  This enables support for the i.MX8MQ SoC.
> > -
> 
> NACK on this one. Having a single place where stuff that is absolutely
> critical for proper SoC operation can be selected is very useful and
> avoids hard to debug issues due to slightly wrong configs in the long
> run.

As mentioned in the cover letter, please ignore this patch set entirely.
The ARCH_MXC is actually used on arm32 too, so it won't work.

I'm working on a patchset that will add the Kconfig into 
drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
fix the clock dependency since the CLK_IMX8MQ will depend on
ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
the same pattern.

As for the SOC_IMX8MQ, all the other vendors have one single
config for all the arm64 platforms. TBH, to control every SoC
independently it's a little bit of an overkill.

But maybe I'm the only one who thinks so.

> 
> Regards,
> Lucas
> 
> >  config ARCH_QCOM
> >  	bool "Qualcomm Platforms"
> >  	select GPIOLIB
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > b/arch/arm64/boot/dts/freescale/Makefile
> > index 0001361..f9be242 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -19,4 +19,4 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-
> > rdb.dtb
> >  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
> >  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> >  
> > -dtb-$(CONFIG_SOC_IMX8MQ) += imx8mq-evk.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
> > diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
> > index 5c0b11e..62a1882 100644
> > --- a/drivers/clk/imx/Makefile
> > +++ b/drivers/clk/imx/Makefile
> > @@ -34,5 +34,6 @@ obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
> >  obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
> >  obj-$(CONFIG_SOC_IMX7D)  += clk-imx7d.o
> >  obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
> > -obj-$(CONFIG_SOC_IMX8MQ) += clk-imx8mq.o
> >  obj-$(CONFIG_SOC_VF610)  += clk-vf610.o
> > +
> > +obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
> > diff --git a/drivers/phy/freescale/Kconfig
> > b/drivers/phy/freescale/Kconfig
> > index f050bd4..923c0ef 100644
> > --- a/drivers/phy/freescale/Kconfig
> > +++ b/drivers/phy/freescale/Kconfig
> > @@ -2,4 +2,4 @@ config PHY_FSL_IMX8MQ_USB
> >  	tristate "Freescale i.MX8M USB3 PHY"
> >  	depends on OF && HAS_IOMEM
> >  	select GENERIC_PHY
> > -	default SOC_IMX8MQ
> > +	default ARCH_MXC
> > diff --git a/drivers/pinctrl/freescale/Kconfig
> > b/drivers/pinctrl/freescale/Kconfig
> > index 2d6db43..9874a16 100644
> > --- a/drivers/pinctrl/freescale/Kconfig
> > +++ b/drivers/pinctrl/freescale/Kconfig
> > @@ -123,7 +123,7 @@ config PINCTRL_IMX7ULP
> >  
> >  config PINCTRL_IMX8MQ
> >  	bool "IMX8MQ pinctrl driver"
> > -	depends on SOC_IMX8MQ
> > +	depends on ARCH_MXC
> >  	select PINCTRL_IMX
> >  	help
> >  	  Say Y here to enable the imx8mq pinctrl driver
> > diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
> > index 2112d18..7ffbb6b 100644
> > --- a/drivers/soc/imx/Kconfig
> > +++ b/drivers/soc/imx/Kconfig
> > @@ -2,7 +2,7 @@ menu "i.MX SoC drivers"
> >  
> >  config IMX_GPCV2_PM_DOMAINS
> >  	bool "i.MX GPCv2 PM domains"
> > -	depends on SOC_IMX7D || SOC_IMX8MQ || (COMPILE_TEST && OF)
> > +	depends on SOC_IMX7D || ARCH_MXC || (COMPILE_TEST && OF)
> >  	depends on PM
> >  	select PM_GENERIC_DOMAINS
> >  	default y if SOC_IMX7D
Shawn Guo Dec. 14, 2018, 1:12 a.m. UTC | #3
On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
...
> > > diff --git a/arch/arm64/Kconfig.platforms
> > > b/arch/arm64/Kconfig.platforms
> > > index 7e1545a..318dbb9 100644
> > > --- a/arch/arm64/Kconfig.platforms
> > > +++ b/arch/arm64/Kconfig.platforms
> > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > >  	  This enables support for the ARMv8 based SoCs in the
> > >  	  NXP i.MX family.
> > >  
> > > -config SOC_IMX8MQ
> > > -	bool "i.MX8MQ support"
> > > -	depends on ARCH_MXC
> > > -	select ARM64_ERRATUM_843419
> > > -	select ARM64_ERRATUM_845719
> > > -	help
> > > -	  This enables support for the i.MX8MQ SoC.
> > > -
> > 
> > NACK on this one. Having a single place where stuff that is absolutely
> > critical for proper SoC operation can be selected is very useful and
> > avoids hard to debug issues due to slightly wrong configs in the long
> > run.
> 
> As mentioned in the cover letter, please ignore this patch set entirely.
> The ARCH_MXC is actually used on arm32 too, so it won't work.
> 
> I'm working on a patchset that will add the Kconfig into 
> drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> fix the clock dependency since the CLK_IMX8MQ will depend on
> ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> the same pattern.
> 
> As for the SOC_IMX8MQ, all the other vendors have one single
> config for all the arm64 platforms. TBH, to control every SoC
> independently it's a little bit of an overkill.

Lucas,

We are still waiting for further comments from Olof [1].  But it sounds
like SoC specific option is not welcomed on ARM64.

Shawn

[1] https://patchwork.kernel.org/patch/10727453/#22378669
Lucas Stach Dec. 14, 2018, 9:22 a.m. UTC | #4
Hi Shawn,

Am Freitag, den 14.12.2018, 09:12 +0800 schrieb Shawn Guo:
> On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
> ...
> > > > diff --git a/arch/arm64/Kconfig.platforms
> > > > b/arch/arm64/Kconfig.platforms
> > > > index 7e1545a..318dbb9 100644
> > > > --- a/arch/arm64/Kconfig.platforms
> > > > +++ b/arch/arm64/Kconfig.platforms
> > > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > > > > > >  	  This enables support for the ARMv8 based SoCs in the
> > > > > > > >  	  NXP i.MX family.
> > > >  
> > > > -config SOC_IMX8MQ
> > > > > > > > -	bool "i.MX8MQ support"
> > > > > > > > -	depends on ARCH_MXC
> > > > > > > > -	select ARM64_ERRATUM_843419
> > > > > > > > -	select ARM64_ERRATUM_845719
> > > > > > > > -	help
> > > > > > > > -	  This enables support for the i.MX8MQ SoC.
> > > > -
> > > 
> > > NACK on this one. Having a single place where stuff that is absolutely
> > > critical for proper SoC operation can be selected is very useful and
> > > avoids hard to debug issues due to slightly wrong configs in the long
> > > run.
> > 
> > As mentioned in the cover letter, please ignore this patch set entirely.
> > The ARCH_MXC is actually used on arm32 too, so it won't work.
> > 
> > I'm working on a patchset that will add the Kconfig into 
> > drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> > fix the clock dependency since the CLK_IMX8MQ will depend on
> > ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> > the same pattern.
> > 
> > As for the SOC_IMX8MQ, all the other vendors have one single
> > config for all the arm64 platforms. TBH, to control every SoC
> > independently it's a little bit of an overkill.
> 
> Lucas,
> 
> We are still waiting for further comments from Olof [1].  But it sounds
> like SoC specific option is not welcomed on ARM64.

While I personally would prefer to keep the SoC options, I see that we
need to align with the judgment of the arm-soc maintainers.

But at the very least we should keep the select for vital system
workarounds. They need to move to the arch Kconfig symbol in that case
and might select stuff that isn't needed on each of the i.MX8 SoCs. But
better enabling more workaround and drivers than necessary than having
hard to debug system failures in the future.

Regards,
Lucas
Abel Vesa Dec. 14, 2018, 12:41 p.m. UTC | #5
On 18-12-14 10:22:11, Lucas Stach wrote:
> Hi Shawn,
> 
> Am Freitag, den 14.12.2018, 09:12 +0800 schrieb Shawn Guo:
> > On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
> > ...
> > > > > diff --git a/arch/arm64/Kconfig.platforms
> > > > > b/arch/arm64/Kconfig.platforms
> > > > > index 7e1545a..318dbb9 100644
> > > > > --- a/arch/arm64/Kconfig.platforms
> > > > > +++ b/arch/arm64/Kconfig.platforms
> > > > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > > > > > > >  	  This enables support for the ARMv8 based SoCs in the
> > > > > > > > >  	  NXP i.MX family.
> > > > >  
> > > > > -config SOC_IMX8MQ
> > > > > > > > > -	bool "i.MX8MQ support"
> > > > > > > > > -	depends on ARCH_MXC
> > > > > > > > > -	select ARM64_ERRATUM_843419
> > > > > > > > > -	select ARM64_ERRATUM_845719
> > > > > > > > > -	help
> > > > > > > > > -	  This enables support for the i.MX8MQ SoC.
> > > > > -
> > > > 
> > > > NACK on this one. Having a single place where stuff that is absolutely
> > > > critical for proper SoC operation can be selected is very useful and
> > > > avoids hard to debug issues due to slightly wrong configs in the long
> > > > run.
> > > 
> > > As mentioned in the cover letter, please ignore this patch set entirely.
> > > The ARCH_MXC is actually used on arm32 too, so it won't work.
> > > 
> > > I'm working on a patchset that will add the Kconfig into 
> > > drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> > > fix the clock dependency since the CLK_IMX8MQ will depend on
> > > ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> > > the same pattern.
> > > 
> > > As for the SOC_IMX8MQ, all the other vendors have one single
> > > config for all the arm64 platforms. TBH, to control every SoC
> > > independently it's a little bit of an overkill.
> > 
> > Lucas,
> > 
> > We are still waiting for further comments from Olof [1].  But it sounds
> > like SoC specific option is not welcomed on ARM64.
> 
> While I personally would prefer to keep the SoC options, I see that we
> need to align with the judgment of the arm-soc maintainers.
> 
> But at the very least we should keep the select for vital system
> workarounds. They need to move to the arch Kconfig symbol in that case
> and might select stuff that isn't needed on each of the i.MX8 SoCs. But
> better enabling more workaround and drivers than necessary than having
> hard to debug system failures in the future.
> 

I get your point. But that seems to be an issue with the whole arm64 approach.
TBH, I believe now would be the perfect time to "get it right" on IMX since the 8MQ
is the first one to get boot-up support upstream. It will be way much harder
to change this later when more arm64 IMX SoCs get upstreamed.

I would really love more opinions on this.

I have patches on stand-by that remove the SOC_IMX8MQ in all the subsystems and
a patch for the defconfig update which I'll keep on holding on to until there
is a agreement on this.

> Regards,
> Lucas
Stephen Boyd Dec. 14, 2018, 5:16 p.m. UTC | #6
Quoting Abel Vesa (2018-12-14 04:41:46)
> On 18-12-14 10:22:11, Lucas Stach wrote:
> > Hi Shawn,
> > 
> > Am Freitag, den 14.12.2018, 09:12 +0800 schrieb Shawn Guo:
> > > On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
> > > ...
> > > > > > diff --git a/arch/arm64/Kconfig.platforms
> > > > > > b/arch/arm64/Kconfig.platforms
> > > > > > index 7e1545a..318dbb9 100644
> > > > > > --- a/arch/arm64/Kconfig.platforms
> > > > > > +++ b/arch/arm64/Kconfig.platforms
> > > > > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > > > > > > > >         This enables support for the ARMv8 based SoCs in the
> > > > > > > > > >         NXP i.MX family.
> > > > > >  
> > > > > > -config SOC_IMX8MQ
> > > > > > > > > > -     bool "i.MX8MQ support"
> > > > > > > > > > -     depends on ARCH_MXC
> > > > > > > > > > -     select ARM64_ERRATUM_843419
> > > > > > > > > > -     select ARM64_ERRATUM_845719
> > > > > > > > > > -     help
> > > > > > > > > > -       This enables support for the i.MX8MQ SoC.
> > > > > > -
> > > > > 
> > > > > NACK on this one. Having a single place where stuff that is absolutely
> > > > > critical for proper SoC operation can be selected is very useful and
> > > > > avoids hard to debug issues due to slightly wrong configs in the long
> > > > > run.
> > > > 
> > > > As mentioned in the cover letter, please ignore this patch set entirely.
> > > > The ARCH_MXC is actually used on arm32 too, so it won't work.
> > > > 
> > > > I'm working on a patchset that will add the Kconfig into 
> > > > drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> > > > fix the clock dependency since the CLK_IMX8MQ will depend on
> > > > ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> > > > the same pattern.
> > > > 
> > > > As for the SOC_IMX8MQ, all the other vendors have one single
> > > > config for all the arm64 platforms. TBH, to control every SoC
> > > > independently it's a little bit of an overkill.
> > > 
> > > Lucas,
> > > 
> > > We are still waiting for further comments from Olof [1].  But it sounds
> > > like SoC specific option is not welcomed on ARM64.
> > 
> > While I personally would prefer to keep the SoC options, I see that we
> > need to align with the judgment of the arm-soc maintainers.
> > 
> > But at the very least we should keep the select for vital system
> > workarounds. They need to move to the arch Kconfig symbol in that case
> > and might select stuff that isn't needed on each of the i.MX8 SoCs. But
> > better enabling more workaround and drivers than necessary than having
> > hard to debug system failures in the future.

CPU erratas are typically implemented with runtime code patching and
they're pretty much all 'default y' so having the SoC config option
select them doesn't do much besides force the errata to always be
enabled. If allowing the user to disable errata handling is a problem,
then perhaps those should only be visible when CONFIG_EXPERT=y.

> > 
> 
> I get your point. But that seems to be an issue with the whole arm64 approach.
> TBH, I believe now would be the perfect time to "get it right" on IMX since the 8MQ
> is the first one to get boot-up support upstream. It will be way much harder
> to change this later when more arm64 IMX SoCs get upstreamed.
> 
> I would really love more opinions on this.
> 
> I have patches on stand-by that remove the SOC_IMX8MQ in all the subsystems and
> a patch for the defconfig update which I'll keep on holding on to until there
> is a agreement on this.
> 

I will merge the clk patch now. Hope that helps you feel more confident
that CONFIG_SOC_FOO options aren't welcome.

Patch
diff mbox series

diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 7e1545a..318dbb9 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -148,14 +148,6 @@  config ARCH_MXC
 	  This enables support for the ARMv8 based SoCs in the
 	  NXP i.MX family.
 
-config SOC_IMX8MQ
-	bool "i.MX8MQ support"
-	depends on ARCH_MXC
-	select ARM64_ERRATUM_843419
-	select ARM64_ERRATUM_845719
-	help
-	  This enables support for the i.MX8MQ SoC.
-
 config ARCH_QCOM
 	bool "Qualcomm Platforms"
 	select GPIOLIB
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 0001361..f9be242 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,4 +19,4 @@  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
 
-dtb-$(CONFIG_SOC_IMX8MQ) += imx8mq-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index 5c0b11e..62a1882 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -34,5 +34,6 @@  obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
 obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
 obj-$(CONFIG_SOC_IMX7D)  += clk-imx7d.o
 obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
-obj-$(CONFIG_SOC_IMX8MQ) += clk-imx8mq.o
 obj-$(CONFIG_SOC_VF610)  += clk-vf610.o
+
+obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
diff --git a/drivers/phy/freescale/Kconfig b/drivers/phy/freescale/Kconfig
index f050bd4..923c0ef 100644
--- a/drivers/phy/freescale/Kconfig
+++ b/drivers/phy/freescale/Kconfig
@@ -2,4 +2,4 @@  config PHY_FSL_IMX8MQ_USB
 	tristate "Freescale i.MX8M USB3 PHY"
 	depends on OF && HAS_IOMEM
 	select GENERIC_PHY
-	default SOC_IMX8MQ
+	default ARCH_MXC
diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig
index 2d6db43..9874a16 100644
--- a/drivers/pinctrl/freescale/Kconfig
+++ b/drivers/pinctrl/freescale/Kconfig
@@ -123,7 +123,7 @@  config PINCTRL_IMX7ULP
 
 config PINCTRL_IMX8MQ
 	bool "IMX8MQ pinctrl driver"
-	depends on SOC_IMX8MQ
+	depends on ARCH_MXC
 	select PINCTRL_IMX
 	help
 	  Say Y here to enable the imx8mq pinctrl driver
diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
index 2112d18..7ffbb6b 100644
--- a/drivers/soc/imx/Kconfig
+++ b/drivers/soc/imx/Kconfig
@@ -2,7 +2,7 @@  menu "i.MX SoC drivers"
 
 config IMX_GPCV2_PM_DOMAINS
 	bool "i.MX GPCv2 PM domains"
-	depends on SOC_IMX7D || SOC_IMX8MQ || (COMPILE_TEST && OF)
+	depends on SOC_IMX7D || ARCH_MXC || (COMPILE_TEST && OF)
 	depends on PM
 	select PM_GENERIC_DOMAINS
 	default y if SOC_IMX7D