diff mbox

[v1,18/19] arm: dts: mt7623: add MT7623A reference boards

Message ID ddffdff293734954ba368be8a54edd3c84a4f4e6.1519378872.git.sean.wang@mediatek.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sean Wang Feb. 23, 2018, 10:16 a.m. UTC
From: Sean Wang <sean.wang@mediatek.com>

Add mt7623a-rfb.dtsi where most nodes can be inherited from
mt7623n-rfb.dtsi and keep these distinctions from MT7623A boards in
mt7623a-rfb.dtsi for most definition can be reused among MT7623A board
variants.

MT7623A has its specific definition of power domain and thus we need
to change related devices such as audio, ethernet, crypto, high-speed
DMA, NAND, and USB controller to the power domain they specifically
belong to. In addition, MT7530 exists as built-in module inside MT7623A
SoC and I2C2 and UART[0-1] get being removed and UART2 have distinct pin
usage. Those all differences can be totally seen in mt7623a-rfb.dtsi.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 arch/arm/boot/dts/Makefile             |  2 +
 arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 22 +++++++++
 arch/arm/boot/dts/mt7623a-rfb-nand.dts | 26 +++++++++++
 arch/arm/boot/dts/mt7623a-rfb.dtsi     | 84 ++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/mt7623n-rfb.dtsi     | 15 ++++++
 5 files changed, 149 insertions(+)
 create mode 100644 arch/arm/boot/dts/mt7623a-rfb-emmc.dts
 create mode 100644 arch/arm/boot/dts/mt7623a-rfb-nand.dts
 create mode 100644 arch/arm/boot/dts/mt7623a-rfb.dtsi

Comments

Rob Herring (Arm) March 2, 2018, 3:45 p.m. UTC | #1
On Fri, Feb 23, 2018 at 06:16:38PM +0800, sean.wang@mediatek.com wrote:
> From: Sean Wang <sean.wang@mediatek.com>
> 
> Add mt7623a-rfb.dtsi where most nodes can be inherited from
> mt7623n-rfb.dtsi and keep these distinctions from MT7623A boards in
> mt7623a-rfb.dtsi for most definition can be reused among MT7623A board
> variants.
> 
> MT7623A has its specific definition of power domain and thus we need
> to change related devices such as audio, ethernet, crypto, high-speed
> DMA, NAND, and USB controller to the power domain they specifically
> belong to. In addition, MT7530 exists as built-in module inside MT7623A
> SoC and I2C2 and UART[0-1] get being removed and UART2 have distinct pin
> usage. Those all differences can be totally seen in mt7623a-rfb.dtsi.
> 
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
>  arch/arm/boot/dts/Makefile             |  2 +
>  arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 22 +++++++++
>  arch/arm/boot/dts/mt7623a-rfb-nand.dts | 26 +++++++++++
>  arch/arm/boot/dts/mt7623a-rfb.dtsi     | 84 ++++++++++++++++++++++++++++++++++
>  arch/arm/boot/dts/mt7623n-rfb.dtsi     | 15 ++++++
>  5 files changed, 149 insertions(+)
>  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-emmc.dts
>  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-nand.dts
>  create mode 100644 arch/arm/boot/dts/mt7623a-rfb.dtsi
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 5af6fce..818817c 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -1122,6 +1122,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
>  	mt6580-evbp1.dtb \
>  	mt6589-aquaris5.dtb \
>  	mt6592-evb.dtb \
> +	mt7623a-rfb-emmc.dtb \
> +	mt7623a-rfb-nand.dtb \
>  	mt7623n-rfb-emmc.dtb \
>  	mt7623n-rfb-nand.dtb \
>  	mt7623n-bananapi-bpi-r2.dtb \
> diff --git a/arch/arm/boot/dts/mt7623a-rfb-emmc.dts b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> new file mode 100644
> index 0000000..ef6398e
> --- /dev/null
> +++ b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> @@ -0,0 +1,22 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2017-2018 MediaTek Inc.
> + * Author: Sean Wang <sean.wang@mediatek.com>
> + *
> + */
> +
> +/dts-v1/;
> +#include "mt7623a-rfb.dtsi"
> +
> +/ {
> +	model = "MediaTek MT7623A with eMMC reference board";
> +	compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623";
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200n8 earlyprintk";

Use stdout-path instead. earlyprintk option only works for a kernel 
built with a debug uart at a fixed address, so drop it.

> +	};
> +};
> +
> +&mmc0 {
> +	status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/mt7623a-rfb-nand.dts b/arch/arm/boot/dts/mt7623a-rfb-nand.dts
> new file mode 100644
> index 0000000..592d5d7
> --- /dev/null
> +++ b/arch/arm/boot/dts/mt7623a-rfb-nand.dts
> @@ -0,0 +1,26 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2017-2018 MediaTek Inc.
> + * Author: Sean Wang <sean.wang@mediatek.com>
> + *
> + */
> +
> +/dts-v1/;
> +#include "mt7623a-rfb.dtsi"
> +
> +/ {
> +	model = "MediaTek MT7623A with NAND reference board";
> +	compatible = "mediatek,mt7623a-rfb-nand", "mediatek,mt7623";
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200n8 earlyprintk";

ditto.

> +	};
> +};
> +
> +&bch {
> +	status = "okay";
> +};
> +
> +&nandc {
> +	status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/mt7623a-rfb.dtsi b/arch/arm/boot/dts/mt7623a-rfb.dtsi
> new file mode 100644
> index 0000000..3a15c46
> --- /dev/null
> +++ b/arch/arm/boot/dts/mt7623a-rfb.dtsi
> @@ -0,0 +1,84 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2017-2018 MediaTek Inc.
> + * Author: Sean Wang <sean.wang@mediatek.com>
> + *
> + */
> +
> +/dts-v1/;
> +#include <dt-bindings/power/mt7623a-power.h>
> +#include "mt7623n-rfb.dtsi"
> +
> +/ {
> +	memory {

Unit-address?

> +		device_type = "memory";
> +		reg = <0 0x80000000 0 0x20000000>;
> +	};
> +};
> +
> +&afe {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>;
> +};
> +
> +&cir {
> +	status = "disabled";
> +};
> +
> +&crypto {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
> +};
> +
> +&eth {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
> +};
> +
> +&hsdma {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_pins_b>;
> +};
> +
> +&mt7530 {
> +	mediatek,mcm;
> +	resets = <&ethsys MT2701_ETHSYS_MCM_RST>;
> +	reset-names = "mcm";
> +};
> +
> +&nandc {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>;
> +};
> +
> +&pcie {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
> +};
> +
> +&scpsys {
> +	compatible = "mediatek,mt7623a-scpsys",
> +		     "syscon";
> +	clocks = <&topckgen CLK_TOP_ETHIF_SEL>;
> +	clock-names = "ethif";
> +};
> +
> +&uart0 {
> +	status = "disabled";
> +};
> +
> +&uart1 {
> +	status = "disabled";
> +};
> +
> +&uart2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart2_pins_b>;
> +};
> +
> +&usb1 {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
> +};
> +
> +&usb2 {
> +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
> +};
> diff --git a/arch/arm/boot/dts/mt7623n-rfb.dtsi b/arch/arm/boot/dts/mt7623n-rfb.dtsi
> index 0237476..07ed15d 100644
> --- a/arch/arm/boot/dts/mt7623n-rfb.dtsi
> +++ b/arch/arm/boot/dts/mt7623n-rfb.dtsi
> @@ -380,6 +380,14 @@
>  		};
>  	};
>  
> +	i2c2_pins_b: i2c2-alt {
> +		pin-i2c2 {
> +			pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
> +				 <MT7623_PIN_123_HTPLG_FUNC_SCL2>;
> +			bias-disable;
> +		};
> +	};
> +
>  	i2s0_pins_a: i2s0-default {
>  		pin-i2s0 {
>  			pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
> @@ -629,6 +637,13 @@
>  				 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
>  		};
>  	};
> +
> +	uart2_pins_b: uart2-alt {
> +		pins-dat {
> +			pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
> +				 <MT7623_PIN_201_UTXD2_FUNC_UTXD2>;
> +		};
> +	};
>  };
>  
>  &pwm {
> -- 
> 2.7.4
>
Sean Wang March 3, 2018, 2:15 a.m. UTC | #2
On Fri, 2018-03-02 at 09:45 -0600, Rob Herring wrote:
> On Fri, Feb 23, 2018 at 06:16:38PM +0800, sean.wang@mediatek.com wrote:
> > From: Sean Wang <sean.wang@mediatek.com>
> > 
> > Add mt7623a-rfb.dtsi where most nodes can be inherited from
> > mt7623n-rfb.dtsi and keep these distinctions from MT7623A boards in
> > mt7623a-rfb.dtsi for most definition can be reused among MT7623A board
> > variants.
> > 
> > MT7623A has its specific definition of power domain and thus we need
> > to change related devices such as audio, ethernet, crypto, high-speed
> > DMA, NAND, and USB controller to the power domain they specifically
> > belong to. In addition, MT7530 exists as built-in module inside MT7623A
> > SoC and I2C2 and UART[0-1] get being removed and UART2 have distinct pin
> > usage. Those all differences can be totally seen in mt7623a-rfb.dtsi.
> > 
> > Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> > ---
> >  arch/arm/boot/dts/Makefile             |  2 +
> >  arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 22 +++++++++
> >  arch/arm/boot/dts/mt7623a-rfb-nand.dts | 26 +++++++++++
> >  arch/arm/boot/dts/mt7623a-rfb.dtsi     | 84 ++++++++++++++++++++++++++++++++++
> >  arch/arm/boot/dts/mt7623n-rfb.dtsi     | 15 ++++++
> >  5 files changed, 149 insertions(+)
> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-nand.dts
> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb.dtsi
> > 
> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > index 5af6fce..818817c 100644
> > --- a/arch/arm/boot/dts/Makefile
> > +++ b/arch/arm/boot/dts/Makefile
> > @@ -1122,6 +1122,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
> >  	mt6580-evbp1.dtb \
> >  	mt6589-aquaris5.dtb \
> >  	mt6592-evb.dtb \
> > +	mt7623a-rfb-emmc.dtb \
> > +	mt7623a-rfb-nand.dtb \
> >  	mt7623n-rfb-emmc.dtb \
> >  	mt7623n-rfb-nand.dtb \
> >  	mt7623n-bananapi-bpi-r2.dtb \
> > diff --git a/arch/arm/boot/dts/mt7623a-rfb-emmc.dts b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> > new file mode 100644
> > index 0000000..ef6398e
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> > @@ -0,0 +1,22 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (c) 2017-2018 MediaTek Inc.
> > + * Author: Sean Wang <sean.wang@mediatek.com>
> > + *
> > + */
> > +
> > +/dts-v1/;
> > +#include "mt7623a-rfb.dtsi"
> > +
> > +/ {
> > +	model = "MediaTek MT7623A with eMMC reference board";
> > +	compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623";
> > +
> > +	chosen {
> > +		bootargs = "console=ttyS0,115200n8 earlyprintk";
> 
> Use stdout-path instead. earlyprintk option only works for a kernel 
> built with a debug uart at a fixed address, so drop it.
> 

thanks, I will try and have stdout-path instead. 

But for earlyprintk, our kernel can support and be built with a debug
uart at a fixed address and it is greatly useful to know what's going
on when a system hang happens on certain device's initialization prior
to uart initialization such as PCI device.

Thus, I consider to keep it there in special on such kinds of
development boards for debugging purpose.

> > +	};
> > +};
> > +
> > +&mmc0 {
> > +	status = "okay";
> > +};
> > diff --git a/arch/arm/boot/dts/mt7623a-rfb-nand.dts b/arch/arm/boot/dts/mt7623a-rfb-nand.dts
> > new file mode 100644
> > index 0000000..592d5d7
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/mt7623a-rfb-nand.dts
> > @@ -0,0 +1,26 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (c) 2017-2018 MediaTek Inc.
> > + * Author: Sean Wang <sean.wang@mediatek.com>
> > + *
> > + */
> > +
> > +/dts-v1/;
> > +#include "mt7623a-rfb.dtsi"
> > +
> > +/ {
> > +	model = "MediaTek MT7623A with NAND reference board";
> > +	compatible = "mediatek,mt7623a-rfb-nand", "mediatek,mt7623";
> > +
> > +	chosen {
> > +		bootargs = "console=ttyS0,115200n8 earlyprintk";
> 
> ditto.
> 
> > +	};
> > +};
> > +
> > +&bch {
> > +	status = "okay";
> > +};
> > +
> > +&nandc {
> > +	status = "okay";
> > +};
> > diff --git a/arch/arm/boot/dts/mt7623a-rfb.dtsi b/arch/arm/boot/dts/mt7623a-rfb.dtsi
> > new file mode 100644
> > index 0000000..3a15c46
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/mt7623a-rfb.dtsi
> > @@ -0,0 +1,84 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (c) 2017-2018 MediaTek Inc.
> > + * Author: Sean Wang <sean.wang@mediatek.com>
> > + *
> > + */
> > +
> > +/dts-v1/;
> > +#include <dt-bindings/power/mt7623a-power.h>
> > +#include "mt7623n-rfb.dtsi"
> > +
> > +/ {
> > +	memory {
> 
> Unit-address?

If unit-address is being included, it seem there is dtc problem two ,
memory nodes are generated, one with invalid size 0 would cause boot
fails as [1] I addressed.

[1]
http://lists.infradead.org/pipermail/linux-mediatek/2018-March/012249.html


> > +		device_type = "memory";
> > +		reg = <0 0x80000000 0 0x20000000>;
> > +	};
> > +};
> > +
> > +&afe {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>;
> > +};
> > +
> > +&cir {
> > +	status = "disabled";
> > +};
> > +
> > +&crypto {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
> > +};
> > +
> > +&eth {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
> > +};
> > +
> > +&hsdma {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
> > +};
> > +
> > +&i2c2 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&i2c2_pins_b>;
> > +};
> > +
> > +&mt7530 {
> > +	mediatek,mcm;
> > +	resets = <&ethsys MT2701_ETHSYS_MCM_RST>;
> > +	reset-names = "mcm";
> > +};
> > +
> > +&nandc {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>;
> > +};
> > +
> > +&pcie {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
> > +};
> > +
> > +&scpsys {
> > +	compatible = "mediatek,mt7623a-scpsys",
> > +		     "syscon";
> > +	clocks = <&topckgen CLK_TOP_ETHIF_SEL>;
> > +	clock-names = "ethif";
> > +};
> > +
> > +&uart0 {
> > +	status = "disabled";
> > +};
> > +
> > +&uart1 {
> > +	status = "disabled";
> > +};
> > +
> > +&uart2 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart2_pins_b>;
> > +};
> > +
> > +&usb1 {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
> > +};
> > +
> > +&usb2 {
> > +	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
> > +};
> > diff --git a/arch/arm/boot/dts/mt7623n-rfb.dtsi b/arch/arm/boot/dts/mt7623n-rfb.dtsi
> > index 0237476..07ed15d 100644
> > --- a/arch/arm/boot/dts/mt7623n-rfb.dtsi
> > +++ b/arch/arm/boot/dts/mt7623n-rfb.dtsi
> > @@ -380,6 +380,14 @@
> >  		};
> >  	};
> >  
> > +	i2c2_pins_b: i2c2-alt {
> > +		pin-i2c2 {
> > +			pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
> > +				 <MT7623_PIN_123_HTPLG_FUNC_SCL2>;
> > +			bias-disable;
> > +		};
> > +	};
> > +
> >  	i2s0_pins_a: i2s0-default {
> >  		pin-i2s0 {
> >  			pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
> > @@ -629,6 +637,13 @@
> >  				 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
> >  		};
> >  	};
> > +
> > +	uart2_pins_b: uart2-alt {
> > +		pins-dat {
> > +			pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
> > +				 <MT7623_PIN_201_UTXD2_FUNC_UTXD2>;
> > +		};
> > +	};
> >  };
> >  
> >  &pwm {
> > -- 
> > 2.7.4
> >
Rob Herring (Arm) March 5, 2018, 2:10 p.m. UTC | #3
On Fri, Mar 2, 2018 at 8:15 PM, Sean Wang <sean.wang@mediatek.com> wrote:
> On Fri, 2018-03-02 at 09:45 -0600, Rob Herring wrote:
>> On Fri, Feb 23, 2018 at 06:16:38PM +0800, sean.wang@mediatek.com wrote:
>> > From: Sean Wang <sean.wang@mediatek.com>
>> >
>> > Add mt7623a-rfb.dtsi where most nodes can be inherited from
>> > mt7623n-rfb.dtsi and keep these distinctions from MT7623A boards in
>> > mt7623a-rfb.dtsi for most definition can be reused among MT7623A board
>> > variants.
>> >
>> > MT7623A has its specific definition of power domain and thus we need
>> > to change related devices such as audio, ethernet, crypto, high-speed
>> > DMA, NAND, and USB controller to the power domain they specifically
>> > belong to. In addition, MT7530 exists as built-in module inside MT7623A
>> > SoC and I2C2 and UART[0-1] get being removed and UART2 have distinct pin
>> > usage. Those all differences can be totally seen in mt7623a-rfb.dtsi.
>> >
>> > Signed-off-by: Sean Wang <sean.wang@mediatek.com>
>> > ---
>> >  arch/arm/boot/dts/Makefile             |  2 +
>> >  arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 22 +++++++++
>> >  arch/arm/boot/dts/mt7623a-rfb-nand.dts | 26 +++++++++++
>> >  arch/arm/boot/dts/mt7623a-rfb.dtsi     | 84 ++++++++++++++++++++++++++++++++++
>> >  arch/arm/boot/dts/mt7623n-rfb.dtsi     | 15 ++++++
>> >  5 files changed, 149 insertions(+)
>> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-emmc.dts
>> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-nand.dts
>> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb.dtsi
>> >
>> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> > index 5af6fce..818817c 100644
>> > --- a/arch/arm/boot/dts/Makefile
>> > +++ b/arch/arm/boot/dts/Makefile
>> > @@ -1122,6 +1122,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
>> >     mt6580-evbp1.dtb \
>> >     mt6589-aquaris5.dtb \
>> >     mt6592-evb.dtb \
>> > +   mt7623a-rfb-emmc.dtb \
>> > +   mt7623a-rfb-nand.dtb \
>> >     mt7623n-rfb-emmc.dtb \
>> >     mt7623n-rfb-nand.dtb \
>> >     mt7623n-bananapi-bpi-r2.dtb \
>> > diff --git a/arch/arm/boot/dts/mt7623a-rfb-emmc.dts b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
>> > new file mode 100644
>> > index 0000000..ef6398e
>> > --- /dev/null
>> > +++ b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
>> > @@ -0,0 +1,22 @@
>> > +// SPDX-License-Identifier: GPL-2.0
>> > +/*
>> > + * Copyright (c) 2017-2018 MediaTek Inc.
>> > + * Author: Sean Wang <sean.wang@mediatek.com>
>> > + *
>> > + */
>> > +
>> > +/dts-v1/;
>> > +#include "mt7623a-rfb.dtsi"
>> > +
>> > +/ {
>> > +   model = "MediaTek MT7623A with eMMC reference board";
>> > +   compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623";
>> > +
>> > +   chosen {
>> > +           bootargs = "console=ttyS0,115200n8 earlyprintk";
>>
>> Use stdout-path instead. earlyprintk option only works for a kernel
>> built with a debug uart at a fixed address, so drop it.
>>
>
> thanks, I will try and have stdout-path instead.
>
> But for earlyprintk, our kernel can support and be built with a debug
> uart at a fixed address and it is greatly useful to know what's going
> on when a system hang happens on certain device's initialization prior
> to uart initialization such as PCI device.

These days, you only need earlyprintk for *really* early console like
in the assembly boot entry code and before the DT is unflattened. For
anything else, use earlycon instead because earlycon is a runtime
option.

> Thus, I consider to keep it there in special on such kinds of
> development boards for debugging purpose.

Then add this option when you are doing debug. But for what's
"shipped" in mainline, you should not have this enabled.

Rob
Sean Wang March 5, 2018, 3:10 p.m. UTC | #4
On Mon, 2018-03-05 at 08:10 -0600, Rob Herring wrote:
> On Fri, Mar 2, 2018 at 8:15 PM, Sean Wang <sean.wang@mediatek.com> wrote:
> > On Fri, 2018-03-02 at 09:45 -0600, Rob Herring wrote:
> >> On Fri, Feb 23, 2018 at 06:16:38PM +0800, sean.wang@mediatek.com wrote:
> >> > From: Sean Wang <sean.wang@mediatek.com>
> >> >
> >> > Add mt7623a-rfb.dtsi where most nodes can be inherited from
> >> > mt7623n-rfb.dtsi and keep these distinctions from MT7623A boards in
> >> > mt7623a-rfb.dtsi for most definition can be reused among MT7623A board
> >> > variants.
> >> >
> >> > MT7623A has its specific definition of power domain and thus we need
> >> > to change related devices such as audio, ethernet, crypto, high-speed
> >> > DMA, NAND, and USB controller to the power domain they specifically
> >> > belong to. In addition, MT7530 exists as built-in module inside MT7623A
> >> > SoC and I2C2 and UART[0-1] get being removed and UART2 have distinct pin
> >> > usage. Those all differences can be totally seen in mt7623a-rfb.dtsi.
> >> >
> >> > Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> >> > ---
> >> >  arch/arm/boot/dts/Makefile             |  2 +
> >> >  arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 22 +++++++++
> >> >  arch/arm/boot/dts/mt7623a-rfb-nand.dts | 26 +++++++++++
> >> >  arch/arm/boot/dts/mt7623a-rfb.dtsi     | 84 ++++++++++++++++++++++++++++++++++
> >> >  arch/arm/boot/dts/mt7623n-rfb.dtsi     | 15 ++++++
> >> >  5 files changed, 149 insertions(+)
> >> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> >> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb-nand.dts
> >> >  create mode 100644 arch/arm/boot/dts/mt7623a-rfb.dtsi
> >> >
> >> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> >> > index 5af6fce..818817c 100644
> >> > --- a/arch/arm/boot/dts/Makefile
> >> > +++ b/arch/arm/boot/dts/Makefile
> >> > @@ -1122,6 +1122,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
> >> >     mt6580-evbp1.dtb \
> >> >     mt6589-aquaris5.dtb \
> >> >     mt6592-evb.dtb \
> >> > +   mt7623a-rfb-emmc.dtb \
> >> > +   mt7623a-rfb-nand.dtb \
> >> >     mt7623n-rfb-emmc.dtb \
> >> >     mt7623n-rfb-nand.dtb \
> >> >     mt7623n-bananapi-bpi-r2.dtb \
> >> > diff --git a/arch/arm/boot/dts/mt7623a-rfb-emmc.dts b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> >> > new file mode 100644
> >> > index 0000000..ef6398e
> >> > --- /dev/null
> >> > +++ b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
> >> > @@ -0,0 +1,22 @@
> >> > +// SPDX-License-Identifier: GPL-2.0
> >> > +/*
> >> > + * Copyright (c) 2017-2018 MediaTek Inc.
> >> > + * Author: Sean Wang <sean.wang@mediatek.com>
> >> > + *
> >> > + */
> >> > +
> >> > +/dts-v1/;
> >> > +#include "mt7623a-rfb.dtsi"
> >> > +
> >> > +/ {
> >> > +   model = "MediaTek MT7623A with eMMC reference board";
> >> > +   compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623";
> >> > +
> >> > +   chosen {
> >> > +           bootargs = "console=ttyS0,115200n8 earlyprintk";
> >>
> >> Use stdout-path instead. earlyprintk option only works for a kernel
> >> built with a debug uart at a fixed address, so drop it.
> >>
> >
> > thanks, I will try and have stdout-path instead.
> >
> > But for earlyprintk, our kernel can support and be built with a debug
> > uart at a fixed address and it is greatly useful to know what's going
> > on when a system hang happens on certain device's initialization prior
> > to uart initialization such as PCI device.
> 
> These days, you only need earlyprintk for *really* early console like
> in the assembly boot entry code and before the DT is unflattened. For
> anything else, use earlycon instead because earlycon is a runtime
> option.
> 
> > Thus, I consider to keep it there in special on such kinds of
> > development boards for debugging purpose.
> 
> Then add this option when you are doing debug. But for what's
> "shipped" in mainline, you should not have this enabled.
> 
> Rob

Okay, for these reasons, I will remove earlyprintk usage here
and try to use earlycon instead in the future.

Really thanks for your detailed explanation!

	Sean
> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5af6fce..818817c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1122,6 +1122,8 @@  dtb-$(CONFIG_ARCH_MEDIATEK) += \
 	mt6580-evbp1.dtb \
 	mt6589-aquaris5.dtb \
 	mt6592-evb.dtb \
+	mt7623a-rfb-emmc.dtb \
+	mt7623a-rfb-nand.dtb \
 	mt7623n-rfb-emmc.dtb \
 	mt7623n-rfb-nand.dtb \
 	mt7623n-bananapi-bpi-r2.dtb \
diff --git a/arch/arm/boot/dts/mt7623a-rfb-emmc.dts b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
new file mode 100644
index 0000000..ef6398e
--- /dev/null
+++ b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts
@@ -0,0 +1,22 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2017-2018 MediaTek Inc.
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+/dts-v1/;
+#include "mt7623a-rfb.dtsi"
+
+/ {
+	model = "MediaTek MT7623A with eMMC reference board";
+	compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623";
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+	};
+};
+
+&mmc0 {
+	status = "okay";
+};
diff --git a/arch/arm/boot/dts/mt7623a-rfb-nand.dts b/arch/arm/boot/dts/mt7623a-rfb-nand.dts
new file mode 100644
index 0000000..592d5d7
--- /dev/null
+++ b/arch/arm/boot/dts/mt7623a-rfb-nand.dts
@@ -0,0 +1,26 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2017-2018 MediaTek Inc.
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+/dts-v1/;
+#include "mt7623a-rfb.dtsi"
+
+/ {
+	model = "MediaTek MT7623A with NAND reference board";
+	compatible = "mediatek,mt7623a-rfb-nand", "mediatek,mt7623";
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+	};
+};
+
+&bch {
+	status = "okay";
+};
+
+&nandc {
+	status = "okay";
+};
diff --git a/arch/arm/boot/dts/mt7623a-rfb.dtsi b/arch/arm/boot/dts/mt7623a-rfb.dtsi
new file mode 100644
index 0000000..3a15c46
--- /dev/null
+++ b/arch/arm/boot/dts/mt7623a-rfb.dtsi
@@ -0,0 +1,84 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2017-2018 MediaTek Inc.
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+/dts-v1/;
+#include <dt-bindings/power/mt7623a-power.h>
+#include "mt7623n-rfb.dtsi"
+
+/ {
+	memory {
+		device_type = "memory";
+		reg = <0 0x80000000 0 0x20000000>;
+	};
+};
+
+&afe {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>;
+};
+
+&cir {
+	status = "disabled";
+};
+
+&crypto {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
+};
+
+&eth {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
+};
+
+&hsdma {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_ETH>;
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins_b>;
+};
+
+&mt7530 {
+	mediatek,mcm;
+	resets = <&ethsys MT2701_ETHSYS_MCM_RST>;
+	reset-names = "mcm";
+};
+
+&nandc {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>;
+};
+
+&pcie {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
+};
+
+&scpsys {
+	compatible = "mediatek,mt7623a-scpsys",
+		     "syscon";
+	clocks = <&topckgen CLK_TOP_ETHIF_SEL>;
+	clock-names = "ethif";
+};
+
+&uart0 {
+	status = "disabled";
+};
+
+&uart1 {
+	status = "disabled";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins_b>;
+};
+
+&usb1 {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
+};
+
+&usb2 {
+	power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>;
+};
diff --git a/arch/arm/boot/dts/mt7623n-rfb.dtsi b/arch/arm/boot/dts/mt7623n-rfb.dtsi
index 0237476..07ed15d 100644
--- a/arch/arm/boot/dts/mt7623n-rfb.dtsi
+++ b/arch/arm/boot/dts/mt7623n-rfb.dtsi
@@ -380,6 +380,14 @@ 
 		};
 	};
 
+	i2c2_pins_b: i2c2-alt {
+		pin-i2c2 {
+			pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
+				 <MT7623_PIN_123_HTPLG_FUNC_SCL2>;
+			bias-disable;
+		};
+	};
+
 	i2s0_pins_a: i2s0-default {
 		pin-i2s0 {
 			pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
@@ -629,6 +637,13 @@ 
 				 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
 		};
 	};
+
+	uart2_pins_b: uart2-alt {
+		pins-dat {
+			pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
+				 <MT7623_PIN_201_UTXD2_FUNC_UTXD2>;
+		};
+	};
 };
 
 &pwm {