Re: [PATCH v3 2/2] arm64: dts: mediatek: add pumpkin board dts

From: Matthias Brugger
Date: Sat Feb 29 2020 - 18:35:58 EST




On 29/02/2020 18:04, Fabien Parent wrote:
> The pumpkin board is made by Gossamer Engineering and is using
> a MediaTek SoC. The board currently comes in two available version:
> MT8516 SoC and MT8167 SoC.
> The board provides the following IOs: eMMC, NAND, SD card, USB type-A,
> Ethernet, Wi-Fi, Bluetooth, Audio (jack out, 2 PDM port, 1 analog in),
> serial over USB, and an expansion header.
>
> Additionally there is a HDMI port, DSI port, and camera port only
> on the MT8167 version of the board.
>
> The board can be powered by battery and/or via a USB Type-C port and
> is using a PMIC MT6392.
>
> The eMMC and NAND are sharing pins and cannot be used together.
>
> This commit is adding the basic boot support for the Pumpkin MT8516
> board on the eMMC.
>
> Signed-off-by: Fabien Parent <fparent@xxxxxxxxxxxx>

pushed to v5.6-next/dts64

Thanks!

> ---
>
> V3:
> * Fix warnings from dtbs_check and checkpatch.pl
> * Add FW optee nodes
> * Add usb0 and usb0_phy nodes
>
> V2:
> * Remove dependency on PMIC MT6392 to make it easier to merge the DTS
> until the PMIC code is merged.
> * Rename a bunch of label to make them more straighforward
> * Use names for keycode instead of magic values
> * Add chosen for serial port
>
> ---
> arch/arm64/boot/dts/mediatek/Makefile | 1 +
> .../boot/dts/mediatek/mt8516-pumpkin.dts | 20 ++
> .../boot/dts/mediatek/pumpkin-common.dtsi | 221 ++++++++++++++++++
> 3 files changed, 242 insertions(+)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt8516-pumpkin.dts
> create mode 100644 arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
>
> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
> index 458bbc422a94..2f8967cb8717 100644
> --- a/arch/arm64/boot/dts/mediatek/Makefile
> +++ b/arch/arm64/boot/dts/mediatek/Makefile
> @@ -8,3 +8,4 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-evb.dtb
> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
> diff --git a/arch/arm64/boot/dts/mediatek/mt8516-pumpkin.dts b/arch/arm64/boot/dts/mediatek/mt8516-pumpkin.dts
> new file mode 100644
> index 000000000000..cce642c53812
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8516-pumpkin.dts
> @@ -0,0 +1,20 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2019 BayLibre, SAS.
> + * Author: Fabien Parent <fparent@xxxxxxxxxxxx>
> + */
> +
> +/dts-v1/;
> +
> +#include "mt8516.dtsi"
> +#include "pumpkin-common.dtsi"
> +
> +/ {
> + model = "Pumpkin MT8516";
> + compatible = "mediatek,mt8516";
> +
> + memory@40000000 {
> + device_type = "memory";
> + reg = <0 0x40000000 0 0x40000000>;
> + };
> +};
> diff --git a/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
> new file mode 100644
> index 000000000000..a31093d7142b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
> @@ -0,0 +1,221 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2019 BayLibre, SAS.
> + * Author: Fabien Parent <fparent@xxxxxxxxxxxx>
> + */
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +/ {
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0:921600n8";
> + };
> +
> + firmware {
> + optee: optee@4fd00000 {
> + compatible = "linaro,optee-tz";
> + method = "smc";
> + };
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + input-name = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&gpio_keys_default>;
> +
> + volume-up {
> + gpios = <&pio 42 GPIO_ACTIVE_LOW>;
> + label = "volume_up";
> + linux,code = <115>;
> + wakeup-source;
> + debounce-interval = <15>;
> + };
> +
> + volume-down {
> + gpios = <&pio 43 GPIO_ACTIVE_LOW>;
> + label = "volume_down";
> + linux,code = <114>;
> + wakeup-source;
> + debounce-interval = <15>;
> + };
> + };
> +};
> +
> +&i2c0 {
> + clock-div = <2>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c0_pins_a>;
> + status = "okay";
> +
> + tca6416: gpio@20 {
> + compatible = "ti,tca6416";
> + reg = <0x20>;
> + rst-gpio = <&pio 65 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&tca6416_pins>;
> +
> + gpio-controller;
> + #gpio-cells = <2>;
> +
> + eint20_mux_sel0 {
> + gpio-hog;
> + gpios = <0 0>;
> + input;
> + line-name = "eint20_mux_sel0";
> + };
> +
> + expcon_mux_sel1 {
> + gpio-hog;
> + gpios = <1 0>;
> + input;
> + line-name = "expcon_mux_sel1";
> + };
> +
> + mrg_di_mux_sel2 {
> + gpio-hog;
> + gpios = <2 0>;
> + input;
> + line-name = "mrg_di_mux_sel2";
> + };
> +
> + sd_sdio_mux_sel3 {
> + gpio-hog;
> + gpios = <3 0>;
> + input;
> + line-name = "sd_sdio_mux_sel3";
> + };
> +
> + sd_sdio_mux_ctrl7 {
> + gpio-hog;
> + gpios = <7 0>;
> + output-low;
> + line-name = "sd_sdio_mux_ctrl7";
> + };
> +
> + hw_id0 {
> + gpio-hog;
> + gpios = <8 0>;
> + input;
> + line-name = "hw_id0";
> + };
> +
> + hw_id1 {
> + gpio-hog;
> + gpios = <9 0>;
> + input;
> + line-name = "hw_id1";
> + };
> +
> + hw_id2 {
> + gpio-hog;
> + gpios = <10 0>;
> + input;
> + line-name = "hw_id2";
> + };
> +
> + fg_int_n {
> + gpio-hog;
> + gpios = <11 0>;
> + input;
> + line-name = "fg_int_n";
> + };
> +
> + usba_pwr_en {
> + gpio-hog;
> + gpios = <12 0>;
> + output-high;
> + line-name = "usba_pwr_en";
> + };
> +
> + wifi_3v3_pg {
> + gpio-hog;
> + gpios = <13 0>;
> + input;
> + line-name = "wifi_3v3_pg";
> + };
> +
> + cam_rst {
> + gpio-hog;
> + gpios = <14 0>;
> + output-low;
> + line-name = "cam_rst";
> + };
> +
> + cam_pwdn {
> + gpio-hog;
> + gpios = <15 0>;
> + output-low;
> + line-name = "cam_pwdn";
> + };
> + };
> +};
> +
> +&i2c2 {
> + clock-div = <2>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_pins_a>;
> + status = "okay";
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
> +
> +&usb0 {
> + status = "okay";
> + dr_mode = "peripheral";
> +
> + usb_con: connector {
> + compatible = "usb-c-connector";
> + label = "USB-C";
> + };
> +};
> +
> +&usb0_phy {
> + status = "okay";
> +};
> +
> +&pio {
> + gpio_keys_default: gpiodefault {
> + pins_cmd_dat {
> + pinmux = <MT8516_PIN_42_KPCOL0__FUNC_GPIO42>,
> + <MT8516_PIN_43_KPCOL1__FUNC_GPIO43>;
> + bias-pull-up;
> + input-enable;
> + };
> + };
> +
> + i2c0_pins_a: i2c0@0 {
> + pins1 {
> + pinmux = <MT8516_PIN_58_SDA0__FUNC_SDA0_0>,
> + <MT8516_PIN_59_SCL0__FUNC_SCL0_0>;
> + bias-disable;
> + };
> + };
> +
> + i2c2_pins_a: i2c2@0 {
> + pins1 {
> + pinmux = <MT8516_PIN_60_SDA2__FUNC_SDA2_0>,
> + <MT8516_PIN_61_SCL2__FUNC_SCL2_0>;
> + bias-disable;
> + };
> + };
> +
> + tca6416_pins: pinmux_tca6416_pins {
> + gpio_mux_rst_n_pin {
> + pinmux = <MT8516_PIN_65_UTXD1__FUNC_GPIO65>;
> + output-high;
> + };
> +
> + gpio_mux_int_n_pin {
> + pinmux = <MT8516_PIN_64_URXD1__FUNC_GPIO64>;
> + input-enable;
> + bias-pull-up;
> + };
> + };
> +};
>