arm64: dts: mt8183: add mt8183 pumpkin board
authorFabien Parent <fparent@baylibre.com>
Wed, 17 Feb 2021 20:59:44 +0000 (21:59 +0100)
committerMatthias Brugger <matthias.bgg@gmail.com>
Thu, 1 Apr 2021 09:31:14 +0000 (11:31 +0200)
The MT8183 Pumpkin board is manufactured by OLogic and includes
a MediaTek MT8183 SoC with 2GB of RAM.

The board provides the following IOs:
* 2 USB Type-A ports
* Ethernet
* Serial UART over micro-USB port
* 1 USB Type-C dual role port
* 1 USB Type-C power only port
* 1 Jack for audio
* RPI compatible header
* MT7668 wiresless chip with Wi-Fi AC and BT 5
* Micro-HDMI port
* 2 connectors for CSI cameras
* 1 connector for DSI display
* 1 JTAG port

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Link: https://lore.kernel.org/r/20210217205945.830006-2-fparent@baylibre.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
arch/arm64/boot/dts/mediatek/Makefile
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts [new file with mode: 0644]

index 291087dccaa895395b49f57d9d5220a0adeca878..a1c50adc98fa71b50cd79fbe1eb52be43720a93c 100644 (file)
@@ -22,5 +22,6 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku288.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku32.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku0.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-pumpkin.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts b/arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts
new file mode 100644 (file)
index 0000000..eb6e595
--- /dev/null
@@ -0,0 +1,378 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2021 BayLibre, SAS.
+ * Author: Fabien Parent <fparent@baylibre.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "mt8183.dtsi"
+#include "mt6358.dtsi"
+
+/ {
+       model = "Pumpkin MT8183";
+       compatible = "mediatek,mt8183-pumpkin", "mediatek,mt8183";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               scp_mem_reserved: scp_mem_region {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x50000000 0 0x2900000>;
+                       no-map;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-red {
+                       label = "red";
+                       gpios = <&pio 155 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               led-green {
+                       label = "green";
+                       gpios = <&pio 156 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       ntc@0 {
+               compatible = "murata,ncp03wf104";
+               pullup-uv = <1800000>;
+               pullup-ohm = <390000>;
+               pulldown-ohm = <0>;
+               io-channels = <&auxadc 0>;
+       };
+};
+
+&auxadc {
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins_0>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins_1>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins_2>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins_3>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins_4>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins_5>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6_pins>;
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&mmc0 {
+       status = "okay";
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_pins_default>;
+       pinctrl-1 = <&mmc0_pins_uhs>;
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       cap-mmc-hw-reset;
+       no-sdio;
+       no-sd;
+       hs400-ds-delay = <0x12814>;
+       vmmc-supply = <&mt6358_vemc_reg>;
+       vqmmc-supply = <&mt6358_vio18_reg>;
+       assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>;
+       assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_CK>;
+       non-removable;
+};
+
+&mmc1 {
+       status = "okay";
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_uhs>;
+       bus-width = <4>;
+       max-frequency = <200000000>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       cap-sdio-irq;
+       no-mmc;
+       no-sd;
+       vmmc-supply = <&mt6358_vmch_reg>;
+       vqmmc-supply = <&mt6358_vmc_reg>;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
+       non-removable;
+};
+
+&pio {
+       i2c_pins_0: i2c0 {
+               pins_i2c{
+                       pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
+                                <PINMUX_GPIO83__FUNC_SCL0>;
+                       mediatek,pull-up-adv = <3>;
+                       mediatek,drive-strength-adv = <00>;
+               };
+       };
+
+       i2c_pins_1: i2c1 {
+               pins_i2c{
+                       pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
+                                <PINMUX_GPIO84__FUNC_SCL1>;
+                       mediatek,pull-up-adv = <3>;
+                       mediatek,drive-strength-adv = <00>;
+               };
+       };
+
+       i2c_pins_2: i2c2 {
+               pins_i2c{
+                       pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
+                                <PINMUX_GPIO104__FUNC_SDA2>;
+                       mediatek,pull-up-adv = <3>;
+                       mediatek,drive-strength-adv = <00>;
+               };
+       };
+
+       i2c_pins_3: i2c3 {
+               pins_i2c{
+                       pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
+                                <PINMUX_GPIO51__FUNC_SDA3>;
+                       mediatek,pull-up-adv = <3>;
+                       mediatek,drive-strength-adv = <00>;
+               };
+       };
+
+       i2c_pins_4: i2c4 {
+               pins_i2c{
+                       pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
+                                <PINMUX_GPIO106__FUNC_SDA4>;
+                       mediatek,pull-up-adv = <3>;
+                       mediatek,drive-strength-adv = <00>;
+               };
+       };
+
+       i2c_pins_5: i2c5 {
+               pins_i2c{
+                       pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
+                                <PINMUX_GPIO49__FUNC_SDA5>;
+                       mediatek,pull-up-adv = <3>;
+                       mediatek,drive-strength-adv = <00>;
+               };
+       };
+
+       i2c6_pins: i2c6 {
+               pins_cmd_dat {
+                       pinmux = <PINMUX_GPIO113__FUNC_SCL6>,
+                                <PINMUX_GPIO114__FUNC_SDA6>;
+                       mediatek,pull-up-adv = <3>;
+               };
+       };
+
+       mmc0_pins_default: mmc0-pins-default {
+               pins_cmd_dat {
+                       pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-up-adv = <01>;
+               };
+
+               pins_clk {
+                       pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-down-adv = <10>;
+               };
+
+               pins_rst {
+                       pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-down-adv = <01>;
+               };
+       };
+
+       mmc0_pins_uhs: mmc0-pins-uhs {
+               pins_cmd_dat {
+                       pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-up-adv = <01>;
+               };
+
+               pins_clk {
+                       pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-down-adv = <10>;
+               };
+
+               pins_ds {
+                       pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-down-adv = <10>;
+               };
+
+               pins_rst {
+                       pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
+                       drive-strength = <MTK_DRIVE_14mA>;
+                       mediatek,pull-up-adv = <01>;
+               };
+       };
+
+       mmc1_pins_default: mmc1-pins-default {
+               pins_cmd_dat {
+                       pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
+                       input-enable;
+                       mediatek,pull-up-adv = <10>;
+               };
+
+               pins_clk {
+                       pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
+                       input-enable;
+                       mediatek,pull-down-adv = <10>;
+               };
+
+               pins_pmu {
+                       pinmux = <PINMUX_GPIO178__FUNC_GPIO178>;
+                       output-high;
+               };
+       };
+
+       mmc1_pins_uhs: mmc1-pins-uhs {
+               pins_cmd_dat {
+                       pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
+                       drive-strength = <MTK_DRIVE_6mA>;
+                       input-enable;
+                       mediatek,pull-up-adv = <10>;
+               };
+
+               pins_clk {
+                       pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       mediatek,pull-down-adv = <10>;
+                       input-enable;
+               };
+       };
+};
+
+&mfg {
+       domain-supply = <&mt6358_vgpu_reg>;
+};
+
+&cpu0 {
+       proc-supply = <&mt6358_vproc12_reg>;
+};
+
+&cpu1 {
+       proc-supply = <&mt6358_vproc12_reg>;
+};
+
+&cpu2 {
+       proc-supply = <&mt6358_vproc12_reg>;
+};
+
+&cpu3 {
+       proc-supply = <&mt6358_vproc12_reg>;
+};
+
+&cpu4 {
+       proc-supply = <&mt6358_vproc11_reg>;
+};
+
+&cpu5 {
+       proc-supply = <&mt6358_vproc11_reg>;
+};
+
+&cpu6 {
+       proc-supply = <&mt6358_vproc11_reg>;
+};
+
+&cpu7 {
+       proc-supply = <&mt6358_vproc11_reg>;
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&scp {
+       status = "okay";
+};
+
+&dsi0 {
+       status = "disabled";
+};