Messages in this thread Patch in this message | | | From | Anson Huang <> | Subject | RE: [PATCH] soc: imx: Add i.MX8MN SoC driver support | Date | Tue, 18 Jun 2019 08:24:59 +0000 |
| |
Hi, Shawn
> -----Original Message----- > From: Shawn Guo <shawnguo@kernel.org> > Sent: Tuesday, June 18, 2019 3:04 PM > To: Anson Huang <anson.huang@nxp.com> > Cc: s.hauer@pengutronix.de; kernel@pengutronix.de; festevam@gmail.com; > Leonard Crestez <leonard.crestez@nxp.com>; viresh.kumar@linaro.org; > Abel Vesa <abel.vesa@nxp.com>; linux-arm-kernel@lists.infradead.org; > linux-kernel@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com> > Subject: Re: [PATCH] soc: imx: Add i.MX8MN SoC driver support > > On Tue, Jun 11, 2019 at 09:31:25AM +0800, Anson.Huang@nxp.com wrote: > > From: Anson Huang <Anson.Huang@nxp.com> > > > > This patch adds i.MX8MN SoC driver support: > > > > root@imx8mnevk:~# cat /sys/devices/soc0/family Freescale i.MX > > > > root@imx8mnevk:~# cat /sys/devices/soc0/machine NXP i.MX8MNano > DDR4 > > EVK board > > > > root@imx8mnevk:~# cat /sys/devices/soc0/soc_id i.MX8MN > > > > root@imx8mnevk:~# cat /sys/devices/soc0/revision > > 1.0 > > > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > > --- > > drivers/soc/imx/soc-imx8.c | 13 ++++++++++++- > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/soc/imx/soc-imx8.c b/drivers/soc/imx/soc-imx8.c > > index 3842d09..02309a2 100644 > > --- a/drivers/soc/imx/soc-imx8.c > > +++ b/drivers/soc/imx/soc-imx8.c > > @@ -55,7 +55,12 @@ static u32 __init imx8mm_soc_revision(void) > > void __iomem *anatop_base; > > u32 rev; > > > > - np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-anatop"); > > + if (of_machine_is_compatible("fsl,imx8mm")) > > + np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm- > anatop"); > > + else if (of_machine_is_compatible("fsl,imx8mn")) > > + np = of_find_compatible_node(NULL, NULL, "fsl,imx8mn- > anatop"); > > Can we have this anatop compatible in imx8_soc_data, so that we may save > the call to of_machine_is_compatible()?
Do you mean adding a variable like " const char *anatop_compat " in imx8_soc_date structure, then initialize it according to SoC type, and in imx8mm_soc_revision(), get to soc_data's anatio_compat to find the anatop node? If yes, we have to add some code to get the soc_data in this function, or maybe we can pass anatop compatible name as .soc_revision's parameter?
static const struct imx8_soc_data imx8mn_soc_data = { .name = "i.MX8MN", .soc_revision = imx8mm_soc_revision, .anatop_compat = "fsl,imx8mn-anatop", };
Anson. > > Shawn > > > + else > > + np = NULL; > > if (!np) > > return 0; > > > > @@ -79,9 +84,15 @@ static const struct imx8_soc_data imx8mm_soc_data > = { > > .soc_revision = imx8mm_soc_revision, }; > > > > +static const struct imx8_soc_data imx8mn_soc_data = { > > + .name = "i.MX8MN", > > + .soc_revision = imx8mm_soc_revision, }; > > + > > static const struct of_device_id imx8_soc_match[] = { > > { .compatible = "fsl,imx8mq", .data = &imx8mq_soc_data, }, > > { .compatible = "fsl,imx8mm", .data = &imx8mm_soc_data, }, > > + { .compatible = "fsl,imx8mn", .data = &imx8mn_soc_data, }, > > { } > > }; > > > > -- > > 2.7.4 > >
| |