// SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2021 BayLibre, SAS. * Author: Fabien Parent */ /dts-v1/; #include #include #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@50000000 { 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"; }; }; thermistor { compatible = "murata,ncp03wf104"; pullup-uv = <1800000>; pullup-ohm = <390000>; pulldown-ohm = <0>; io-channels = <&auxadc 0>; }; connector { compatible = "hdmi-connector"; label = "hdmi"; type = "d"; port { hdmi_connector_in: endpoint { remote-endpoint = <&hdmi_connector_out>; }; }; }; }; &auxadc { status = "okay"; }; &gpu { mali-supply = <&mt6358_vgpu_reg>; }; &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>; #address-cells = <1>; #size-cells = <0>; it66121hdmitx: hdmitx@4c { compatible = "ite,it66121"; reg = <0x4c>; pinctrl-names = "default"; pinctrl-0 = <&ite_pins>; reset-gpios = <&pio 160 GPIO_ACTIVE_LOW>; interrupt-parent = <&pio>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>; vcn33-supply = <&mt6358_vcn33_reg>; vcn18-supply = <&mt6358_vcn18_reg>; vrf12-supply = <&mt6358_vrf12_reg>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; it66121_in: endpoint { bus-width = <12>; remote-endpoint = <&dpi_out>; }; }; port@1 { reg = <1>; hdmi_connector_out: endpoint { remote-endpoint = <&hdmi_connector_in>; }; }; }; }; }; &keyboard { pinctrl-names = "default"; pinctrl-0 = <&keyboard_pins>; status = "okay"; linux,keymap = ; keypad,num-rows = <2>; keypad,num-columns = <1>; debounce-delay-ms = <32>; mediatek,keys-per-group = <2>; }; &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; wakeup-source; non-removable; }; &mt6358_vgpu_reg { regulator-min-microvolt = <625000>; regulator-max-microvolt = <900000>; regulator-coupled-with = <&mt6358_vsram_gpu_reg>; regulator-coupled-max-spread = <100000>; }; &mt6358_vsram_gpu_reg { regulator-min-microvolt = <850000>; regulator-max-microvolt = <1000000>; regulator-coupled-with = <&mt6358_vgpu_reg>; regulator-coupled-max-spread = <100000>; }; &pio { i2c_pins_0: i2c0 { pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; i2c_pins_1: i2c1 { pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; i2c_pins_2: i2c2 { pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; i2c_pins_3: i2c3 { pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; i2c_pins_4: i2c4 { pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; i2c_pins_5: i2c5 { pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; i2c6_pins: i2c6 { pins_cmd_dat { pinmux = , ; mediatek,pull-up-adv = <3>; }; }; keyboard_pins: keyboard { pins_keyboard { pinmux = , , ; }; }; mmc0_pins_default: mmc0-pins-default { pins_cmd_dat { pinmux = , , , , , , , , ; input-enable; drive-strength = ; mediatek,pull-up-adv = <01>; }; pins_clk { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; }; pins_rst { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <01>; }; }; mmc0_pins_uhs: mmc0-pins-uhs { pins_cmd_dat { pinmux = , , , , , , , , ; input-enable; drive-strength = ; mediatek,pull-up-adv = <01>; }; pins_clk { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; }; pins_ds { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; }; pins_rst { pinmux = ; drive-strength = ; mediatek,pull-up-adv = <01>; }; }; mmc1_pins_default: mmc1-pins-default { pins_cmd_dat { pinmux = , , , , ; input-enable; mediatek,pull-up-adv = <10>; }; pins_clk { pinmux = ; input-enable; mediatek,pull-down-adv = <10>; }; pins_pmu { pinmux = ; output-high; }; }; mmc1_pins_uhs: mmc1-pins-uhs { pins_cmd_dat { pinmux = , , , , ; drive-strength = <6>; input-enable; mediatek,pull-up-adv = <10>; }; pins_clk { pinmux = ; drive-strength = <8>; mediatek,pull-down-adv = <10>; input-enable; }; }; ite_pins: ite-pins { pins-irq { pinmux = ; input-enable; bias-pull-up; }; pins-rst { pinmux = ; output-high; }; }; dpi_func_pins: dpi-func-pins { pins-dpi { pinmux = , , , , , , , , , , , , , , , , , , ; }; }; dpi_idle_pins: dpi-idle-pins { pins-idle { pinmux = , , , , , , , , , , , , , , , , , , ; }; }; }; &pmic { interrupts-extended = <&pio 182 IRQ_TYPE_LEVEL_HIGH>; }; &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"; }; &dpi0 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&dpi_func_pins>; pinctrl-1 = <&dpi_idle_pins>; status = "okay"; port { dpi_out: endpoint { remote-endpoint = <&it66121_in>; }; }; };