[PATCH 2/4] arm64: add basic DTS for i.MX8MQ

Lucas Stach l.stach at pengutronix.de
Tue Jan 23 05:23:19 PST 2018


Am Dienstag, den 23.01.2018, 18:36 +0800 schrieb Shawn Guo:
> On Wed, Jan 17, 2018 at 07:32:42PM +0100, Lucas Stach wrote:
> > This adds the basic DTS for the i.MX8MQ.
> > For now only the following peripherals are supported:
> > - IOMUXC (pin controller)
> > - CCM (clock controller)
> > - GPIO
> > - UART
> > - uSDHC (SD/eMMC controller)
> > - FEC (ethernet controller)
> > - i2c
> > 
> > This is enough to get a very basic board support up and running.
> > 
> > One known limitation is that the driver for the GPC interrupt
> > controller is still missing, rendering the CPU sleep states unusable
> > as there is nothing waking them up anymore. This will be fixed in
> > due course.
> > 
> > > > Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> > ---
> >  arch/arm64/boot/dts/Makefile             |   1 +
> >  arch/arm64/boot/dts/nxp/imx8mq-pinfunc.h | 632 +++++++++++++++++++++++++++++++
> >  arch/arm64/boot/dts/nxp/imx8mq.dtsi      | 418 ++++++++++++++++++++
> >  3 files changed, 1051 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/nxp/imx8mq-pinfunc.h
> >  create mode 100644 arch/arm64/boot/dts/nxp/imx8mq.dtsi
> 
> <snip>

> > +	timer {
> > > > +		compatible = "arm,armv8-timer";
> > > > +		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */
> > > > +		             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */
> > > > +		             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */
> > > > +		             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */
> > > > +		clock-frequency = <8333333>;
> > > > +		interrupt-parent = <&gic>;
> > > > +		arm,no-tick-in-suspend;
> > > > +	};
> > +
> > +	peripherals at 0 {
> 
> What's the reason of using 'peripherals' rather than 'soc' which is the
> case for most device trees?

Just personal preference. I find it a bit confusing to have a soc node,
that doesn't include a lot of stuff (e.g CPUs) that are found on the
SoC. I someone feels strongly about this I'll change it.

> > +		compatible = "simple-bus";
> > +
> 
> Drop the newline.
> 
> > > > +		#address-cells = <1>;
> > > > +		#size-cells = <1>;
> > > > +		ranges = <0x0 0x0 0x0 0x3e000000>;
> > +
> > +
> 
> One newline is enough.
> 
> > > > +		aips-bus at 30000000 { /* AIPS1 */
> > > > +			compatible = "nxp,imx8mq-aips-bus", "simple-bus";
> > +
> 
> Drop the newline.
> 
> > > > +			#address-cells = <1>;
> > > > +			#size-cells = <1>;
> > > > +			ranges = <0x30000000 0x30000000 0x400000>;
> > +
> > > > > > +			gpio1: gpio at 30200000 {
> > +				compatible = "nxp,imx8mq-gpio", "fsl,imx35-gpio";
> 
> It looks a bit odd to have different vendor prefix for the same device.
> But we can understand the reason.  Just curious if this is what vendor
> kernel does?

No, I did it mostly to be consistent with the location of the DT files
under "nxp". I'll change this to match the "freescale" location.

Regards,
Lucas



More information about the linux-arm-kernel mailing list