[PATCH V4 1/6] ARM: dts: imx6q: add common compatible name for reused modules
Sascha Hauer
s.hauer at pengutronix.de
Mon Jan 13 07:10:16 EST 2014
On Mon, Jan 13, 2014 at 07:53:46PM +0800, Anson Huang wrote:
> As some modules are common for all i.MX6 SOCs, to avoid
> checking cpu type for drivers that needs them, just add a
> new compatible name for them.
>
> Signed-off-by: Anson Huang <b20788 at freescale.com>
> ---
> arch/arm/boot/dts/imx6q.dtsi | 2 +-
> arch/arm/boot/dts/imx6qdl.dtsi | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
> index 021e0cb..5bc79c7 100644
> --- a/arch/arm/boot/dts/imx6q.dtsi
> +++ b/arch/arm/boot/dts/imx6q.dtsi
> @@ -91,7 +91,7 @@
> };
>
> iomuxc: iomuxc at 020e0000 {
> - compatible = "fsl,imx6q-iomuxc";
> + compatible = "fsl,imx6q-iomuxc", "fsl,iomuxc";
>
> ipu2 {
> pinctrl_ipu2_1: ipu2grp-1 {
> diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
> index 8a86502..cb9129b 100644
> --- a/arch/arm/boot/dts/imx6qdl.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl.dtsi
> @@ -622,7 +622,7 @@
> };
>
> src: src at 020d8000 {
> - compatible = "fsl,imx6q-src", "fsl,imx51-src";
> + compatible = "fsl,imx6q-src", "fsl,imx51-src", "fsl,src";
> reg = <0x020d8000 0x4000>;
> interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
> <0 96 IRQ_TYPE_LEVEL_HIGH>;
> @@ -630,7 +630,7 @@
> };
>
> gpc: gpc at 020dc000 {
> - compatible = "fsl,imx6q-gpc";
> + compatible = "fsl,imx6q-gpc", "fsl,gpc";
> reg = <0x020dc000 0x4000>;
> interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
> <0 90 IRQ_TYPE_LEVEL_HIGH>;
> @@ -840,7 +840,7 @@
> };
>
> mmdc0: mmdc at 021b0000 { /* MMDC0 */
> - compatible = "fsl,imx6q-mmdc";
> + compatible = "fsl,imx6q-mmdc", "fsl,mmdc";
This is not nice. Here you introduce a fsl,mmdc compatible claiming all
mmdc are compatible to each other and in the driver code you have:
static const u32 imx6q_mmdc_io_dsm_offset[]
static const u32 imx6dl_mmdc_io_dsm_offset[]
which proves they are *not* compatible.
You do this just to share a
imx6_pm_get_base(&pm_info->mmdc_base, "fsl,mmdc");
across the different i.MX6 SoCs.
You can sanitize this by introducing a SoC struct which you populate
differently for the SoCs
static pm_soc_data imx6q_data {
.mmdc_compat = "fsl,imx6q-mmdc",
};
And by putting cpu_type, mmdc_io_num and others in this struct you can
also remove the if(cpu_is_x()) else if (cpu_is_y()) else...
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list