On Fri, Feb 11, 2022 at 03:23:20PM -0800, Tim Harvey wrote: > > > I tried to adapt my patch 'arm64: dts: imx8mm-venice-gw73xx-0x: add dt > > > overlays for serial modes' [1] and it results in a build failure: > > > $ make dtbs W=1 > > > UPD include/config/kernel.release > > > DTC arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtbo > > > DTOVL arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtb > > > > > > Overlay 'scripts/dtc/include-prefixes/dt-bindings/gpio/gpio.h' is > > > incomplete (2048 / 1346656301 bytes read) > > > scripts/Makefile.lib:360: recipe for target > > > 'arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtb' > > > failed > > > make[2]: *** [arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtb] > > > Error 1 > > > scripts/Makefile.build:550: recipe for target > > > 'arch/arm64/boot/dts/freescale' failed > > > make[1]: *** [arch/arm64/boot/dts/freescale] Error 2 > > > Makefile:1370: recipe for target 'dtbs' failed > > > make: *** [dtbs] Error 2 > > > > > > It seems that it chokes on the include. The dts is: > > > // SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > > /* > > > * Copyright 2022 Gateworks Corporation > > > * > > > * GW73xx RS232 with RTS/CTS hardware flow control: > > > * - GPIO4_0 rs485_en needs to be driven low (in-active) > > > * - UART4_TX becomes RTS > > > * - UART4_RX becomes CTS > > > */ > > > > > > #include <dt-bindings/gpio/gpio.h> > > > > > > #include "imx8mm-pinfunc.h" > > > > > > /dts-v1/; > > > /plugin/; > > > > > > &{/} { > > > compatible = "gw,imx8mm-gw73xx-0x"; > > > }; > > > > > > &gpio4 { > > > rs485_en { > > > gpio-hog; > > > gpios = <0 GPIO_ACTIVE_HIGH>; > > > output-low; > > > line-name = "rs485_en"; > > > }; > > > }; > > > > > > &uart2 { > > > pinctrl-names = "default"; > > > pinctrl-0 = <&pinctrl_uart2>; > > > rts-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>; > > > cts-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; > > > uart-has-rtscts; > > > status = "okay"; > > > }; > > > > > > &uart4 { > > > status = "disabled"; > > > }; > > > > > > &iomuxc { > > > pinctrl_uart2: uart2grp { > > > fsl,pins = < > > > MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140 > > > MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140 > > > MX8MM_IOMUXC_UART4_TXD_GPIO5_IO29 0x140 > > > MX8MM_IOMUXC_UART4_RXD_GPIO5_IO28 0x140 > > > >; > > > }; > > > }; > > > > > > Could you explain what is wrong here? It compiled fine before trying > > > to adapt the Makefile to what is described in 15d16d6dadf6 ("kbuild: > > > Add generic rule to applyfdt overlay" > > > > > > With the following changes on top of your patch, I can build the dtbo > > without error. > > > > ---8<------- > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > > index 4611f66096a7..d42a9e03f014 100644 > > --- a/arch/arm64/boot/dts/freescale/Makefile > > +++ b/arch/arm64/boot/dts/freescale/Makefile > > @@ -61,9 +61,6 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw71xx-0x.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw72xx-0x.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x.dtb > > -dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x-rs232-rts.dtbo > > -dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x-rs422.dtbo > > -dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x-rs485.dtbo > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7901.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7902.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8mn-beacon-kit.dtb > > @@ -97,6 +94,14 @@ dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-eval-v3.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb > > dtb-$(CONFIG_ARCH_MXC) += imx8ulp-evk.dtb > > > > +imx8mm-venice-gw73xx-0x-rs232-rts-dtbs := imx8mm-venice-gw73xx-0x.dtb imx8mm-venice-gw73xx-0x-rs232-rts.dtbo > > +imx8mm-venice-gw73xx-0x-rs422-dtbs := imx8mm-venice-gw73xx-0x.dtb imx8mm-venice-gw73xx-0x-rs422.dtbo > > +imx8mm-venice-gw73xx-0x-rs485-dtbs := imx8mm-venice-gw73xx-0x.dtb imx8mm-venice-gw73xx-0x-rs485.dtbo > > + > > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x-rs232-rts.dtb > > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x-rs422.dtb > > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x-rs485.dtb > > + > > dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb > > dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb > > dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb > > Shawn, > > On top of what branch and with what commands? I've rebased this on top > of your imx/dt64 branch and can not build once I apply this over my > patch using 'make dtbs W=1'. Tim, For your reference, I pushed the changes as below. https://git.linaro.org/people/shawn.guo/linux-2.6.git/log/?h=test/gw73xx-dtbo The build command is: $ make W=1 ARCH=arm64 dtbs UPD include/config/kernel.release DTC arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtbo DTC arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs422.dtbo DTC arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs485.dtbo DTOVL arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtb DTOVL arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs422.dtb DTOVL arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x-rs485.dtb Maybe you forgot to set up 'ARCH' variable? Shawn