Commit 5bfea833 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'v6.4-next-dts64' of...

Merge tag 'v6.4-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into soc/dt

MT6795:
- add GCE, MMSYS, IOMMU and PMIC wrapper nodes
- Enable PMIC combo, eMMC and SDIO support to the Sony Xperia M5

MT7622:
- add SPI-NAND chip and interrupt support for switch node to the
  BPI-R64

MT7986:
- add PWM, thermal, efuse, auxadc and thermal zone nodes
- BPI-R3 enable WiFi leds and enable PWM
- BPI-R3 reserve more space on NOR and NOR flash to be able to store bl2
  uncompressed
- BPI-R3 add PWM fan for cpu cooling

MT8173:
- fine tune the regulator of the eDP pannel
- use EDID for eDP panel instead of hard coded type

MT8183:
- add quirk for GIC problem for Kukui based boards to make "pseudo NMIs"
  work
- provide fimrware name to SCP

MT8186:
- add USB, SPMI, ADSP, Global Command Engine (GCE) nodes
- add nodes to enable display support
- add cache coherent interconnect
- add dynamic voltage scaling for CPU and GPU

MT8192:
- enable Bluetooth on the Hayato board
- add quirk for GIC problem for Kukui based boards to make "pseudo NMIs"
  work
- add cpufreq node and video decoder
- add dma-ranges needed by the IOMMU rework
- Fine tune capacity-dmips-mhz

MT8195:
- add thermal zones and video decoder
- enable PCI ports on cherry (e.g. Acer Chromebook Spin 513 CP513-2H) to
  enable WiFi and Bluetooth combo.
- add quirk for GIC problem for Kukui based boards to make "pseudo NMIs"
  work

MT8365:
- add watchdog, PMIC, MMC, USB OTG, ethernet nodes
- add Operation Performance Points
- PSCI node and CPU idle support

Several SoCs:
- advertise L2 and L3 cache as unified
- add chasss-type

* tag 'v6.4-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: (51 commits)
  arm64: dts: mt7986: increase bl2 partition on NAND of Bananapi R3
  arm64: dts: mediatek: mt8186: Wire up GPU voltage/frequency scaling
  arm64: dts: mediatek: mt8186: Add GPU speed bin NVMEM cells
  arm64: dts: mediatek: mt8186: Wire up CPU frequency/voltage scaling
  arm64: dts: mediatek: mt8186: Add CCI node and CCI OPP table
  arm64: dts: mt7986: add pwm-fan and cooling-maps to BPI-R3 dts
  arm64: dts: mt7986: add thermal-zones
  arm64: dts: mt7986: add thermal and efuse
  arm64: dts: mediatek: mt8192: Fix CPUs capacity-dmips-mhz
  arm64: dts: mediatek: mt8192: Add missing dma-ranges to soc node
  arm64: dts: mediatek: mt8183: kukui: Add scp firmware-name
  arm64: dts: mt8195: Add video decoder node
  arm64: dts: mt8192: Add video-codec nodes
  arm64: dts: mediatek: Add cpufreq nodes for MT8192
  arm64: dts: mediatek: mt8173-elm: remove panel model number in DT
  arm64: dts: mt7986: use size of reserved partition for bl2
  arm64: dts: mt8173: Power on panel regulator on boot
  arm64: dts: mt7986: set Wifi Leds low-active for BPI-R3
  arm64: dts: mt7986: add PWM to BPI-R3
  arm64: dts: mt7986: add PWM
  ...

Link: https://lore.kernel.org/r/27843c96-142e-930e-33b2-b634182e7cfa@gmail.comSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents ce207be3 3bfbff9b
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
/ { / {
model = "MediaTek MT2712 evaluation board"; model = "MediaTek MT2712 evaluation board";
chassis-type = "embedded";
compatible = "mediatek,mt2712-evb", "mediatek,mt2712"; compatible = "mediatek,mt2712-evb", "mediatek,mt2712";
aliases { aliases {
......
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright (c) 2023 Collabora Ltd.
* Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
*/
#include <dt-bindings/input/input.h>
&pwrap {
pmic: mt6331 {
compatible = "mediatek,mt6331";
interrupt-controller;
#interrupt-cells = <2>;
mt6331regulator: mt6331regulator {
compatible = "mediatek,mt6331-regulator";
mt6331_vdvfs11_reg: buck-vdvfs11 {
regulator-name = "vdvfs11";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6331_vdvfs12_reg: buck-vdvfs12 {
regulator-name = "vdvfs12";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6331_vdvfs13_reg: buck-vdvfs13 {
regulator-name = "vdvfs13";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6331_vdvfs14_reg: buck-vdvfs14 {
regulator-name = "vdvfs14";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6331_vcore2_reg: buck-vcore2 {
regulator-name = "vcore2";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6331_vio18_reg: buck-vio18 {
regulator-name = "vio18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6331_vtcxo1_reg: ldo-vtcxo1 {
regulator-name = "vtcxo1";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vtcxo2_reg: ldo-vtcxo2 {
regulator-name = "vtcxo2";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_avdd32_aud_reg: ldo-avdd32aud {
regulator-name = "avdd32_aud";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3200000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vauxa32_reg: ldo-vauxa32 {
regulator-name = "vauxa32";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3200000>;
regulator-ramp-delay = <0>;
};
mt6331_vcama_reg: ldo-vcama {
regulator-name = "vcama";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2800000>;
regulator-ramp-delay = <0>;
};
mt6331_vio28_reg: ldo-vio28 {
regulator-name = "vio28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vcamaf_reg: ldo-vcamaf {
regulator-name = "vcam_af";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
};
mt6331_vmc_reg: ldo-vmc {
regulator-name = "vmc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
};
mt6331_vmch_reg: ldo-vmch {
regulator-name = "vmch";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
};
mt6331_vemc33_reg: ldo-vemc33 {
regulator-name = "vemc33";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vgp1_reg: ldo-vgp1 {
regulator-name = "vgp1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vsim1_reg: ldo-vsim1 {
regulator-name = "vsim1";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vsim2_reg: ldo-vsim2 {
regulator-name = "vsim2";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
regulator-ramp-delay = <0>;
};
mt6331_vmipi_reg: ldo-vmipi {
regulator-name = "vmipi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vibr_reg: ldo-vibr {
regulator-name = "vibr";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
};
mt6331_vgp4_reg: ldo-vgp4 {
regulator-name = "vgp4";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <2200000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vcamd_reg: ldo-vcamd {
regulator-name = "vcamd";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1500000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vusb10_reg: ldo-vusb10 {
regulator-name = "vusb";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1300000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vcamio_reg: ldo-vcamio {
regulator-name = "vcam_io";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <0>;
};
mt6331_vsram_reg: ldo-vsram {
regulator-name = "vsram";
regulator-min-microvolt = <1012500>;
regulator-max-microvolt = <1012500>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vgp2_reg: ldo-vgp2 {
regulator-name = "vgp2";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1500000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vgp3_reg: ldo-vgp3 {
regulator-name = "vgp3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vrtc_reg: ldo-vrtc {
regulator-name = "vrtc";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
mt6331_vdig18_reg: ldo-vdig18 {
regulator-name = "dvdd18_dig";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
};
};
mt6331rtc: mt6331rtc {
compatible = "mediatek,mt6331-rtc";
};
mt6331keys: mt6331keys {
compatible = "mediatek,mt6331-keys";
power {
linux,keycodes = <KEY_POWER>;
wakeup-source;
};
home {
linux,keycodes = <KEY_HOME>;
};
};
};
};
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "MediaTek MT6755 EVB"; model = "MediaTek MT6755 EVB";
chassis-type = "embedded";
compatible = "mediatek,mt6755-evb", "mediatek,mt6755"; compatible = "mediatek,mt6755-evb", "mediatek,mt6755";
aliases { aliases {
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
/ { / {
model = "MediaTek MT6779 EVB"; model = "MediaTek MT6779 EVB";
chassis-type = "embedded";
compatible = "mediatek,mt6779-evb", "mediatek,mt6779"; compatible = "mediatek,mt6779-evb", "mediatek,mt6779";
aliases { aliases {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "MediaTek MT6795 Evaluation Board"; model = "MediaTek MT6795 Evaluation Board";
chassis-type = "embedded";
compatible = "mediatek,mt6795-evb", "mediatek,mt6795"; compatible = "mediatek,mt6795-evb", "mediatek,mt6795";
aliases { aliases {
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
/dts-v1/; /dts-v1/;
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include "mt6795.dtsi" #include "mt6795.dtsi"
#include "mt6331.dtsi"
/ { / {
model = "Sony Xperia M5"; model = "Sony Xperia M5";
...@@ -16,6 +17,7 @@ / { ...@@ -16,6 +17,7 @@ / {
aliases { aliases {
mmc0 = &mmc0; mmc0 = &mmc0;
mmc1 = &mmc1; mmc1 = &mmc1;
mmc2 = &mmc2;
serial0 = &uart0; serial0 = &uart0;
serial1 = &uart1; serial1 = &uart1;
}; };
...@@ -132,7 +134,97 @@ proximity@48 { ...@@ -132,7 +134,97 @@ proximity@48 {
}; };
}; };
&mmc0 {
/* eMMC controller */
mediatek,latch-ck = <0x14>; /* hs400 */
mediatek,hs200-cmd-int-delay = <1>;
mediatek,hs400-cmd-int-delay = <1>;
mediatek,hs400-ds-dly3 = <0x1a>;
non-removable;
pinctrl-names = "default", "state_uhs";
pinctrl-0 = <&mmc0_pins_default>;
pinctrl-1 = <&mmc0_pins_uhs>;
vmmc-supply = <&mt6331_vemc33_reg>;
vqmmc-supply = <&mt6331_vio18_reg>;
status = "okay";
};
&mmc1 {
/* MicroSD card slot */
vmmc-supply = <&mt6331_vmc_reg>;
vqmmc-supply = <&mt6331_vmch_reg>;
status = "okay";
};
&mmc2 {
/* SDIO WiFi on MMC2 */
vmmc-supply = <&mt6331_vmc_reg>;
vqmmc-supply = <&mt6331_vmch_reg>;
status = "okay";
};
&pio { &pio {
mmc0_pins_default: emmc-sdr-pins {
pins-cmd-dat {
pinmux = <PINMUX_GPIO154__FUNC_MSDC0_DAT0>,
<PINMUX_GPIO155__FUNC_MSDC0_DAT1>,
<PINMUX_GPIO156__FUNC_MSDC0_DAT2>,
<PINMUX_GPIO157__FUNC_MSDC0_DAT3>,
<PINMUX_GPIO158__FUNC_MSDC0_DAT4>,
<PINMUX_GPIO159__FUNC_MSDC0_DAT5>,
<PINMUX_GPIO160__FUNC_MSDC0_DAT6>,
<PINMUX_GPIO161__FUNC_MSDC0_DAT7>,
<PINMUX_GPIO162__FUNC_MSDC0_CMD>;
input-enable;
bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
};
pins-clk {
pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
pins-rst {
pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>;
bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
};
};
mmc0_pins_uhs: emmc-uhs-pins {
pins-cmd-dat {
pinmux = <PINMUX_GPIO154__FUNC_MSDC0_DAT0>,
<PINMUX_GPIO155__FUNC_MSDC0_DAT1>,
<PINMUX_GPIO156__FUNC_MSDC0_DAT2>,
<PINMUX_GPIO157__FUNC_MSDC0_DAT3>,
<PINMUX_GPIO158__FUNC_MSDC0_DAT4>,
<PINMUX_GPIO159__FUNC_MSDC0_DAT5>,
<PINMUX_GPIO160__FUNC_MSDC0_DAT6>,
<PINMUX_GPIO161__FUNC_MSDC0_DAT7>,
<PINMUX_GPIO162__FUNC_MSDC0_CMD>;
input-enable;
drive-strength = <MTK_DRIVE_6mA>;
bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
};
pins-clk {
pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>;
drive-strength = <MTK_DRIVE_6mA>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
pins-rst {
pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>;
drive-strength = <MTK_DRIVE_6mA>;
bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
};
pins-ds {
pinmux = <PINMUX_GPIO164__FUNC_MSDC0_DSL>;
drive-strength = <MTK_DRIVE_6mA>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
};
nfc_pins: nfc-pins { nfc_pins: nfc-pins {
pins-irq { pins-irq {
pinmux = <PINMUX_GPIO3__FUNC_GPIO3>; pinmux = <PINMUX_GPIO3__FUNC_GPIO3>;
...@@ -239,6 +331,15 @@ pins-tx { ...@@ -239,6 +331,15 @@ pins-tx {
}; };
}; };
&pmic {
/*
* Smartphones, including the Xperia M5, are equipped with a companion
* MT6332 PMIC: when this is present, the main MT6331 PMIC will fire
* an interrupt on the companion, so we use the MT6332 IRQ GPIO.
*/
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
};
&uart0 { &uart0 {
status = "okay"; status = "okay";
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/mediatek,mt6795-clk.h> #include <dt-bindings/clock/mediatek,mt6795-clk.h>
#include <dt-bindings/gce/mediatek,mt6795-gce.h>
#include <dt-bindings/memory/mt6795-larb-port.h>
#include <dt-bindings/pinctrl/mt6795-pinfunc.h> #include <dt-bindings/pinctrl/mt6795-pinfunc.h>
#include <dt-bindings/power/mt6795-power.h> #include <dt-bindings/power/mt6795-power.h>
#include <dt-bindings/reset/mediatek,mt6795-resets.h> #include <dt-bindings/reset/mediatek,mt6795-resets.h>
...@@ -372,6 +374,17 @@ timer: timer@10008000 { ...@@ -372,6 +374,17 @@ timer: timer@10008000 {
clocks = <&system_clk>, <&clk32k>; clocks = <&system_clk>, <&clk32k>;
}; };
pwrap: pwrap@1000d000 {
compatible = "mediatek,mt6795-pwrap";
reg = <0 0x1000d000 0 0x1000>;
reg-names = "pwrap";
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
resets = <&infracfg MT6795_INFRA_RST0_PMIC_WRAP_RST>;
reset-names = "pwrap";
clocks = <&topckgen CLK_TOP_PMICSPI_SEL>, <&clk26m>;
clock-names = "spi", "wrap";
};
sysirq: intpol-controller@10200620 { sysirq: intpol-controller@10200620 {
compatible = "mediatek,mt6795-sysirq", compatible = "mediatek,mt6795-sysirq",
"mediatek,mt6577-sysirq"; "mediatek,mt6577-sysirq";
...@@ -389,6 +402,17 @@ systimer: timer@10200670 { ...@@ -389,6 +402,17 @@ systimer: timer@10200670 {
clock-names = "clk13m"; clock-names = "clk13m";
}; };
iommu: iommu@10205000 {
compatible = "mediatek,mt6795-m4u";
reg = <0 0x10205000 0 0x1000>;
clocks = <&infracfg CLK_INFRA_M4U>;
clock-names = "bclk";
interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_LOW>;
mediatek,larbs = <&larb0 &larb1 &larb2 &larb3>;
power-domains = <&spm MT6795_POWER_DOMAIN_MM>;
#iommu-cells = <1>;
};
apmixedsys: syscon@10209000 { apmixedsys: syscon@10209000 {
compatible = "mediatek,mt6795-apmixedsys", "syscon"; compatible = "mediatek,mt6795-apmixedsys", "syscon";
reg = <0 0x10209000 0 0x1000>; reg = <0 0x10209000 0 0x1000>;
...@@ -401,6 +425,15 @@ fhctl: clock-controller@10209f00 { ...@@ -401,6 +425,15 @@ fhctl: clock-controller@10209f00 {
status = "disabled"; status = "disabled";
}; };
gce: mailbox@10212000 {
compatible = "mediatek,mt6795-gce", "mediatek,mt8173-gce";
reg = <0 0x10212000 0 0x1000>;
interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_LOW>;
clocks = <&infracfg CLK_INFRA_GCE>;
clock-names = "gce";
#mbox-cells = <2>;
};
gic: interrupt-controller@10221000 { gic: interrupt-controller@10221000 {
compatible = "arm,gic-400"; compatible = "arm,gic-400";
#interrupt-cells = <3>; #interrupt-cells = <3>;
...@@ -644,16 +677,77 @@ mmc3: mmc@11260000 { ...@@ -644,16 +677,77 @@ mmc3: mmc@11260000 {
status = "disabled"; status = "disabled";
}; };
mmsys: syscon@14000000 {
compatible = "mediatek,mt6795-mmsys", "syscon";
reg = <0 0x14000000 0 0x1000>;
power-domains = <&spm MT6795_POWER_DOMAIN_MM>;
assigned-clocks = <&topckgen CLK_TOP_MM_SEL>;
assigned-clock-rates = <400000000>;
#clock-cells = <1>;
#reset-cells = <1>;
mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
<&gce 1 CMDQ_THR_PRIO_HIGHEST>;
mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
};
larb0: larb@14021000 {
compatible = "mediatek,mt6795-smi-larb";
reg = <0 0x14021000 0 0x1000>;
clocks = <&mmsys CLK_MM_SMI_COMMON>, <&mmsys CLK_MM_SMI_LARB0>;
clock-names = "apb", "smi";
mediatek,smi = <&smi_common>;
mediatek,larb-id = <0>;
power-domains = <&spm MT6795_POWER_DOMAIN_MM>;
};
smi_common: smi@14022000 {
compatible = "mediatek,mt6795-smi-common";
reg = <0 0x14022000 0 0x1000>;
power-domains = <&spm MT6795_POWER_DOMAIN_MM>;
clocks = <&infracfg CLK_INFRA_SMI>, <&mmsys CLK_MM_SMI_COMMON>;
clock-names = "apb", "smi";
};
larb2: larb@15001000 {
compatible = "mediatek,mt6795-smi-larb";
reg = <0 0x15001000 0 0x1000>;
clocks = <&mmsys CLK_MM_SMI_COMMON>, <&infracfg CLK_INFRA_SMI>;
clock-names = "apb", "smi";
mediatek,smi = <&smi_common>;
mediatek,larb-id = <2>;
power-domains = <&spm MT6795_POWER_DOMAIN_ISP>;
};
vdecsys: clock-controller@16000000 { vdecsys: clock-controller@16000000 {
compatible = "mediatek,mt6795-vdecsys"; compatible = "mediatek,mt6795-vdecsys";
reg = <0 0x16000000 0 0x1000>; reg = <0 0x16000000 0 0x1000>;
#clock-cells = <1>; #clock-cells = <1>;
}; };
larb1: larb@16010000 {
compatible = "mediatek,mt6795-smi-larb";
reg = <0 0x16010000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <1>;
clocks = <&vdecsys CLK_VDEC_CKEN>, <&vdecsys CLK_VDEC_LARB_CKEN>;
clock-names = "apb", "smi";
power-domains = <&spm MT6795_POWER_DOMAIN_VDEC>;
};
vencsys: clock-controller@18000000 { vencsys: clock-controller@18000000 {
compatible = "mediatek,mt6795-vencsys"; compatible = "mediatek,mt6795-vencsys";
reg = <0 0x18000000 0 0x1000>; reg = <0 0x18000000 0 0x1000>;
#clock-cells = <1>; #clock-cells = <1>;
}; };
larb3: larb@18001000 {
compatible = "mediatek,mt6795-smi-larb";
reg = <0 0x18001000 0 0x1000>;
clocks = <&vencsys CLK_VENC_VENC>, <&vencsys CLK_VENC_LARB>;
clock-names = "apb", "smi";
mediatek,smi = <&smi_common>;
mediatek,larb-id = <3>;
power-domains = <&spm MT6795_POWER_DOMAIN_VENC>;
};
}; };
}; };
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "MediaTek MT6797 Evaluation Board"; model = "MediaTek MT6797 Evaluation Board";
chassis-type = "embedded";
compatible = "mediatek,mt6797-evb", "mediatek,mt6797"; compatible = "mediatek,mt6797-evb", "mediatek,mt6797";
aliases { aliases {
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
/ { / {
model = "Mediatek X20 Development Board"; model = "Mediatek X20 Development Board";
chassis-type = "embedded";
compatible = "archermind,mt6797-x20-dev", "mediatek,mt6797"; compatible = "archermind,mt6797-x20-dev", "mediatek,mt6797";
aliases { aliases {
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
/ { / {
model = "Bananapi BPI-R64"; model = "Bananapi BPI-R64";
chassis-type = "embedded";
compatible = "bananapi,bpi-r64", "mediatek,mt7622"; compatible = "bananapi,bpi-r64", "mediatek,mt7622";
aliases { aliases {
...@@ -150,6 +151,10 @@ mdio: mdio-bus { ...@@ -150,6 +151,10 @@ mdio: mdio-bus {
switch@0 { switch@0 {
compatible = "mediatek,mt7531"; compatible = "mediatek,mt7531";
reg = <0>; reg = <0>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&pio>;
interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
reset-gpios = <&pio 54 0>; reset-gpios = <&pio 54 0>;
ports { ports {
...@@ -248,14 +253,42 @@ &nandc { ...@@ -248,14 +253,42 @@ &nandc {
status = "disabled"; status = "disabled";
}; };
&nor_flash { &bch {
pinctrl-names = "default"; status = "okay";
pinctrl-0 = <&spi_nor_pins>; };
status = "disabled";
&snfi {
pinctrl-names = "default";
pinctrl-0 = <&serial_nand_pins>;
status = "okay";
flash@0 { flash@0 {
compatible = "jedec,spi-nor"; compatible = "spi-nand";
reg = <0>; reg = <0>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
nand-ecc-engine = <&snfi>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bl2";
reg = <0x0 0x80000>;
read-only;
};
partition@80000 {
label = "fip";
reg = <0x80000 0x200000>;
read-only;
};
ubi: partition@280000 {
label = "ubi";
reg = <0x280000 0x7d80000>;
};
};
}; };
}; };
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
/ { / {
model = "MediaTek MT7622 RFB1 board"; model = "MediaTek MT7622 RFB1 board";
chassis-type = "embedded";
compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622"; compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622";
aliases { aliases {
......
...@@ -101,6 +101,7 @@ cpu1: cpu@1 { ...@@ -101,6 +101,7 @@ cpu1: cpu@1 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -29,13 +29,13 @@ partitions { ...@@ -29,13 +29,13 @@ partitions {
partition@0 { partition@0 {
label = "bl2"; label = "bl2";
reg = <0x0 0x80000>; reg = <0x0 0x100000>;
read-only; read-only;
}; };
partition@80000 { partition@100000 {
label = "reserved"; label = "reserved";
reg = <0x80000 0x300000>; reg = <0x100000 0x280000>;
}; };
partition@380000 { partition@380000 {
......
...@@ -27,15 +27,10 @@ partitions { ...@@ -27,15 +27,10 @@ partitions {
partition@0 { partition@0 {
label = "bl2"; label = "bl2";
reg = <0x0 0x20000>; reg = <0x0 0x40000>;
read-only; read-only;
}; };
partition@20000 {
label = "reserved";
reg = <0x20000 0x20000>;
};
partition@40000 { partition@40000 {
label = "u-boot-env"; label = "u-boot-env";
reg = <0x40000 0x40000>; reg = <0x40000 0x40000>;
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
/ { / {
model = "Bananapi BPI-R3"; model = "Bananapi BPI-R3";
chassis-type = "embedded";
compatible = "bananapi,bpi-r3", "mediatek,mt7986a"; compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
aliases { aliases {
...@@ -37,6 +38,15 @@ dcin: regulator-12vd { ...@@ -37,6 +38,15 @@ dcin: regulator-12vd {
regulator-always-on; regulator-always-on;
}; };
fan: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
/* cooling level (0, 1, 2) - pwm inverted */
cooling-levels = <255 96 0>;
pwms = <&pwm 0 10000 0>;
status = "okay";
};
gpio-keys { gpio-keys {
compatible = "gpio-keys"; compatible = "gpio-keys";
...@@ -132,6 +142,28 @@ sfp2: sfp-2 { ...@@ -132,6 +142,28 @@ sfp2: sfp-2 {
}; };
}; };
&cpu_thermal {
cooling-maps {
cpu-active-high {
/* active: set fan to cooling level 2 */
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_active_high>;
};
cpu-active-low {
/* active: set fan to cooling level 1 */
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active_low>;
};
cpu-passive {
/* passive: set fan to cooling level 0 */
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
};
};
&crypto { &crypto {
status = "okay"; status = "okay";
}; };
...@@ -274,6 +306,13 @@ mux { ...@@ -274,6 +306,13 @@ mux {
}; };
}; };
pwm_pins: pwm-pins {
mux {
function = "pwm";
groups = "pwm0", "pwm1_0";
};
};
spi_flash_pins: spi-flash-pins { spi_flash_pins: spi-flash-pins {
mux { mux {
function = "spi"; function = "spi";
...@@ -344,6 +383,12 @@ mux { ...@@ -344,6 +383,12 @@ mux {
}; };
}; };
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm_pins>;
status = "okay";
};
&spi0 { &spi0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&spi_flash_pins>; pinctrl-0 = <&spi_flash_pins>;
...@@ -446,5 +491,9 @@ &wifi { ...@@ -446,5 +491,9 @@ &wifi {
pinctrl-names = "default", "dbdc"; pinctrl-names = "default", "dbdc";
pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>; pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>;
pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>; pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>;
led {
led-active-low;
};
}; };
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
/ { / {
model = "MediaTek MT7986a RFB"; model = "MediaTek MT7986a RFB";
chassis-type = "embedded";
compatible = "mediatek,mt7986a-rfb", "mediatek,mt7986a"; compatible = "mediatek,mt7986a-rfb", "mediatek,mt7986a";
aliases { aliases {
......
...@@ -240,6 +240,20 @@ crypto: crypto@10320000 { ...@@ -240,6 +240,20 @@ crypto: crypto@10320000 {
status = "disabled"; status = "disabled";
}; };
pwm: pwm@10048000 {
compatible = "mediatek,mt7986-pwm";
reg = <0 0x10048000 0 0x1000>;
#clock-cells = <1>;
#pwm-cells = <2>;
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_PWM_SEL>,
<&infracfg CLK_INFRA_PWM_STA>,
<&infracfg CLK_INFRA_PWM1_CK>,
<&infracfg CLK_INFRA_PWM2_CK>;
clock-names = "top", "main", "pwm1", "pwm2";
status = "disabled";
};
uart0: serial@11002000 { uart0: serial@11002000 {
compatible = "mediatek,mt7986-uart", compatible = "mediatek,mt7986-uart",
"mediatek,mt6577-uart"; "mediatek,mt6577-uart";
...@@ -323,6 +337,15 @@ spi1: spi@1100b000 { ...@@ -323,6 +337,15 @@ spi1: spi@1100b000 {
status = "disabled"; status = "disabled";
}; };
auxadc: adc@1100d000 {
compatible = "mediatek,mt7986-auxadc";
reg = <0 0x1100d000 0 0x1000>;
clocks = <&infracfg CLK_INFRA_ADC_26M_CK>;
clock-names = "main";
#io-channel-cells = <1>;
status = "disabled";
};
ssusb: usb@11200000 { ssusb: usb@11200000 {
compatible = "mediatek,mt7986-xhci", compatible = "mediatek,mt7986-xhci",
"mediatek,mtk-xhci"; "mediatek,mtk-xhci";
...@@ -361,6 +384,21 @@ mmc0: mmc@11230000 { ...@@ -361,6 +384,21 @@ mmc0: mmc@11230000 {
status = "disabled"; status = "disabled";
}; };
thermal: thermal@1100c800 {
#thermal-sensor-cells = <1>;
compatible = "mediatek,mt7986-thermal";
reg = <0 0x1100c800 0 0x800>;
interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&infracfg CLK_INFRA_THERM_CK>,
<&infracfg CLK_INFRA_ADC_26M_CK>,
<&infracfg CLK_INFRA_ADC_FRC_CK>;
clock-names = "therm", "auxadc", "adc_32k";
mediatek,auxadc = <&auxadc>;
mediatek,apmixedsys = <&apmixedsys>;
nvmem-cells = <&thermal_calibration>;
nvmem-cell-names = "calibration-data";
};
pcie: pcie@11280000 { pcie: pcie@11280000 {
compatible = "mediatek,mt7986-pcie", compatible = "mediatek,mt7986-pcie",
"mediatek,mt8192-pcie"; "mediatek,mt8192-pcie";
...@@ -412,6 +450,17 @@ pcie_port: pcie-phy@11c00000 { ...@@ -412,6 +450,17 @@ pcie_port: pcie-phy@11c00000 {
}; };
}; };
efuse: efuse@11d00000 {
compatible = "mediatek,mt7986-efuse", "mediatek,efuse";
reg = <0 0x11d00000 0 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
thermal_calibration: calib@274 {
reg = <0x274 0xc>;
};
};
usb_phy: t-phy@11e10000 { usb_phy: t-phy@11e10000 {
compatible = "mediatek,mt7986-tphy", compatible = "mediatek,mt7986-tphy",
"mediatek,generic-tphy-v2"; "mediatek,generic-tphy-v2";
...@@ -554,4 +603,31 @@ wifi: wifi@18000000 { ...@@ -554,4 +603,31 @@ wifi: wifi@18000000 {
}; };
}; };
thermal-zones {
cpu_thermal: cpu-thermal {
polling-delay-passive = <1000>;
polling-delay = <1000>;
thermal-sensors = <&thermal 0>;
trips {
cpu_trip_active_high: active-high {
temperature = <115000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_low: active-low {
temperature = <85000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_passive: passive {
temperature = <40000>;
hysteresis = <2000>;
type = "passive";
};
};
};
};
}; };
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "MediaTek MT7986b RFB"; model = "MediaTek MT7986b RFB";
chassis-type = "embedded";
compatible = "mediatek,mt7986b-rfb", "mediatek,mt7986b"; compatible = "mediatek,mt7986b-rfb", "mediatek,mt7986b";
aliases { aliases {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
/ { / {
model = "Pumpkin MT8167"; model = "Pumpkin MT8167";
chassis-type = "embedded";
compatible = "mediatek,mt8167-pumpkin", "mediatek,mt8167"; compatible = "mediatek,mt8167-pumpkin", "mediatek,mt8167";
memory@40000000 { memory@40000000 {
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
/ { / {
model = "Google Hanawl"; model = "Google Hanawl";
chassis-type = "laptop";
compatible = "google,hana-rev7", "mediatek,mt8173"; compatible = "google,hana-rev7", "mediatek,mt8173";
}; };
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
/ { / {
model = "Google Hana"; model = "Google Hana";
chassis-type = "laptop";
compatible = "google,hana-rev6", "google,hana-rev5", compatible = "google,hana-rev6", "google,hana-rev5",
"google,hana-rev4", "google,hana-rev3", "google,hana-rev4", "google,hana-rev3",
"google,hana", "mediatek,mt8173"; "google,hana", "mediatek,mt8173";
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
/ { / {
model = "Google Elm"; model = "Google Elm";
chassis-type = "laptop";
compatible = "google,elm-rev8", "google,elm-rev7", "google,elm-rev6", compatible = "google,elm-rev8", "google,elm-rev7", "google,elm-rev6",
"google,elm-rev5", "google,elm-rev4", "google,elm-rev3", "google,elm-rev5", "google,elm-rev4", "google,elm-rev3",
"google,elm", "mediatek,mt8173"; "google,elm", "mediatek,mt8173";
......
...@@ -96,6 +96,8 @@ panel_fixed_3v3: regulator1 { ...@@ -96,6 +96,8 @@ panel_fixed_3v3: regulator1 {
regulator-min-microvolt = <3300000>; regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
enable-active-high; enable-active-high;
regulator-boot-on;
off-on-delay-us = <500000>;
gpio = <&pio 41 GPIO_ACTIVE_HIGH>; gpio = <&pio 41 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&panel_fixed_pins>; pinctrl-0 = <&panel_fixed_pins>;
...@@ -285,7 +287,7 @@ ps8640_out: endpoint { ...@@ -285,7 +287,7 @@ ps8640_out: endpoint {
aux-bus { aux-bus {
panel: panel { panel: panel {
compatible = "lg,lp120up1"; compatible = "edp-panel";
power-supply = <&panel_fixed_3v3>; power-supply = <&panel_fixed_3v3>;
backlight = <&backlight>; backlight = <&backlight>;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
/ { / {
model = "MediaTek MT8173 evaluation board"; model = "MediaTek MT8173 evaluation board";
chassis-type = "embedded";
compatible = "mediatek,mt8173-evb", "mediatek,mt8173"; compatible = "mediatek,mt8173-evb", "mediatek,mt8173";
aliases { aliases {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
/ { / {
model = "MediaTek MT8183 evaluation board"; model = "MediaTek MT8183 evaluation board";
chassis-type = "embedded";
compatible = "mediatek,mt8183-evb", "mediatek,mt8183"; compatible = "mediatek,mt8183-evb", "mediatek,mt8183";
aliases { aliases {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "Google burnet board"; model = "Google burnet board";
chassis-type = "convertible";
compatible = "google,burnet", "mediatek,mt8183"; compatible = "google,burnet", "mediatek,mt8183";
}; };
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "Google damu board"; model = "Google damu board";
chassis-type = "convertible";
compatible = "google,damu", "mediatek,mt8183"; compatible = "google,damu", "mediatek,mt8183";
}; };
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "Google juniper sku16 board"; model = "Google juniper sku16 board";
chassis-type = "convertible";
compatible = "google,juniper-sku16", "google,juniper", "mediatek,mt8183"; compatible = "google,juniper-sku16", "google,juniper", "mediatek,mt8183";
}; };
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "MediaTek kakadu board sku22"; model = "MediaTek kakadu board sku22";
chassis-type = "tablet";
compatible = "google,kakadu-rev3-sku22", "google,kakadu-rev2-sku22", compatible = "google,kakadu-rev3-sku22", "google,kakadu-rev2-sku22",
"google,kakadu", "mediatek,mt8183"; "google,kakadu", "mediatek,mt8183";
}; };
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
model = "MediaTek kakadu board"; model = "MediaTek kakadu board";
chassis-type = "tablet";
compatible = "google,kakadu-rev3", "google,kakadu-rev2", compatible = "google,kakadu-rev3", "google,kakadu-rev2",
"google,kakadu", "mediatek,mt8183"; "google,kakadu", "mediatek,mt8183";
}; };
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
/ { / {
model = "MediaTek kodama sku16 board"; model = "MediaTek kodama sku16 board";
chassis-type = "tablet";
compatible = "google,kodama-sku16", "google,kodama", "mediatek,mt8183"; compatible = "google,kodama-sku16", "google,kodama", "mediatek,mt8183";
}; };
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
/ { / {
model = "MediaTek kodama sku272 board"; model = "MediaTek kodama sku272 board";
chassis-type = "tablet";
compatible = "google,kodama-sku272", "google,kodama", "mediatek,mt8183"; compatible = "google,kodama-sku272", "google,kodama", "mediatek,mt8183";
}; };
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
/ { / {
model = "MediaTek kodama sku288 board"; model = "MediaTek kodama sku288 board";
chassis-type = "tablet";
compatible = "google,kodama-sku288", "google,kodama", "mediatek,mt8183"; compatible = "google,kodama-sku288", "google,kodama", "mediatek,mt8183";
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
/ { / {
model = "MediaTek krane sku0 board"; model = "MediaTek krane sku0 board";
chassis-type = "tablet";
compatible = "google,krane-sku0", "google,krane", "mediatek,mt8183"; compatible = "google,krane-sku0", "google,krane", "mediatek,mt8183";
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
/ { / {
model = "MediaTek krane sku176 board"; model = "MediaTek krane sku176 board";
chassis-type = "tablet";
compatible = "google,krane-sku176", "google,krane", "mediatek,mt8183"; compatible = "google,krane-sku176", "google,krane", "mediatek,mt8183";
}; };
......
...@@ -292,6 +292,10 @@ dsi_out: endpoint { ...@@ -292,6 +292,10 @@ dsi_out: endpoint {
}; };
}; };
&gic {
mediatek,broken-save-restore-fw;
};
&gpu { &gpu {
mali-supply = <&mt6358_vgpu_reg>; mali-supply = <&mt6358_vgpu_reg>;
}; };
...@@ -822,6 +826,8 @@ &pwm0 { ...@@ -822,6 +826,8 @@ &pwm0 {
&scp { &scp {
status = "okay"; status = "okay";
firmware-name = "mediatek/mt8183/scp.img";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&scp_pins>; pinctrl-0 = <&scp_pins>;
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
/ { / {
model = "MediaTek MT8186 evaluation board"; model = "MediaTek MT8186 evaluation board";
chassis-type = "embedded";
compatible = "mediatek,mt8186-evb", "mediatek,mt8186"; compatible = "mediatek,mt8186-evb", "mediatek,mt8186";
aliases { aliases {
......
This diff is collapsed.
...@@ -40,9 +40,90 @@ CROS_STD_MAIN_KEYMAP ...@@ -40,9 +40,90 @@ CROS_STD_MAIN_KEYMAP
>; >;
}; };
&pio {
bt_pins: bt-pins {
pins-bt-kill {
pinmux = <PINMUX_GPIO144__FUNC_GPIO144>;
output-low;
};
pins-bt-wake {
pinmux = <PINMUX_GPIO22__FUNC_GPIO22>;
bias-pull-up;
};
pins-ap-wake-bt {
pinmux = <PINMUX_GPIO168__FUNC_GPIO168>;
output-low;
};
};
uart1_pins: uart1-pins {
pins-rx {
pinmux = <PINMUX_GPIO94__FUNC_URXD1>;
input-enable;
bias-pull-up;
};
pins-tx {
pinmux = <PINMUX_GPIO95__FUNC_UTXD1>;
};
pins-cts {
pinmux = <PINMUX_GPIO166__FUNC_UCTS1>;
input-enable;
};
pins-rts {
pinmux = <PINMUX_GPIO167__FUNC_URTS1>;
};
};
uart1_pins_sleep: uart1-sleep-pins {
pins-rx {
pinmux = <PINMUX_GPIO94__FUNC_GPIO94>;
input-enable;
bias-pull-up;
};
pins-tx {
pinmux = <PINMUX_GPIO95__FUNC_UTXD1>;
};
pins-cts {
pinmux = <PINMUX_GPIO166__FUNC_UCTS1>;
input-enable;
};
pins-rts {
pinmux = <PINMUX_GPIO167__FUNC_URTS1>;
};
};
};
&touchscreen { &touchscreen {
compatible = "hid-over-i2c"; compatible = "hid-over-i2c";
post-power-on-delay-ms = <10>; post-power-on-delay-ms = <10>;
hid-descr-addr = <0x0001>; hid-descr-addr = <0x0001>;
vdd-supply = <&pp3300_u>; vdd-supply = <&pp3300_u>;
}; };
&uart1 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart1_pins>;
pinctrl-1 = <&uart1_pins_sleep>;
/delete-property/ interrupts;
interrupts-extended = <&gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>,
<&pio 94 IRQ_TYPE_EDGE_FALLING>;
bluetooth {
compatible = "realtek,rtl8822cs-bt";
pinctrl-names = "default";
pinctrl-0 = <&bt_pins>;
enable-gpios = <&pio 144 GPIO_ACTIVE_HIGH>;
device-wake-gpios = <&pio 168 GPIO_ACTIVE_HIGH>;
host-wake-gpios = <&pio 22 GPIO_ACTIVE_LOW>;
};
};
...@@ -275,6 +275,10 @@ &dsi_out { ...@@ -275,6 +275,10 @@ &dsi_out {
remote-endpoint = <&anx7625_in>; remote-endpoint = <&anx7625_in>;
}; };
&gic {
mediatek,broken-save-restore-fw;
};
&gpu { &gpu {
mali-supply = <&mt6315_7_vbuck1>; mali-supply = <&mt6315_7_vbuck1>;
status = "okay"; status = "okay";
......
...@@ -70,7 +70,8 @@ cpu0: cpu@0 { ...@@ -70,7 +70,8 @@ cpu0: cpu@0 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <128>; d-cache-sets = <128>;
next-level-cache = <&l2_0>; next-level-cache = <&l2_0>;
capacity-dmips-mhz = <530>; performance-domains = <&performance 0>;
capacity-dmips-mhz = <427>;
}; };
cpu1: cpu@100 { cpu1: cpu@100 {
...@@ -87,7 +88,8 @@ cpu1: cpu@100 { ...@@ -87,7 +88,8 @@ cpu1: cpu@100 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <128>; d-cache-sets = <128>;
next-level-cache = <&l2_0>; next-level-cache = <&l2_0>;
capacity-dmips-mhz = <530>; performance-domains = <&performance 0>;
capacity-dmips-mhz = <427>;
}; };
cpu2: cpu@200 { cpu2: cpu@200 {
...@@ -104,7 +106,8 @@ cpu2: cpu@200 { ...@@ -104,7 +106,8 @@ cpu2: cpu@200 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <128>; d-cache-sets = <128>;
next-level-cache = <&l2_0>; next-level-cache = <&l2_0>;
capacity-dmips-mhz = <530>; performance-domains = <&performance 0>;
capacity-dmips-mhz = <427>;
}; };
cpu3: cpu@300 { cpu3: cpu@300 {
...@@ -121,7 +124,8 @@ cpu3: cpu@300 { ...@@ -121,7 +124,8 @@ cpu3: cpu@300 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <128>; d-cache-sets = <128>;
next-level-cache = <&l2_0>; next-level-cache = <&l2_0>;
capacity-dmips-mhz = <530>; performance-domains = <&performance 0>;
capacity-dmips-mhz = <427>;
}; };
cpu4: cpu@400 { cpu4: cpu@400 {
...@@ -138,6 +142,7 @@ cpu4: cpu@400 { ...@@ -138,6 +142,7 @@ cpu4: cpu@400 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2_1>; next-level-cache = <&l2_1>;
performance-domains = <&performance 1>;
capacity-dmips-mhz = <1024>; capacity-dmips-mhz = <1024>;
}; };
...@@ -155,6 +160,7 @@ cpu5: cpu@500 { ...@@ -155,6 +160,7 @@ cpu5: cpu@500 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2_1>; next-level-cache = <&l2_1>;
performance-domains = <&performance 1>;
capacity-dmips-mhz = <1024>; capacity-dmips-mhz = <1024>;
}; };
...@@ -172,6 +178,7 @@ cpu6: cpu@600 { ...@@ -172,6 +178,7 @@ cpu6: cpu@600 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2_1>; next-level-cache = <&l2_1>;
performance-domains = <&performance 1>;
capacity-dmips-mhz = <1024>; capacity-dmips-mhz = <1024>;
}; };
...@@ -189,6 +196,7 @@ cpu7: cpu@700 { ...@@ -189,6 +196,7 @@ cpu7: cpu@700 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2_1>; next-level-cache = <&l2_1>;
performance-domains = <&performance 1>;
capacity-dmips-mhz = <1024>; capacity-dmips-mhz = <1024>;
}; };
...@@ -228,6 +236,7 @@ l2_0: l2-cache0 { ...@@ -228,6 +236,7 @@ l2_0: l2-cache0 {
cache-line-size = <64>; cache-line-size = <64>;
cache-sets = <512>; cache-sets = <512>;
next-level-cache = <&l3_0>; next-level-cache = <&l3_0>;
cache-unified;
}; };
l2_1: l2-cache1 { l2_1: l2-cache1 {
...@@ -237,6 +246,7 @@ l2_1: l2-cache1 { ...@@ -237,6 +246,7 @@ l2_1: l2-cache1 {
cache-line-size = <64>; cache-line-size = <64>;
cache-sets = <512>; cache-sets = <512>;
next-level-cache = <&l3_0>; next-level-cache = <&l3_0>;
cache-unified;
}; };
l3_0: l3-cache { l3_0: l3-cache {
...@@ -401,8 +411,15 @@ soc { ...@@ -401,8 +411,15 @@ soc {
#address-cells = <2>; #address-cells = <2>;
#size-cells = <2>; #size-cells = <2>;
compatible = "simple-bus"; compatible = "simple-bus";
dma-ranges = <0x0 0x0 0x0 0x0 0x4 0x0>;
ranges; ranges;
performance: performance-controller@11bc10 {
compatible = "mediatek,cpufreq-hw";
reg = <0 0x0011bc10 0 0x120>, <0 0x0011bd30 0 0x120>;
#performance-domain-cells = <1>;
};
gic: interrupt-controller@c000000 { gic: interrupt-controller@c000000 {
compatible = "arm,gic-v3"; compatible = "arm,gic-v3";
#interrupt-cells = <4>; #interrupt-cells = <4>;
...@@ -1625,6 +1642,65 @@ larb11: larb@1582e000 { ...@@ -1625,6 +1642,65 @@ larb11: larb@1582e000 {
power-domains = <&spm MT8192_POWER_DOMAIN_ISP2>; power-domains = <&spm MT8192_POWER_DOMAIN_ISP2>;
}; };
vcodec_dec: video-codec@16000000 {
compatible = "mediatek,mt8192-vcodec-dec";
reg = <0 0x16000000 0 0x1000>;
mediatek,scp = <&scp>;
iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>;
#address-cells = <2>;
#size-cells = <2>;
ranges = <0 0 0 0x16000000 0 0x26000>;
video-codec@10000 {
compatible = "mediatek,mtk-vcodec-lat";
reg = <0x0 0x10000 0 0x800>;
interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH 0>;
iommus = <&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD2_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_AVC_MV_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_PRED_RD_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_TILE_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_WDMA_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_RG_CTRL_DMA_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_UFO_ENC_EXT>;
clocks = <&topckgen CLK_TOP_VDEC_SEL>,
<&vdecsys_soc CLK_VDEC_SOC_VDEC>,
<&vdecsys_soc CLK_VDEC_SOC_LAT>,
<&vdecsys_soc CLK_VDEC_SOC_LARB1>,
<&topckgen CLK_TOP_MAINPLL_D4>;
clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
};
video-codec@25000 {
compatible = "mediatek,mtk-vcodec-core";
reg = <0 0x25000 0 0x1000>;
interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 0>;
iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_UFO_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_PP_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_PRED_RD_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_PRED_WR_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_PPWRAP_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_TILE_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_VLD_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_VLD2_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_AVC_MV_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_RG_CTRL_DMA_EXT>;
clocks = <&topckgen CLK_TOP_VDEC_SEL>,
<&vdecsys CLK_VDEC_VDEC>,
<&vdecsys CLK_VDEC_LAT>,
<&vdecsys CLK_VDEC_LARB1>,
<&topckgen CLK_TOP_MAINPLL_D4>;
clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
};
};
larb5: larb@1600d000 { larb5: larb@1600d000 {
compatible = "mediatek,mt8192-smi-larb"; compatible = "mediatek,mt8192-smi-larb";
reg = <0 0x1600d000 0 0x1000>; reg = <0 0x1600d000 0 0x1000>;
......
...@@ -255,6 +255,10 @@ dptx_out: endpoint { ...@@ -255,6 +255,10 @@ dptx_out: endpoint {
}; };
}; };
&gic {
mediatek,broken-save-restore-fw;
};
&gpu { &gpu {
status = "okay"; status = "okay";
mali-supply = <&mt6315_7_vbuck1>; mali-supply = <&mt6315_7_vbuck1>;
...@@ -464,6 +468,13 @@ flash@0 { ...@@ -464,6 +468,13 @@ flash@0 {
}; };
}; };
&pcie1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pcie1_pins_default>;
};
&pio { &pio {
mediatek,rsel-resistance-in-si-unit; mediatek,rsel-resistance-in-si-unit;
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -852,6 +863,24 @@ pins-cs { ...@@ -852,6 +863,24 @@ pins-cs {
}; };
}; };
pcie0_pins_default: pcie0-default-pins {
pins-bus {
pinmux = <PINMUX_GPIO19__FUNC_WAKEN>,
<PINMUX_GPIO20__FUNC_PERSTN>,
<PINMUX_GPIO21__FUNC_CLKREQN>;
bias-pull-up;
};
};
pcie1_pins_default: pcie1-default-pins {
pins-bus {
pinmux = <PINMUX_GPIO22__FUNC_PERSTN_1>,
<PINMUX_GPIO23__FUNC_CLKREQN_1>,
<PINMUX_GPIO24__FUNC_WAKEN_1>;
bias-pull-up;
};
};
pio_default: pio-default-pins { pio_default: pio-default-pins {
pins-wifi-enable { pins-wifi-enable {
pinmux = <PINMUX_GPIO58__FUNC_GPIO58>; pinmux = <PINMUX_GPIO58__FUNC_GPIO58>;
......
...@@ -24,6 +24,8 @@ / { ...@@ -24,6 +24,8 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
dp-intf0 = &dp_intf0;
dp-intf1 = &dp_intf1;
gce0 = &gce0; gce0 = &gce0;
gce1 = &gce1; gce1 = &gce1;
ethdr0 = &ethdr0; ethdr0 = &ethdr0;
...@@ -283,6 +285,7 @@ l2_0: l2-cache0 { ...@@ -283,6 +285,7 @@ l2_0: l2-cache0 {
cache-line-size = <64>; cache-line-size = <64>;
cache-sets = <512>; cache-sets = <512>;
next-level-cache = <&l3_0>; next-level-cache = <&l3_0>;
cache-unified;
}; };
l2_1: l2-cache1 { l2_1: l2-cache1 {
...@@ -292,6 +295,7 @@ l2_1: l2-cache1 { ...@@ -292,6 +295,7 @@ l2_1: l2-cache1 {
cache-line-size = <64>; cache-line-size = <64>;
cache-sets = <512>; cache-sets = <512>;
next-level-cache = <&l3_0>; next-level-cache = <&l3_0>;
cache-unified;
}; };
l3_0: l3-cache { l3_0: l3-cache {
...@@ -2366,6 +2370,76 @@ larb18: larb@17201000 { ...@@ -2366,6 +2370,76 @@ larb18: larb@17201000 {
power-domains = <&spm MT8195_POWER_DOMAIN_CAM>; power-domains = <&spm MT8195_POWER_DOMAIN_CAM>;
}; };
video-codec@18000000 {
compatible = "mediatek,mt8195-vcodec-dec";
mediatek,scp = <&scp>;
iommus = <&iommu_vdo M4U_PORT_L21_VDEC_MC_EXT>;
#address-cells = <2>;
#size-cells = <2>;
reg = <0 0x18000000 0 0x1000>,
<0 0x18004000 0 0x1000>;
ranges = <0 0 0 0x18000000 0 0x26000>;
video-codec@2000 {
compatible = "mediatek,mtk-vcodec-lat-soc";
reg = <0 0x2000 0 0x800>;
iommus = <&iommu_vpp M4U_PORT_L23_VDEC_UFO_ENC_EXT>,
<&iommu_vpp M4U_PORT_L23_VDEC_RDMA_EXT>;
clocks = <&topckgen CLK_TOP_VDEC>,
<&vdecsys_soc CLK_VDEC_SOC_VDEC>,
<&vdecsys_soc CLK_VDEC_SOC_LAT>,
<&topckgen CLK_TOP_UNIVPLL_D4>;
clock-names = "sel", "vdec", "lat", "top";
assigned-clocks = <&topckgen CLK_TOP_VDEC>;
assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4>;
power-domains = <&spm MT8195_POWER_DOMAIN_VDEC0>;
};
video-codec@10000 {
compatible = "mediatek,mtk-vcodec-lat";
reg = <0 0x10000 0 0x800>;
interrupts = <GIC_SPI 708 IRQ_TYPE_LEVEL_HIGH 0>;
iommus = <&iommu_vdo M4U_PORT_L24_VDEC_LAT0_VLD_EXT>,
<&iommu_vdo M4U_PORT_L24_VDEC_LAT0_VLD2_EXT>,
<&iommu_vdo M4U_PORT_L24_VDEC_LAT0_AVC_MC_EXT>,
<&iommu_vdo M4U_PORT_L24_VDEC_LAT0_PRED_RD_EXT>,
<&iommu_vdo M4U_PORT_L24_VDEC_LAT0_TILE_EXT>,
<&iommu_vdo M4U_PORT_L24_VDEC_LAT0_WDMA_EXT>;
clocks = <&topckgen CLK_TOP_VDEC>,
<&vdecsys_soc CLK_VDEC_SOC_VDEC>,
<&vdecsys_soc CLK_VDEC_SOC_LAT>,
<&topckgen CLK_TOP_UNIVPLL_D4>;
clock-names = "sel", "vdec", "lat", "top";
assigned-clocks = <&topckgen CLK_TOP_VDEC>;
assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4>;
power-domains = <&spm MT8195_POWER_DOMAIN_VDEC0>;
};
video-codec@25000 {
compatible = "mediatek,mtk-vcodec-core";
reg = <0 0x25000 0 0x1000>; /* VDEC_CORE_MISC */
interrupts = <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH 0>;
iommus = <&iommu_vdo M4U_PORT_L21_VDEC_MC_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_UFO_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_PP_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_PRED_RD_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_PRED_WR_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_PPWRAP_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_TILE_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_VLD_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_VLD2_EXT>,
<&iommu_vdo M4U_PORT_L21_VDEC_AVC_MV_EXT>;
clocks = <&topckgen CLK_TOP_VDEC>,
<&vdecsys CLK_VDEC_VDEC>,
<&vdecsys CLK_VDEC_LAT>,
<&topckgen CLK_TOP_UNIVPLL_D4>;
clock-names = "sel", "vdec", "lat", "top";
assigned-clocks = <&topckgen CLK_TOP_VDEC>;
assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4>;
power-domains = <&spm MT8195_POWER_DOMAIN_VDEC1>;
};
};
larb24: larb@1800d000 { larb24: larb@1800d000 {
compatible = "mediatek,mt8195-smi-larb"; compatible = "mediatek,mt8195-smi-larb";
reg = <0 0x1800d000 0 0x1000>; reg = <0 0x1800d000 0 0x1000>;
...@@ -3262,5 +3336,185 @@ map0 { ...@@ -3262,5 +3336,185 @@ map0 {
}; };
}; };
}; };
vpu0-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_VPU0>;
trips {
vpu0_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
vpu0_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
vpu1-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_VPU1>;
trips {
vpu1_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
vpu1_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
gpu0-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_GPU0>;
trips {
gpu0_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
gpu0_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
gpu1-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_GPU1>;
trips {
gpu1_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
gpu1_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
vdec-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_VDEC>;
trips {
vdec_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
vdec_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
img-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_IMG>;
trips {
img_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
img_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
infra-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_INFRA>;
trips {
infra_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
infra_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cam0-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_CAM0>;
trips {
cam0_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
cam0_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cam1-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_ap MT8195_AP_CAM1>;
trips {
cam1_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
cam1_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
}; };
}; };
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/mt8365-pinfunc.h> #include <dt-bindings/pinctrl/mt8365-pinfunc.h>
#include "mt8365.dtsi" #include "mt8365.dtsi"
#include "mt6357.dtsi"
/ { / {
model = "MediaTek MT8365 Open Platform EVK"; model = "MediaTek MT8365 Open Platform EVK";
...@@ -87,6 +88,49 @@ optee_reserved: optee@43200000 { ...@@ -87,6 +88,49 @@ optee_reserved: optee@43200000 {
}; };
}; };
&cpu0 {
proc-supply = <&mt6357_vproc_reg>;
sram-supply = <&mt6357_vsram_proc_reg>;
};
&cpu1 {
proc-supply = <&mt6357_vproc_reg>;
sram-supply = <&mt6357_vsram_proc_reg>;
};
&cpu2 {
proc-supply = <&mt6357_vproc_reg>;
sram-supply = <&mt6357_vsram_proc_reg>;
};
&cpu3 {
proc-supply = <&mt6357_vproc_reg>;
sram-supply = <&mt6357_vsram_proc_reg>;
};
&ethernet {
pinctrl-0 = <&ethernet_pins>;
pinctrl-names = "default";
phy-handle = <&eth_phy>;
phy-mode = "rmii";
/*
* Ethernet and HDMI (DSI0) are sharing pins.
* Only one can be enabled at a time and require the physical switch
* SW2101 to be set on LAN position
* mt6357_vibr_reg and mt6357_vsim2_reg are needed to supply ethernet
*/
status = "disabled";
mdio {
#address-cells = <1>;
#size-cells = <0>;
eth_phy: ethernet-phy@0 {
reg = <0>;
};
};
};
&i2c0 { &i2c0 {
clock-frequency = <100000>; clock-frequency = <100000>;
pinctrl-0 = <&i2c0_pins>; pinctrl-0 = <&i2c0_pins>;
...@@ -94,7 +138,74 @@ &i2c0 { ...@@ -94,7 +138,74 @@ &i2c0 {
status = "okay"; status = "okay";
}; };
&mmc0 {
assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL>;
assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>;
bus-width = <8>;
cap-mmc-highspeed;
cap-mmc-hw-reset;
hs400-ds-delay = <0x12012>;
max-frequency = <200000000>;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
no-sd;
no-sdio;
non-removable;
pinctrl-0 = <&mmc0_default_pins>;
pinctrl-1 = <&mmc0_uhs_pins>;
pinctrl-names = "default", "state_uhs";
vmmc-supply = <&mt6357_vemc_reg>;
vqmmc-supply = <&mt6357_vio18_reg>;
status = "okay";
};
&mmc1 {
bus-width = <4>;
cap-sd-highspeed;
cd-gpios = <&pio 76 GPIO_ACTIVE_LOW>;
max-frequency = <200000000>;
pinctrl-0 = <&mmc1_default_pins>;
pinctrl-1 = <&mmc1_uhs_pins>;
pinctrl-names = "default", "state_uhs";
sd-uhs-sdr104;
sd-uhs-sdr50;
vmmc-supply = <&mt6357_vmch_reg>;
vqmmc-supply = <&mt6357_vmc_reg>;
status = "okay";
};
&mt6357_pmic {
interrupts-extended = <&pio 145 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <2>;
};
&pio { &pio {
ethernet_pins: ethernet-pins {
phy_reset_pins {
pinmux = <MT8365_PIN_133_TDM_TX_DATA1__FUNC_GPIO133>;
};
rmii_pins {
pinmux = <MT8365_PIN_0_GPIO0__FUNC_EXT_TXD0>,
<MT8365_PIN_1_GPIO1__FUNC_EXT_TXD1>,
<MT8365_PIN_2_GPIO2__FUNC_EXT_TXD2>,
<MT8365_PIN_3_GPIO3__FUNC_EXT_TXD3>,
<MT8365_PIN_4_GPIO4__FUNC_EXT_TXC>,
<MT8365_PIN_5_GPIO5__FUNC_EXT_RXER>,
<MT8365_PIN_6_GPIO6__FUNC_EXT_RXC>,
<MT8365_PIN_7_GPIO7__FUNC_EXT_RXDV>,
<MT8365_PIN_8_GPIO8__FUNC_EXT_RXD0>,
<MT8365_PIN_9_GPIO9__FUNC_EXT_RXD1>,
<MT8365_PIN_10_GPIO10__FUNC_EXT_RXD2>,
<MT8365_PIN_11_GPIO11__FUNC_EXT_RXD3>,
<MT8365_PIN_12_GPIO12__FUNC_EXT_TXEN>,
<MT8365_PIN_13_GPIO13__FUNC_EXT_COL>,
<MT8365_PIN_14_GPIO14__FUNC_EXT_MDIO>,
<MT8365_PIN_15_GPIO15__FUNC_EXT_MDC>;
};
};
gpio_keys: gpio-keys-pins { gpio_keys: gpio-keys-pins {
pins { pins {
pinmux = <MT8365_PIN_24_KPCOL0__FUNC_KPCOL0>; pinmux = <MT8365_PIN_24_KPCOL0__FUNC_KPCOL0>;
...@@ -111,6 +222,108 @@ pins { ...@@ -111,6 +222,108 @@ pins {
}; };
}; };
mmc0_default_pins: mmc0-default-pins {
clk-pins {
pinmux = <MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK>;
bias-pull-down;
};
cmd-dat-pins {
pinmux = <MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
<MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
<MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
<MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
<MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
<MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
<MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
<MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
<MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD>;
input-enable;
bias-pull-up;
};
rst-pins {
pinmux = <MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB>;
bias-pull-up;
};
};
mmc0_uhs_pins: mmc0-uhs-pins {
clk-pins {
pinmux = <MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK>;
drive-strength = <MTK_DRIVE_10mA>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
cmd-dat-pins {
pinmux = <MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
<MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
<MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
<MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
<MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
<MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
<MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
<MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
<MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD>;
input-enable;
drive-strength = <MTK_DRIVE_10mA>;
bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
};
ds-pins {
pinmux = <MT8365_PIN_104_MSDC0_DSL__FUNC_MSDC0_DSL>;
drive-strength = <MTK_DRIVE_10mA>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
rst-pins {
pinmux = <MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB>;
drive-strength = <MTK_DRIVE_10mA>;
bias-pull-up;
};
};
mmc1_default_pins: mmc1-default-pins {
cd-pins {
pinmux = <MT8365_PIN_76_CMDAT8__FUNC_GPIO76>;
bias-pull-up;
};
clk-pins {
pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
cmd-dat-pins {
pinmux = <MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
<MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
<MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
<MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
<MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>;
input-enable;
bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
};
};
mmc1_uhs_pins: mmc1-uhs-pins {
clk-pins {
pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>;
drive-strength = <MTK_DRIVE_8mA>;
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
};
cmd-dat-pins {
pinmux = <MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
<MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
<MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
<MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
<MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>;
input-enable;
drive-strength = <MTK_DRIVE_6mA>;
bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
};
};
uart0_pins: uart0-pins { uart0_pins: uart0-pins {
pins { pins {
pinmux = <MT8365_PIN_35_URXD0__FUNC_URXD0>, pinmux = <MT8365_PIN_35_URXD0__FUNC_URXD0>,
...@@ -164,6 +377,28 @@ &pwm { ...@@ -164,6 +377,28 @@ &pwm {
status = "okay"; status = "okay";
}; };
&ssusb {
dr_mode = "otg";
maximum-speed = "high-speed";
pinctrl-0 = <&usb_pins>;
pinctrl-names = "default";
usb-role-switch;
vusb33-supply = <&mt6357_vusb33_reg>;
status = "okay";
connector {
compatible = "gpio-usb-b-connector", "usb-b-connector";
id-gpios = <&pio 17 GPIO_ACTIVE_HIGH>;
type = "micro";
vbus-supply = <&usb_otg_vbus>;
};
};
&usb_host {
vusb33-supply = <&mt6357_vusb33_reg>;
status = "okay";
};
&uart0 { &uart0 {
pinctrl-0 = <&uart0_pins>; pinctrl-0 = <&uart0_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -20,6 +20,91 @@ cpus { ...@@ -20,6 +20,91 @@ cpus {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
cluster0_opp: opp-table-0 {
compatible = "operating-points-v2";
opp-shared;
opp-850000000 {
opp-hz = /bits/ 64 <850000000>;
opp-microvolt = <650000>;
};
opp-918000000 {
opp-hz = /bits/ 64 <918000000>;
opp-microvolt = <668750>;
};
opp-987000000 {
opp-hz = /bits/ 64 <987000000>;
opp-microvolt = <687500>;
};
opp-1056000000 {
opp-hz = /bits/ 64 <1056000000>;
opp-microvolt = <706250>;
};
opp-1125000000 {
opp-hz = /bits/ 64 <1125000000>;
opp-microvolt = <725000>;
};
opp-1216000000 {
opp-hz = /bits/ 64 <1216000000>;
opp-microvolt = <750000>;
};
opp-1308000000 {
opp-hz = /bits/ 64 <1308000000>;
opp-microvolt = <775000>;
};
opp-1400000000 {
opp-hz = /bits/ 64 <1400000000>;
opp-microvolt = <800000>;
};
opp-1466000000 {
opp-hz = /bits/ 64 <1466000000>;
opp-microvolt = <825000>;
};
opp-1533000000 {
opp-hz = /bits/ 64 <1533000000>;
opp-microvolt = <850000>;
};
opp-1633000000 {
opp-hz = /bits/ 64 <1633000000>;
opp-microvolt = <887500>;
};
opp-1700000000 {
opp-hz = /bits/ 64 <1700000000>;
opp-microvolt = <912500>;
};
opp-1767000000 {
opp-hz = /bits/ 64 <1767000000>;
opp-microvolt = <937500>;
};
opp-1834000000 {
opp-hz = /bits/ 64 <1834000000>;
opp-microvolt = <962500>;
};
opp-1917000000 {
opp-hz = /bits/ 64 <1917000000>;
opp-microvolt = <993750>;
};
opp-2001000000 {
opp-hz = /bits/ 64 <2001000000>;
opp-microvolt = <1025000>;
};
};
cpu-map { cpu-map {
cluster0 { cluster0 {
core0 { core0 {
...@@ -43,6 +128,7 @@ cpu0: cpu@0 { ...@@ -43,6 +128,7 @@ cpu0: cpu@0 {
reg = <0x0>; reg = <0x0>;
#cooling-cells = <2>; #cooling-cells = <2>;
enable-method = "psci"; enable-method = "psci";
cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
i-cache-size = <0x8000>; i-cache-size = <0x8000>;
i-cache-line-size = <64>; i-cache-line-size = <64>;
i-cache-sets = <256>; i-cache-sets = <256>;
...@@ -50,6 +136,10 @@ cpu0: cpu@0 { ...@@ -50,6 +136,10 @@ cpu0: cpu@0 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2>; next-level-cache = <&l2>;
clocks = <&mcucfg CLK_MCU_BUS_SEL>,
<&apmixedsys CLK_APMIXED_MAINPLL>;
clock-names = "cpu", "intermediate";
operating-points-v2 = <&cluster0_opp>;
}; };
cpu1: cpu@1 { cpu1: cpu@1 {
...@@ -58,6 +148,7 @@ cpu1: cpu@1 { ...@@ -58,6 +148,7 @@ cpu1: cpu@1 {
reg = <0x1>; reg = <0x1>;
#cooling-cells = <2>; #cooling-cells = <2>;
enable-method = "psci"; enable-method = "psci";
cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
i-cache-size = <0x8000>; i-cache-size = <0x8000>;
i-cache-line-size = <64>; i-cache-line-size = <64>;
i-cache-sets = <256>; i-cache-sets = <256>;
...@@ -65,6 +156,10 @@ cpu1: cpu@1 { ...@@ -65,6 +156,10 @@ cpu1: cpu@1 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2>; next-level-cache = <&l2>;
clocks = <&mcucfg CLK_MCU_BUS_SEL>,
<&apmixedsys CLK_APMIXED_MAINPLL>;
clock-names = "cpu", "intermediate", "armpll";
operating-points-v2 = <&cluster0_opp>;
}; };
cpu2: cpu@2 { cpu2: cpu@2 {
...@@ -73,6 +168,7 @@ cpu2: cpu@2 { ...@@ -73,6 +168,7 @@ cpu2: cpu@2 {
reg = <0x2>; reg = <0x2>;
#cooling-cells = <2>; #cooling-cells = <2>;
enable-method = "psci"; enable-method = "psci";
cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
i-cache-size = <0x8000>; i-cache-size = <0x8000>;
i-cache-line-size = <64>; i-cache-line-size = <64>;
i-cache-sets = <256>; i-cache-sets = <256>;
...@@ -80,6 +176,10 @@ cpu2: cpu@2 { ...@@ -80,6 +176,10 @@ cpu2: cpu@2 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2>; next-level-cache = <&l2>;
clocks = <&mcucfg CLK_MCU_BUS_SEL>,
<&apmixedsys CLK_APMIXED_MAINPLL>;
clock-names = "cpu", "intermediate", "armpll";
operating-points-v2 = <&cluster0_opp>;
}; };
cpu3: cpu@3 { cpu3: cpu@3 {
...@@ -88,6 +188,7 @@ cpu3: cpu@3 { ...@@ -88,6 +188,7 @@ cpu3: cpu@3 {
reg = <0x3>; reg = <0x3>;
#cooling-cells = <2>; #cooling-cells = <2>;
enable-method = "psci"; enable-method = "psci";
cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
i-cache-size = <0x8000>; i-cache-size = <0x8000>;
i-cache-line-size = <64>; i-cache-line-size = <64>;
i-cache-sets = <256>; i-cache-sets = <256>;
...@@ -95,6 +196,41 @@ cpu3: cpu@3 { ...@@ -95,6 +196,41 @@ cpu3: cpu@3 {
d-cache-line-size = <64>; d-cache-line-size = <64>;
d-cache-sets = <256>; d-cache-sets = <256>;
next-level-cache = <&l2>; next-level-cache = <&l2>;
clocks = <&mcucfg CLK_MCU_BUS_SEL>,
<&apmixedsys CLK_APMIXED_MAINPLL>;
clock-names = "cpu", "intermediate", "armpll";
operating-points-v2 = <&cluster0_opp>;
};
idle-states {
entry-method = "psci";
CPU_MCDI: cpu-mcdi {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = <0x00010001>;
entry-latency-us = <300>;
exit-latency-us = <200>;
min-residency-us = <1000>;
};
CLUSTER_MCDI: cluster-mcdi {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = <0x01010001>;
entry-latency-us = <350>;
exit-latency-us = <250>;
min-residency-us = <1200>;
};
CLUSTER_DPIDLE: cluster-dpidle {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = <0x01010004>;
entry-latency-us = <300>;
exit-latency-us = <800>;
min-residency-us = <3300>;
};
}; };
l2: l2-cache { l2: l2-cache {
...@@ -162,6 +298,12 @@ syscfg_pctl: syscfg-pctl@10005000 { ...@@ -162,6 +298,12 @@ syscfg_pctl: syscfg-pctl@10005000 {
reg = <0 0x10005000 0 0x1000>; reg = <0 0x10005000 0 0x1000>;
}; };
watchdog: watchdog@10007000 {
compatible = "mediatek,mt8365-wdt", "mediatek,mt6589-wdt";
reg = <0 0x10007000 0 0x100>;
#reset-cells = <1>;
};
pio: pinctrl@1000b000 { pio: pinctrl@1000b000 {
compatible = "mediatek,mt8365-pinctrl"; compatible = "mediatek,mt8365-pinctrl";
reg = <0 0x1000b000 0 0x1000>; reg = <0 0x1000b000 0 0x1000>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment