Additional MediaTek ARM64 DTS updates for v6.16

This addresses devicetree binding warnings happening on	the
MDP3 nodes in mt8188 dts, reverts the commit adding the SCP
firmware-name as strongly suggested by Arnd, and also adds
some more late commits.

In particular:
 - MT6359 PMIC
   - Renamed PMIC RTC node to fix dtbs_check warning
 - MT7988(A)
   - Support for SPI controllers was added to SoC and BPI-R4
   - Support for XSPHY, USB and	PCIe2 was added	as well
   - Fan and cooling maps were added to	BPI-R4 machine
   - Added BananaPi R4 2G5 machine variant
 - MT8365
   - Added touchscreen support to MT8365 Genio EVK
 - MT8188
   - Addressed dtbs_check warnings for MDP3 nodes
 - MT8390 (Genio)
   - Reverted SCP firmware-name	addition

* tag 'mtk-dts64-for-v6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux: (42 commits)
  Revert "arm64: dts: mediatek: mt8390-genio-common: Add firmware-name for scp0"
  arm64: dts: mediatek: mt8188: Address binding warnings for MDP3 nodes
  arm64: dts: mt6359: Rename RTC node to match binding expectations
  arm64: dts: mt8365-evk: Add goodix touchscreen support
  arm64: dts: mediatek: mt8188: Add missing #reset-cells property
  arm64: dts: airoha: en7581: Add PCIe nodes to EN7581 SoC evaluation board
  arm64: dts: airoha: en7581: Add gpio-ranges property for gpio controller
  arm64: dts: mediatek: mt7988a-bpi-r4: configure spi-nodes
  arm64: dts: mediatek: mt7988a-bpi-r4: Add fan and coolingmaps
  arm64: dts: mediatek: mt7988: add phy calibration efuse subnodes
  arm64: dts: mediatek: mt7988: move uart0 and spi1 pins to soc dtsi
  arm64: dts: mediatek: mt7988: add spi controllers
  arm64: dts: mediatek: mt7988a-bpi-r4: enable xsphy
  arm64: dts: mediatek: mt7988: Add xsphy for ssusb0/pcie2
  arm64: dts: mediatek: mt7988a-bpi-r4: allow hw variants of bpi-r4
  dt-bindings: arm: mediatek: add bpi-r4 2g5 phy variant
  arm64: dts: mt6359: Add missing 'compatible' property to regulators node
  arm/arm64: dts: mediatek: Add missing "#sound-dai-cells" to linux,bt-sco
  arm64: dts: mediatek: mt8390-genio-common: Set ssusb2 default dual role mode to host
  arm64: dts: mediatek: mt8395-genio-1200-evk: Disable unused backlight
  ...

Link: https://lore.kernel.org/r/20250520114356.1194450-1-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann
2025-05-22 00:12:54 +02:00
38 changed files with 4555 additions and 527 deletions

View File

@@ -104,6 +104,10 @@ properties:
- enum:
- bananapi,bpi-r4
- const: mediatek,mt7988a
- items:
- const: bananapi,bpi-r4-2g5
- const: bananapi,bpi-r4
- const: mediatek,mt7988a
- items:
- enum:
- mediatek,mt8127-moose
@@ -285,6 +289,13 @@ properties:
- const: google,steelix-sku393218
- const: google,steelix
- const: mediatek,mt8186
- description: Google Ponyta
items:
- enum:
- google,ponyta-sku0
- google,ponyta-sku1
- const: google,ponyta
- const: mediatek,mt8186
- description: Google Rusty (Lenovo 100e Chromebook Gen 4)
items:
- const: google,steelix-sku196609

View File

@@ -25,6 +25,10 @@ properties:
- mediatek,mt8173-disp-aal
- mediatek,mt8183-disp-aal
- mediatek,mt8195-mdp3-aal
- items:
- enum:
- mediatek,mt8188-mdp3-aal
- const: mediatek,mt8195-mdp3-aal
- items:
- enum:
- mediatek,mt2712-disp-aal

View File

@@ -27,6 +27,10 @@ properties:
- mediatek,mt8167-disp-color
- mediatek,mt8173-disp-color
- mediatek,mt8195-mdp3-color
- items:
- enum:
- mediatek,mt8188-mdp3-color
- const: mediatek,mt8195-mdp3-color
- items:
- enum:
- mediatek,mt7623-disp-color

View File

@@ -25,6 +25,10 @@ properties:
- mediatek,mt8173-disp-merge
- mediatek,mt8195-disp-merge
- mediatek,mt8195-mdp3-merge
- items:
- enum:
- mediatek,mt8188-mdp3-merge
- const: mediatek,mt8195-mdp3-merge
- items:
- const: mediatek,mt6795-disp-merge
- const: mediatek,mt8173-disp-merge

View File

@@ -20,9 +20,13 @@ description:
properties:
compatible:
enum:
- mediatek,mt8188-disp-padding
- mediatek,mt8195-mdp3-padding
oneOf:
- enum:
- mediatek,mt8188-disp-padding
- mediatek,mt8195-mdp3-padding
- items:
- const: mediatek,mt8188-mdp3-padding
- const: mediatek,mt8195-mdp3-padding
reg:
maxItems: 1

View File

@@ -16,8 +16,12 @@ description:
properties:
compatible:
enum:
- mediatek,mt8195-mdp3-fg
oneOf:
- enum:
- mediatek,mt8195-mdp3-fg
- items:
- const: mediatek,mt8188-mdp3-fg
- const: mediatek,mt8195-mdp3-fg
reg:
maxItems: 1

View File

@@ -16,8 +16,12 @@ description:
properties:
compatible:
enum:
- mediatek,mt8195-mdp3-hdr
oneOf:
- enum:
- mediatek,mt8195-mdp3-hdr
- items:
- const: mediatek,mt8188-mdp3-hdr
- const: mediatek,mt8195-mdp3-hdr
reg:
maxItems: 1

View File

@@ -20,6 +20,7 @@ properties:
- mediatek,mt8183-mdp3-rsz
- items:
- enum:
- mediatek,mt8188-mdp3-rsz
- mediatek,mt8195-mdp3-rsz
- const: mediatek,mt8183-mdp3-rsz

View File

@@ -16,8 +16,12 @@ description:
properties:
compatible:
enum:
- mediatek,mt8195-mdp3-stitch
oneOf:
- enum:
- mediatek,mt8195-mdp3-stitch
- items:
- const: mediatek,mt8188-mdp3-stitch
- const: mediatek,mt8195-mdp3-stitch
reg:
maxItems: 1

View File

@@ -17,8 +17,12 @@ description:
properties:
compatible:
enum:
- mediatek,mt8195-mdp3-tcc
oneOf:
- enum:
- mediatek,mt8195-mdp3-tcc
- items:
- const: mediatek,mt8188-mdp3-tcc
- const: mediatek,mt8195-mdp3-tcc
reg:
maxItems: 1

View File

@@ -16,8 +16,12 @@ description:
properties:
compatible:
enum:
- mediatek,mt8195-mdp3-tdshp
oneOf:
- enum:
- mediatek,mt8195-mdp3-tdshp
- items:
- const: mediatek,mt8188-mdp3-tdshp
- const: mediatek,mt8195-mdp3-tdshp
reg:
maxItems: 1

View File

@@ -20,6 +20,7 @@ properties:
- mediatek,mt8183-mdp3-wrot
- items:
- enum:
- mediatek,mt8188-mdp3-wrot
- mediatek,mt8195-mdp3-wrot
- const: mediatek,mt8183-mdp3-wrot

View File

@@ -50,6 +50,7 @@ sound:sound {
bt_sco_codec:bt_sco_codec {
compatible = "linux,bt-sco";
#sound-dai-cells = <0>;
};
backlight_lcd: backlight_lcd {

View File

@@ -65,6 +65,36 @@ reserved_bmt@7e00000 {
};
};
&en7581_pinctrl {
gpio-ranges = <&en7581_pinctrl 0 13 47>;
pcie0_rst_pins: pcie0-rst-pins {
conf {
pins = "pcie_reset0";
drive-open-drain = <1>;
};
};
pcie1_rst_pins: pcie1-rst-pins {
conf {
pins = "pcie_reset1";
drive-open-drain = <1>;
};
};
};
&pcie0 {
pinctrl-names = "default";
pinctrl-0 = <&pcie0_rst_pins>;
status = "okay";
};
&pcie1 {
pinctrl-names = "default";
pinctrl-0 = <&pcie1_rst_pins>;
status = "okay";
};
&i2c0 {
status = "okay";
};

View File

@@ -180,6 +180,111 @@ scuclk: clock-controller@1fb00000 {
#reset-cells = <1>;
};
pbus_csr: syscon@1fbe3400 {
compatible = "airoha,en7581-pbus-csr", "syscon";
reg = <0x0 0x1fbe3400 0x0 0xff>;
};
pciephy: phy@1fa5a000 {
compatible = "airoha,en7581-pcie-phy";
reg = <0x0 0x1fa5a000 0x0 0xfff>,
<0x0 0x1fa5b000 0x0 0xfff>,
<0x0 0x1fa5c000 0x0 0xfff>,
<0x0 0x1fc10044 0x0 0x4>,
<0x0 0x1fc30044 0x0 0x4>,
<0x0 0x1fc15030 0x0 0x104>;
reg-names = "csr-2l", "pma0", "pma1",
"p0-xr-dtime", "p1-xr-dtime",
"rx-aeq";
#phy-cells = <0>;
};
pcie0: pcie@1fc00000 {
compatible = "airoha,en7581-pcie";
device_type = "pci";
linux,pci-domain = <0>;
#address-cells = <3>;
#size-cells = <2>;
reg = <0x0 0x1fc00000 0x0 0x1670>;
reg-names = "pcie-mac";
clocks = <&scuclk EN7523_CLK_PCIE>;
clock-names = "sys-ck";
phys = <&pciephy>;
phy-names = "pcie-phy";
ranges = <0x02000000 0 0x20000000 0x0 0x20000000 0 0x4000000>;
resets = <&scuclk EN7581_PCIE0_RST>,
<&scuclk EN7581_PCIE1_RST>,
<&scuclk EN7581_PCIE2_RST>;
reset-names = "phy-lane0", "phy-lane1", "phy-lane2";
mediatek,pbus-csr = <&pbus_csr 0x0 0x4>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
bus-range = <0x00 0xff>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc0 0>,
<0 0 0 2 &pcie_intc0 1>,
<0 0 0 3 &pcie_intc0 2>,
<0 0 0 4 &pcie_intc0 3>;
status = "disabled";
pcie_intc0: interrupt-controller {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
};
};
pcie1: pcie@1fc20000 {
compatible = "airoha,en7581-pcie";
device_type = "pci";
linux,pci-domain = <1>;
#address-cells = <3>;
#size-cells = <2>;
reg = <0x0 0x1fc20000 0x0 0x1670>;
reg-names = "pcie-mac";
clocks = <&scuclk EN7523_CLK_PCIE>;
clock-names = "sys-ck";
phys = <&pciephy>;
phy-names = "pcie-phy";
ranges = <0x02000000 0 0x24000000 0x0 0x24000000 0 0x4000000>;
resets = <&scuclk EN7581_PCIE0_RST>,
<&scuclk EN7581_PCIE1_RST>,
<&scuclk EN7581_PCIE2_RST>;
reset-names = "phy-lane0", "phy-lane1", "phy-lane2";
mediatek,pbus-csr = <&pbus_csr 0x8 0xc>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
bus-range = <0x00 0xff>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc1 0>,
<0 0 0 2 &pcie_intc1 1>,
<0 0 0 3 &pcie_intc1 2>,
<0 0 0 4 &pcie_intc1 3>;
status = "disabled";
pcie_intc1: interrupt-controller {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
};
};
uart1: serial@1fbf0000 {
compatible = "ns16550";
reg = <0x0 0x1fbf0000 0x0 0x30>;

View File

@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
@@ -64,6 +65,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku16.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-magneton-sku393216.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-magneton-sku393217.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-magneton-sku393218.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-ponyta-sku0.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-ponyta-sku1.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-rusty-sku196608.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-starmie-sku0.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-starmie-sku1.dtb
@@ -107,4 +110,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
DTC_FLAGS_mt7986a-bananapi-bpi-r3 := -@
DTC_FLAGS_mt7986a-bananapi-bpi-r3-mini := -@
DTC_FLAGS_mt7988a-bananapi-bpi-r4 := -@
DTC_FLAGS_mt7988a-bananapi-bpi-r4-2g5 := -@
DTC_FLAGS_mt8395-radxa-nio-12l := -@

View File

@@ -60,7 +60,6 @@ mt6357_vpa_reg: buck-vpa {
};
mt6357_vfe28_reg: ldo-vfe28 {
compatible = "regulator-fixed";
regulator-name = "vfe28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -75,7 +74,6 @@ mt6357_vxo22_reg: ldo-vxo22 {
};
mt6357_vrf18_reg: ldo-vrf18 {
compatible = "regulator-fixed";
regulator-name = "vrf18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
@@ -83,7 +81,6 @@ mt6357_vrf18_reg: ldo-vrf18 {
};
mt6357_vrf12_reg: ldo-vrf12 {
compatible = "regulator-fixed";
regulator-name = "vrf12";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
@@ -112,7 +109,6 @@ mt6357_vcn33_wifi_reg: ldo-vcn33-wifi {
};
mt6357_vcn28_reg: ldo-vcn28 {
compatible = "regulator-fixed";
regulator-name = "vcn28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -120,7 +116,6 @@ mt6357_vcn28_reg: ldo-vcn28 {
};
mt6357_vcn18_reg: ldo-vcn18 {
compatible = "regulator-fixed";
regulator-name = "vcn18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
@@ -142,7 +137,6 @@ mt6357_vcamd_reg: ldo-vcamd {
};
mt6357_vcamio_reg: ldo-vcamio18 {
compatible = "regulator-fixed";
regulator-name = "vcamio";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
@@ -175,7 +169,6 @@ mt6357_vsram_proc_reg: ldo-vsram-proc {
};
mt6357_vaux18_reg: ldo-vaux18 {
compatible = "regulator-fixed";
regulator-name = "vaux18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
@@ -183,7 +176,6 @@ mt6357_vaux18_reg: ldo-vaux18 {
};
mt6357_vaud28_reg: ldo-vaud28 {
compatible = "regulator-fixed";
regulator-name = "vaud28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -191,7 +183,6 @@ mt6357_vaud28_reg: ldo-vaud28 {
};
mt6357_vio28_reg: ldo-vio28 {
compatible = "regulator-fixed";
regulator-name = "vio28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -199,7 +190,6 @@ mt6357_vio28_reg: ldo-vio28 {
};
mt6357_vio18_reg: ldo-vio18 {
compatible = "regulator-fixed";
regulator-name = "vio18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;

View File

@@ -20,6 +20,8 @@ mt6359codec: audio-codec {
};
regulators {
compatible = "mediatek,mt6359-regulator";
mt6359_vs1_buck_reg: buck_vs1 {
regulator-name = "vs1";
regulator-min-microvolt = <800000>;
@@ -298,7 +300,7 @@ mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub {
};
};
mt6359rtc: mt6359rtc {
mt6359rtc: rtc {
compatible = "mediatek,mt6358-rtc";
};
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/dts-v1/;
#include "mt7988a-bananapi-bpi-r4.dtsi"
/ {
compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";
model = "Banana Pi BPI-R4 (1x SFP+, 1x 2.5GbE)";
chassis-type = "embedded";
};

View File

@@ -2,408 +2,18 @@
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
#include "mt7988a.dtsi"
#include "mt7988a-bananapi-bpi-r4.dtsi"
/ {
compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
model = "Banana Pi BPI-R4";
model = "Banana Pi BPI-R4 (2x SFP+)";
chassis-type = "embedded";
chosen {
stdout-path = "serial0:115200n8";
};
reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "fixed-3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
&cpu0 {
proc-supply = <&rt5190_buck3>;
};
&cpu1 {
proc-supply = <&rt5190_buck3>;
};
&cpu2 {
proc-supply = <&rt5190_buck3>;
};
&cpu3 {
proc-supply = <&rt5190_buck3>;
};
&cpu_thermal {
trips {
cpu_trip_hot: hot {
temperature = <120000>;
hysteresis = <2000>;
type = "hot";
};
cpu_trip_active_high: active-high {
temperature = <115000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_med: active-med {
temperature = <85000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_low: active-low {
temperature = <40000>;
hysteresis = <2000>;
type = "active";
};
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
rt5190a_64: rt5190a@64 {
compatible = "richtek,rt5190a";
reg = <0x64>;
vin2-supply = <&rt5190_buck1>;
vin3-supply = <&rt5190_buck1>;
vin4-supply = <&rt5190_buck1>;
regulators {
rt5190_buck1: buck1 {
regulator-name = "rt5190a-buck1";
regulator-min-microvolt = <5090000>;
regulator-max-microvolt = <5090000>;
regulator-allowed-modes =
<RT5190A_OPMODE_AUTO>, <RT5190A_OPMODE_FPWM>;
regulator-boot-on;
regulator-always-on;
};
buck2 {
regulator-name = "vcore";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
regulator-always-on;
};
rt5190_buck3: buck3 {
regulator-name = "vproc";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
};
buck4 {
regulator-name = "rt5190a-buck4";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-allowed-modes =
<RT5190A_OPMODE_AUTO>, <RT5190A_OPMODE_FPWM>;
regulator-boot-on;
regulator-always-on;
};
ldo {
regulator-name = "rt5190a-ldo";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
&i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_1_pins>;
status = "okay";
pca9545: i2c-mux@70 {
compatible = "nxp,pca9545";
reg = <0x70>;
reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>;
&pca9545 {
i2c_sfp2: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
pcf8563: rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
#clock-cells = <0>;
};
eeprom@57 {
compatible = "atmel,24c02";
reg = <0x57>;
size = <256>;
};
};
i2c_sfp1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
i2c_sfp2: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
reg = <2>;
};
};
/* mPCIe SIM2 */
&pcie0 {
status = "okay";
};
/* mPCIe SIM3 */
&pcie1 {
status = "okay";
};
/* M.2 key-B SIM1 */
&pcie2 {
status = "okay";
};
/* M.2 key-M SSD */
&pcie3 {
status = "okay";
};
&pio {
mdio0_pins: mdio0-pins {
mux {
function = "eth";
groups = "mdc_mdio0";
};
conf {
pins = "SMI_0_MDC", "SMI_0_MDIO";
drive-strength = <8>;
};
};
i2c0_pins: i2c0-g0-pins {
mux {
function = "i2c";
groups = "i2c0_1";
};
};
i2c1_pins: i2c1-g0-pins {
mux {
function = "i2c";
groups = "i2c1_0";
};
};
i2c1_sfp_pins: i2c1-sfp-g0-pins {
mux {
function = "i2c";
groups = "i2c1_sfp";
};
};
i2c2_0_pins: i2c2-g0-pins {
mux {
function = "i2c";
groups = "i2c2_0";
};
};
i2c2_1_pins: i2c2-g1-pins {
mux {
function = "i2c";
groups = "i2c2_1";
};
};
gbe0_led0_pins: gbe0-led0-pins {
mux {
function = "led";
groups = "gbe0_led0";
};
};
gbe1_led0_pins: gbe1-led0-pins {
mux {
function = "led";
groups = "gbe1_led0";
};
};
gbe2_led0_pins: gbe2-led0-pins {
mux {
function = "led";
groups = "gbe2_led0";
};
};
gbe3_led0_pins: gbe3-led0-pins {
mux {
function = "led";
groups = "gbe3_led0";
};
};
gbe0_led1_pins: gbe0-led1-pins {
mux {
function = "led";
groups = "gbe0_led1";
};
};
gbe1_led1_pins: gbe1-led1-pins {
mux {
function = "led";
groups = "gbe1_led1";
};
};
gbe2_led1_pins: gbe2-led1-pins {
mux {
function = "led";
groups = "gbe2_led1";
};
};
gbe3_led1_pins: gbe3-led1-pins {
mux {
function = "led";
groups = "gbe3_led1";
};
};
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
mux {
function = "led";
groups = "2p5gbe_led0";
};
};
i2p5gbe_led1_pins: 2p5gbe-led1-pins {
mux {
function = "led";
groups = "2p5gbe_led1";
};
};
mmc0_pins_emmc_45: mmc0-emmc-45-pins {
mux {
function = "flash";
groups = "emmc_45";
};
};
mmc0_pins_emmc_51: mmc0-emmc-51-pins {
mux {
function = "flash";
groups = "emmc_51";
};
};
mmc0_pins_sdcard: mmc0-sdcard-pins {
mux {
function = "flash";
groups = "sdcard";
};
};
uart0_pins: uart0-pins {
mux {
function = "uart";
groups = "uart0";
};
};
snfi_pins: snfi-pins {
mux {
function = "flash";
groups = "snfi";
};
};
spi0_pins: spi0-pins {
mux {
function = "spi";
groups = "spi0";
};
};
spi0_flash_pins: spi0-flash-pins {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
};
spi1_pins: spi1-pins {
mux {
function = "spi";
groups = "spi1";
};
};
spi2_pins: spi2-pins {
mux {
function = "spi";
groups = "spi2";
};
};
spi2_flash_pins: spi2-flash-pins {
mux {
function = "spi";
groups = "spi2", "spi2_wp_hold";
};
};
};
&pwm {
status = "okay";
};
&serial0 {
status = "okay";
};
&ssusb1 {
status = "okay";
};
&tphy {
status = "okay";
};
&watchdog {
status = "okay";
};

View File

@@ -0,0 +1,450 @@
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
#include "mt7988a.dtsi"
/ {
chosen {
stdout-path = "serial0:115200n8";
};
fan: pwm-fan {
compatible = "pwm-fan";
/* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
cooling-levels = <0 80 128 255>;
#cooling-cells = <2>;
pwms = <&pwm 0 50000>;
status = "okay";
};
reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "fixed-3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
&cpu0 {
proc-supply = <&rt5190_buck3>;
};
&cpu1 {
proc-supply = <&rt5190_buck3>;
};
&cpu2 {
proc-supply = <&rt5190_buck3>;
};
&cpu3 {
proc-supply = <&rt5190_buck3>;
};
&cpu_thermal {
trips {
cpu_trip_hot: hot {
temperature = <120000>;
hysteresis = <2000>;
type = "hot";
};
cpu_trip_active_high: active-high {
temperature = <115000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_med: active-med {
temperature = <85000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_low: active-low {
temperature = <40000>;
hysteresis = <2000>;
type = "active";
};
};
cooling-maps {
map-cpu-active-high {
/* active: set fan to cooling level 2 */
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_active_high>;
};
map-cpu-active-med {
/* active: set fan to cooling level 1 */
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_active_med>;
};
map-cpu-active-low {
/* active: set fan to cooling level 0 */
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active_low>;
};
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
rt5190a_64: rt5190a@64 {
compatible = "richtek,rt5190a";
reg = <0x64>;
vin2-supply = <&rt5190_buck1>;
vin3-supply = <&rt5190_buck1>;
vin4-supply = <&rt5190_buck1>;
regulators {
rt5190_buck1: buck1 {
regulator-name = "rt5190a-buck1";
regulator-min-microvolt = <5090000>;
regulator-max-microvolt = <5090000>;
regulator-allowed-modes =
<RT5190A_OPMODE_AUTO>, <RT5190A_OPMODE_FPWM>;
regulator-boot-on;
regulator-always-on;
};
buck2 {
regulator-name = "vcore";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
regulator-always-on;
};
rt5190_buck3: buck3 {
regulator-name = "vproc";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
};
buck4 {
regulator-name = "rt5190a-buck4";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-allowed-modes =
<RT5190A_OPMODE_AUTO>, <RT5190A_OPMODE_FPWM>;
regulator-boot-on;
regulator-always-on;
};
ldo {
regulator-name = "rt5190a-ldo";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
&i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_1_pins>;
status = "okay";
pca9545: i2c-mux@70 {
compatible = "nxp,pca9545";
reg = <0x70>;
reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>;
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
pcf8563: rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
#clock-cells = <0>;
};
eeprom@57 {
compatible = "atmel,24c02";
reg = <0x57>;
size = <256>;
};
};
i2c_sfp1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
/* mPCIe SIM2 */
&pcie0 {
status = "okay";
};
/* mPCIe SIM3 */
&pcie1 {
status = "okay";
};
/* M.2 key-B SIM1 */
&pcie2 {
status = "okay";
};
/* M.2 key-M SSD */
&pcie3 {
status = "okay";
};
&pio {
mdio0_pins: mdio0-pins {
mux {
function = "eth";
groups = "mdc_mdio0";
};
conf {
pins = "SMI_0_MDC", "SMI_0_MDIO";
drive-strength = <8>;
};
};
i2c0_pins: i2c0-g0-pins {
mux {
function = "i2c";
groups = "i2c0_1";
};
};
i2c1_pins: i2c1-g0-pins {
mux {
function = "i2c";
groups = "i2c1_0";
};
};
i2c1_sfp_pins: i2c1-sfp-g0-pins {
mux {
function = "i2c";
groups = "i2c1_sfp";
};
};
i2c2_0_pins: i2c2-g0-pins {
mux {
function = "i2c";
groups = "i2c2_0";
};
};
i2c2_1_pins: i2c2-g1-pins {
mux {
function = "i2c";
groups = "i2c2_1";
};
};
gbe0_led0_pins: gbe0-led0-pins {
mux {
function = "led";
groups = "gbe0_led0";
};
};
gbe1_led0_pins: gbe1-led0-pins {
mux {
function = "led";
groups = "gbe1_led0";
};
};
gbe2_led0_pins: gbe2-led0-pins {
mux {
function = "led";
groups = "gbe2_led0";
};
};
gbe3_led0_pins: gbe3-led0-pins {
mux {
function = "led";
groups = "gbe3_led0";
};
};
gbe0_led1_pins: gbe0-led1-pins {
mux {
function = "led";
groups = "gbe0_led1";
};
};
gbe1_led1_pins: gbe1-led1-pins {
mux {
function = "led";
groups = "gbe1_led1";
};
};
gbe2_led1_pins: gbe2-led1-pins {
mux {
function = "led";
groups = "gbe2_led1";
};
};
gbe3_led1_pins: gbe3-led1-pins {
mux {
function = "led";
groups = "gbe3_led1";
};
};
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
mux {
function = "led";
groups = "2p5gbe_led0";
};
};
i2p5gbe_led1_pins: 2p5gbe-led1-pins {
mux {
function = "led";
groups = "2p5gbe_led1";
};
};
mmc0_pins_emmc_45: mmc0-emmc-45-pins {
mux {
function = "flash";
groups = "emmc_45";
};
};
mmc0_pins_emmc_51: mmc0-emmc-51-pins {
mux {
function = "flash";
groups = "emmc_51";
};
};
mmc0_pins_sdcard: mmc0-sdcard-pins {
mux {
function = "flash";
groups = "sdcard";
};
};
snfi_pins: snfi-pins {
mux {
function = "flash";
groups = "snfi";
};
};
spi0_pins: spi0-pins {
mux {
function = "spi";
groups = "spi0";
};
};
spi0_flash_pins: spi0-flash-pins {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
};
spi2_pins: spi2-pins {
mux {
function = "spi";
groups = "spi2";
};
};
spi2_flash_pins: spi2-flash-pins {
mux {
function = "spi";
groups = "spi2", "spi2_wp_hold";
};
};
};
&pwm {
status = "okay";
};
&serial0 {
status = "okay";
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_flash_pins>;
status = "okay";
spi_nand: flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <52000000>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
};
};
&spi1 {
status = "okay";
};
&spi_nand {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bl2";
reg = <0x0 0x200000>;
read-only;
};
};
};
&ssusb1 {
status = "okay";
};
&tphy {
status = "okay";
};
&watchdog {
status = "okay";
};
&xsphy {
status = "okay";
};

View File

@@ -209,6 +209,20 @@ mux {
"pcie_wake_n3_0";
};
};
spi1_pins: spi1-pins {
mux {
function = "spi";
groups = "spi1";
};
};
uart0_pins: uart0-pins {
mux {
function = "uart";
groups = "uart0";
};
};
};
pwm: pwm@10048000 {
@@ -244,6 +258,8 @@ serial0: serial@11000000 {
clocks = <&topckgen CLK_TOP_UART_SEL>,
<&infracfg CLK_INFRA_52M_UART0_CK>;
clock-names = "baud", "bus";
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
status = "disabled";
};
@@ -311,6 +327,53 @@ i2c2: i2c@11005000 {
status = "disabled";
};
spi0: spi@11007000 {
compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
reg = <0 0x11007000 0 0x100>;
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_MPLL_D2>,
<&topckgen CLK_TOP_SPI_SEL>,
<&infracfg CLK_INFRA_104M_SPI0>,
<&infracfg CLK_INFRA_66M_SPI0_HCK>;
clock-names = "parent-clk", "sel-clk", "spi-clk",
"hclk";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
spi1: spi@11008000 {
compatible = "mediatek,mt7988-spi-single", "mediatek,spi-ipm";
reg = <0 0x11008000 0 0x100>;
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_MPLL_D2>,
<&topckgen CLK_TOP_SPIM_MST_SEL>,
<&infracfg CLK_INFRA_104M_SPI1>,
<&infracfg CLK_INFRA_66M_SPI1_HCK>;
clock-names = "parent-clk", "sel-clk", "spi-clk",
"hclk";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&spi1_pins>;
status = "disabled";
};
spi2: spi@11009000 {
compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
reg = <0 0x11009000 0 0x100>;
interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_MPLL_D2>,
<&topckgen CLK_TOP_SPI_SEL>,
<&infracfg CLK_INFRA_104M_SPI2_BCK>,
<&infracfg CLK_INFRA_66M_SPI2_HCK>;
clock-names = "parent-clk", "sel-clk", "spi-clk",
"hclk";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
lvts: lvts@1100a000 {
compatible = "mediatek,mt7988-lvts-ap";
#thermal-sensor-cells = <1>;
@@ -334,6 +397,8 @@ usb@11190000 {
<&infracfg CLK_INFRA_133M_USB_HCK>,
<&infracfg CLK_INFRA_USB_XHCI>;
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
phys = <&xphyu2port0 PHY_TYPE_USB2>,
<&xphyu3port0 PHY_TYPE_USB3>;
status = "disabled";
};
@@ -398,6 +463,9 @@ pcie2: pcie@11280000 {
pinctrl-0 = <&pcie2_pins>;
status = "disabled";
phys = <&xphyu3port0 PHY_TYPE_PCIE>;
phy-names = "pcie-phy";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &pcie_intc2 0>,
@@ -548,6 +616,37 @@ tphyu3port0: usb-phy@11c50700 {
};
};
topmisc: system-controller@11d10084 {
compatible = "mediatek,mt7988-topmisc",
"syscon";
reg = <0 0x11d10084 0 0xff80>;
};
xsphy: xs-phy@11e10000 {
compatible = "mediatek,mt7988-xsphy",
"mediatek,xsphy";
#address-cells = <2>;
#size-cells = <2>;
ranges;
status = "disabled";
xphyu2port0: usb-phy@11e10000 {
reg = <0 0x11e10000 0 0x400>;
clocks = <&infracfg CLK_INFRA_USB_UTMI>;
clock-names = "ref";
#phy-cells = <1>;
};
xphyu3port0: usb-phy@11e13000 {
reg = <0 0x11e13400 0 0x500>;
clocks = <&infracfg CLK_INFRA_USB_PIPE>;
clock-names = "ref";
#phy-cells = <1>;
mediatek,syscon-type = <&topmisc 0x194 0>;
};
};
clock-controller@11f40000 {
compatible = "mediatek,mt7988-xfi-pll";
reg = <0 0x11f40000 0 0x1000>;
@@ -564,6 +663,22 @@ efuse@11f50000 {
lvts_calibration: calib@918 {
reg = <0x918 0x28>;
};
phy_calibration_p0: calib@940 {
reg = <0x940 0x10>;
};
phy_calibration_p1: calib@954 {
reg = <0x954 0x10>;
};
phy_calibration_p2: calib@968 {
reg = <0x968 0x10>;
};
phy_calibration_p3: calib@97c {
reg = <0x97c 0x10>;
};
};
clock-controller@15000000 {

View File

@@ -105,6 +105,7 @@ sound: mt8183-sound {
btsco: bt-sco {
compatible = "linux,bt-sco";
#sound-dai-cells = <0>;
};
wifi_pwrseq: wifi-pwrseq {
@@ -259,14 +260,10 @@ panel_in: endpoint {
};
};
};
};
ports {
port {
dsi_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
&dsi_out {
remote-endpoint = <&panel_in>;
};
&gic {

View File

@@ -1836,6 +1836,10 @@ dsi0: dsi@14014000 {
phys = <&mipi_tx0>;
phy-names = "dphy";
status = "disabled";
port {
dsi_out: endpoint { };
};
};
dpi0: dpi@14015000 {

View File

@@ -0,0 +1,18 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright 2023 Google LLC
*/
/dts-v1/;
#include "mt8186-corsola-ponyta.dtsi"
/ {
model = "Google Ponyta sku0 board";
compatible = "google,ponyta-sku0", "google,ponyta", "mediatek,mt8186";
};
&i2c2 {
trackpad@15 {
status = "disabled";
};
};

View File

@@ -0,0 +1,22 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright 2023 Google LLC
*/
/dts-v1/;
#include "mt8186-corsola-ponyta.dtsi"
/ {
model = "Google Ponyta sku1 board";
compatible = "google,ponyta-sku1", "google,ponyta", "mediatek,mt8186";
};
&i2c2 {
trackpad@2c {
status = "disabled";
};
};
&usb_c1 {
status = "disabled";
};

View File

@@ -0,0 +1,49 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright 2023 Google LLC
*/
/dts-v1/;
#include "mt8186-corsola-steelix.dtsi"
&keyboard_controller {
function-row-physmap = <
MATRIX_KEY(0x00, 0x02, 0) /* T1 */
MATRIX_KEY(0x03, 0x02, 0) /* T2 */
MATRIX_KEY(0x02, 0x02, 0) /* T3 */
MATRIX_KEY(0x01, 0x02, 0) /* T4 */
MATRIX_KEY(0x03, 0x04, 0) /* T5 */
MATRIX_KEY(0x02, 0x04, 0) /* T6 */
MATRIX_KEY(0x01, 0x04, 0) /* T7 */
MATRIX_KEY(0x00, 0x04, 0) /* T8 */
MATRIX_KEY(0x00, 0x01, 0) /* T9 */
MATRIX_KEY(0x02, 0x09, 0) /* T10 */
MATRIX_KEY(0x01, 0x09, 0) /* T11 */
MATRIX_KEY(0x01, 0x05, 0) /* T12 */
>;
linux,keymap = <
CROS_STD_MAIN_KEYMAP
MATRIX_KEY(0x00, 0x02, KEY_BACK)
MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
MATRIX_KEY(0x01, 0x02, KEY_SCALE)
MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
MATRIX_KEY(0x00, 0x04, KEY_PLAYPAUSE)
MATRIX_KEY(0x00, 0x01, KEY_MICMUTE)
MATRIX_KEY(0x02, 0x09, KEY_MUTE)
MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
MATRIX_KEY(0x01, 0x05, KEY_VOLUMEUP)
>;
};
&mt6366codec {
mediatek,dmic-mode = <1>; /* one-wire */
};
&sound {
model = "mt8186_rt1019_rt5682s";
};

View File

@@ -375,51 +375,6 @@ &pio {
"TP",
"TP";
dpi_default_pins: dpi-default-pins {
pins-cmd-dat {
pinmux = <PINMUX_GPIO103__FUNC_GPIO103>,
<PINMUX_GPIO104__FUNC_GPIO104>,
<PINMUX_GPIO105__FUNC_GPIO105>,
<PINMUX_GPIO106__FUNC_GPIO106>,
<PINMUX_GPIO107__FUNC_GPIO107>,
<PINMUX_GPIO108__FUNC_GPIO108>,
<PINMUX_GPIO109__FUNC_GPIO109>,
<PINMUX_GPIO110__FUNC_GPIO110>,
<PINMUX_GPIO111__FUNC_GPIO111>,
<PINMUX_GPIO112__FUNC_GPIO112>,
<PINMUX_GPIO113__FUNC_GPIO113>,
<PINMUX_GPIO114__FUNC_GPIO114>,
<PINMUX_GPIO101__FUNC_GPIO101>,
<PINMUX_GPIO100__FUNC_GPIO100>,
<PINMUX_GPIO102__FUNC_GPIO102>,
<PINMUX_GPIO99__FUNC_GPIO99>;
drive-strength = <10>;
output-low;
};
};
dpi_func_pins: dpi-func-pins {
pins-cmd-dat {
pinmux = <PINMUX_GPIO103__FUNC_DPI_DATA0>,
<PINMUX_GPIO104__FUNC_DPI_DATA1>,
<PINMUX_GPIO105__FUNC_DPI_DATA2>,
<PINMUX_GPIO106__FUNC_DPI_DATA3>,
<PINMUX_GPIO107__FUNC_DPI_DATA4>,
<PINMUX_GPIO108__FUNC_DPI_DATA5>,
<PINMUX_GPIO109__FUNC_DPI_DATA6>,
<PINMUX_GPIO110__FUNC_DPI_DATA7>,
<PINMUX_GPIO111__FUNC_DPI_DATA8>,
<PINMUX_GPIO112__FUNC_DPI_DATA9>,
<PINMUX_GPIO113__FUNC_DPI_DATA10>,
<PINMUX_GPIO114__FUNC_DPI_DATA11>,
<PINMUX_GPIO101__FUNC_DPI_HSYNC>,
<PINMUX_GPIO100__FUNC_DPI_VSYNC>,
<PINMUX_GPIO102__FUNC_DPI_DE>,
<PINMUX_GPIO99__FUNC_DPI_PCLK>;
drive-strength = <10>;
};
};
en_pp6000_mipi_disp_150ma_fixed_pins: en_pp6000-mipi-disp-150ma-fixed-pins {
pins-en {
pinmux = <PINMUX_GPIO154__FUNC_GPIO154>;

View File

@@ -518,7 +518,6 @@ &mmc1 {
cap-sdio-irq;
no-mmc;
no-sd;
non-removable;
vmmc-supply = <&pp3300_s3>;
vqmmc-supply = <&mt6366_vio18_reg>;
mmc-pwrseq = <&wifi_pwrseq>;

View File

@@ -331,7 +331,11 @@ &pmic {
interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
};
&scp {
&scp_cluster {
status = "okay";
};
&scp_c0 {
memory-region = <&scp_mem_reserved>;
status = "okay";
};

View File

@@ -1382,12 +1382,30 @@ gce1: mailbox@10330000 {
clocks = <&infracfg_ao CLK_INFRA_AO_GCE2>;
};
scp: scp@10500000 {
compatible = "mediatek,mt8188-scp";
reg = <0 0x10500000 0 0x100000>,
<0 0x10720000 0 0xe0000>;
reg-names = "sram", "cfg";
interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH 0>;
scp_cluster: scp@10720000 {
compatible = "mediatek,mt8188-scp-dual";
reg = <0 0x10720000 0 0xe0000>;
reg-names = "cfg";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x10500000 0x100000>;
status = "disabled";
scp_c0: scp@0 {
compatible = "mediatek,scp-core";
reg = <0x0 0xd0000>;
reg-names = "sram";
interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH 0>;
status = "disabled";
};
scp_c1: scp@d0000 {
compatible = "mediatek,scp-core";
reg = <0xd0000 0x2f000>;
reg-names = "sram";
interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH 0>;
status = "disabled";
};
};
afe: audio-controller@10b10000 {
@@ -2224,6 +2242,118 @@ vppsys0: syscon@14000000 {
#clock-cells = <1>;
};
dma-controller@14001000 {
compatible = "mediatek,mt8188-mdp3-rdma";
reg = <0 0x14001000 0 0x1000>;
#dma-cells = <1>;
clocks = <&vppsys0 CLK_VPP0_MDP_RDMA>;
mboxes = <&gce0 13 CMDQ_THR_PRIO_1>,
<&gce0 14 CMDQ_THR_PRIO_1>,
<&gce0 16 CMDQ_THR_PRIO_1>,
<&gce0 21 CMDQ_THR_PRIO_1>,
<&gce0 22 CMDQ_THR_PRIO_1>;
iommus = <&vpp_iommu M4U_PORT_L4_MDP_RDMA>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x1000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_RDMA_SOF>,
<CMDQ_EVENT_VPP0_MDP_RDMA_FRAME_DONE>;
mediatek,scp = <&scp_c0>;
};
display@14002000 {
compatible = "mediatek,mt8188-mdp3-fg", "mediatek,mt8195-mdp3-fg";
reg = <0 0x14002000 0 0x1000>;
clocks = <&vppsys0 CLK_VPP0_MDP_FG>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x2000 0x1000>;
};
display@14004000 {
compatible = "mediatek,mt8188-mdp3-hdr", "mediatek,mt8195-mdp3-hdr";
reg = <0 0x14004000 0 0x1000>;
clocks = <&vppsys0 CLK_VPP0_MDP_HDR>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x4000 0x1000>;
};
display@14005000 {
compatible = "mediatek,mt8188-mdp3-aal", "mediatek,mt8195-mdp3-aal";
reg = <0 0x14005000 0 0x1000>;
interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys0 CLK_VPP0_MDP_AAL>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x5000 0x1000>;
};
display@14006000 {
compatible = "mediatek,mt8188-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
reg = <0 0x14006000 0 0x1000>;
clocks = <&vppsys0 CLK_VPP0_MDP_RSZ>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x6000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_RSZ_IN_RSZ_SOF>,
<CMDQ_EVENT_VPP0_MDP_RSZ_FRAME_DONE>;
};
display@14007000 {
compatible = "mediatek,mt8188-mdp3-tdshp", "mediatek,mt8195-mdp3-tdshp";
reg = <0 0x14007000 0 0x1000>;
clocks = <&vppsys0 CLK_VPP0_MDP_TDSHP>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x7000 0x1000>;
};
display@14008000 {
compatible = "mediatek,mt8188-mdp3-color", "mediatek,mt8195-mdp3-color";
reg = <0 0x14008000 0 0x1000>;
interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys0 CLK_VPP0_MDP_COLOR>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x8000 0x1000>;
};
display@14009000 {
compatible = "mediatek,mt8188-mdp3-ovl", "mediatek,mt8195-mdp3-ovl";
reg = <0 0x14009000 0 0x1000>;
interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys0 CLK_VPP0_MDP_OVL>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x9000 0x1000>;
iommus = <&vpp_iommu M4U_PORT_L4_MDP_OVL>;
};
display@1400a000 {
compatible = "mediatek,mt8188-mdp3-padding", "mediatek,mt8195-mdp3-padding";
reg = <0 0x1400a000 0 0x1000>;
clocks = <&vppsys0 CLK_VPP0_PADDING>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xa000 0x1000>;
};
display@1400b000 {
compatible = "mediatek,mt8188-mdp3-tcc", "mediatek,mt8195-mdp3-tcc";
reg = <0 0x1400b000 0 0x1000>;
clocks = <&vppsys0 CLK_VPP0_MDP_TCC>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xb000 0x1000>;
};
display@1400c000 {
compatible = "mediatek,mt8188-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
reg = <0 0x1400c000 0 0x1000>;
#dma-cells = <1>;
clocks = <&vppsys0 CLK_VPP0_MDP_WROT>;
iommus = <&vpp_iommu M4U_PORT_L4_MDP_WROT>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xc000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_WROT_SOF>,
<CMDQ_EVENT_VPP0_MDP_WROT_VIDO_WDONE>;
};
mutex@1400f000 {
compatible = "mediatek,mt8188-vpp-mutex";
reg = <0 0x1400f000 0 0x1000>;
interrupts = <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys0 CLK_VPP0_MUTEX>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0xf000 0x1000>;
};
vpp_smi_common: smi@14012000 {
compatible = "mediatek,mt8188-smi-common-vpp";
reg = <0 0x14012000 0 0x1000>;
@@ -2255,6 +2385,184 @@ vpp_iommu: iommu@14018000 {
mediatek,larbs = <&larb1 &larb3 &larb4 &larb6 &larb7 &larb23>;
};
dma-controller@14f09000 {
compatible = "mediatek,mt8188-mdp3-rdma";
reg = <0 0x14f09000 0 0x1000>;
#dma-cells = <1>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_RDMA>;
iommus = <&vdo_iommu M4U_PORT_L5_SVPP2_MDP_RDMA>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0x9000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP2_MDP_RDMA_SOF>,
<CMDQ_EVENT_VPP1_SVPP2_MDP_RDMA_FRAME_DONE>;
};
dma-controller@14f0a000 {
compatible = "mediatek,mt8188-mdp3-rdma";
reg = <0 0x14f0a000 0 0x1000>;
#dma-cells = <1>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_RDMA>;
iommus = <&vpp_iommu M4U_PORT_L6_SVPP3_MDP_RDMA>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xa000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP3_MDP_RDMA_SOF>,
<CMDQ_EVENT_VPP1_SVPP3_MDP_RDMA_FRAME_DONE>;
};
display@14f0c000 {
compatible = "mediatek,mt8188-mdp3-fg", "mediatek,mt8195-mdp3-fg";
reg = <0 0x14f0c000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_FG>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xc000 0x1000>;
};
display@14f0d000 {
compatible = "mediatek,mt8188-mdp3-fg", "mediatek,mt8195-mdp3-fg";
reg = <0 0x14f0d000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_FG>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xd000 0x1000>;
};
display@14f0f000 {
compatible = "mediatek,mt8188-mdp3-hdr", "mediatek,mt8195-mdp3-hdr";
reg = <0 0x14f0f000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_HDR>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0xf000 0x1000>;
};
display@14f10000 {
compatible = "mediatek,mt8188-mdp3-hdr", "mediatek,mt8195-mdp3-hdr";
reg = <0 0x14f10000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_HDR>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0 0x1000>;
};
display@14f12000 {
compatible = "mediatek,mt8188-mdp3-aal", "mediatek,mt8195-mdp3-aal";
reg = <0 0x14f12000 0 0x1000>;
interrupts = <GIC_SPI 618 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_AAL>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x2000 0x1000>;
};
display@14f13000 {
compatible = "mediatek,mt8188-mdp3-aal", "mediatek,mt8195-mdp3-aal";
reg = <0 0x14f13000 0 0x1000>;
interrupts = <GIC_SPI 619 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_AAL>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x3000 0x1000>;
};
display@14f15000 {
compatible = "mediatek,mt8188-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
reg = <0 0x14f15000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_RSZ>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x5000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP2_MDP_RSZ_SOF>,
<CMDQ_EVENT_VPP1_SVPP2_MDP_RSZ_FRAME_DONE>;
};
display@14f16000 {
compatible = "mediatek,mt8188-mdp3-rsz", "mediatek,mt8183-mdp3-rsz";
reg = <0 0x14f16000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_RSZ>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x6000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP3_MDP_RSZ_SOF>,
<CMDQ_EVENT_VPP1_SVPP3_MDP_RSZ_FRAME_DONE>;
};
display@14f18000 {
compatible = "mediatek,mt8188-mdp3-tdshp", "mediatek,mt8195-mdp3-tdshp";
reg = <0 0x14f18000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_TDSHP>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x8000 0x1000>;
};
display@14f19000 {
compatible = "mediatek,mt8188-mdp3-tdshp", "mediatek,mt8195-mdp3-tdshp";
reg = <0 0x14f19000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_TDSHP>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0x9000 0x1000>;
};
display@14f1a000 {
compatible = "mediatek,mt8188-mdp3-merge", "mediatek,mt8195-mdp3-merge";
reg = <0 0x14f1a000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_VPP_MERGE>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xa000 0x1000>;
};
display@14f1b000 {
compatible = "mediatek,mt8188-mdp3-merge", "mediatek,mt8195-mdp3-merge";
reg = <0 0x14f1b000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_VPP_MERGE>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xb000 0x1000>;
};
display@14f1d000 {
compatible = "mediatek,mt8188-mdp3-color", "mediatek,mt8195-mdp3-color";
reg = <0 0x14f1d000 0 0x1000>;
interrupts = <GIC_SPI 629 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_COLOR>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xd000 0x1000>;
};
display@14f1e000 {
compatible = "mediatek,mt8188-mdp3-color", "mediatek,mt8195-mdp3-color";
reg = <0 0x14f1e000 0 0x1000>;
interrupts = <GIC_SPI 630 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_COLOR>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f1XXXX 0xe000 0x1000>;
};
display@14f21000 {
compatible = "mediatek,mt8188-mdp3-padding",
"mediatek,mt8195-mdp3-padding";
reg = <0 0x14f21000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_VPP_PAD>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x1000 0x1000>;
};
display@14f22000 {
compatible = "mediatek,mt8188-mdp3-padding",
"mediatek,mt8195-mdp3-padding";
reg = <0 0x14f22000 0 0x1000>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_VPP_PAD>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x2000 0x1000>;
};
display@14f24000 {
compatible = "mediatek,mt8188-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
reg = <0 0x14f24000 0 0x1000>;
#dma-cells = <1>;
clocks = <&vppsys1 CLK_VPP1_SVPP2_MDP_WROT>;
iommus = <&vdo_iommu M4U_PORT_L5_SVPP2_MDP_WROT>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x4000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP2_MDP_WROT_SOF>,
<CMDQ_EVENT_VPP1_SVPP2_MDP_WROT_FRAME_DONE>;
};
display@14f25000 {
compatible = "mediatek,mt8188-mdp3-wrot", "mediatek,mt8183-mdp3-wrot";
reg = <0 0x14f25000 0 0x1000>;
#dma-cells = <1>;
clocks = <&vppsys1 CLK_VPP1_SVPP3_MDP_WROT>;
iommus = <&vpp_iommu M4U_PORT_L6_SVPP3_MDP_WROT>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f2XXXX 0x5000 0x1000>;
mediatek,gce-events = <CMDQ_EVENT_VPP1_SVPP3_MDP_WROT_SOF>,
<CMDQ_EVENT_VPP1_SVPP3_MDP_WROT_FRAME_DONE>;
};
wpesys: clock-controller@14e00000 {
compatible = "mediatek,mt8188-wpesys";
reg = <0 0x14e00000 0 0x1000>;
@@ -2284,6 +2592,15 @@ vppsys1: syscon@14f00000 {
#clock-cells = <1>;
};
mutex@14f01000 {
compatible = "mediatek,mt8188-vpp-mutex";
reg = <0 0x14f01000 0 0x1000>;
interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&vppsys1 CLK_VPP1_DISP_MUTEX>;
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0x1000 0x1000>;
};
larb5: smi@14f02000 {
compatible = "mediatek,mt8188-smi-larb";
reg = <0 0x14f02000 0 0x1000>;
@@ -2316,36 +2633,42 @@ imgsys1_dip_top: clock-controller@15110000 {
compatible = "mediatek,mt8188-imgsys1-dip-top";
reg = <0 0x15110000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
imgsys1_dip_nr: clock-controller@15130000 {
compatible = "mediatek,mt8188-imgsys1-dip-nr";
reg = <0 0x15130000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
imgsys_wpe1: clock-controller@15220000 {
compatible = "mediatek,mt8188-imgsys-wpe1";
reg = <0 0x15220000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
ipesys: clock-controller@15330000 {
compatible = "mediatek,mt8188-ipesys";
reg = <0 0x15330000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
imgsys_wpe2: clock-controller@15520000 {
compatible = "mediatek,mt8188-imgsys-wpe2";
reg = <0 0x15520000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
imgsys_wpe3: clock-controller@15620000 {
compatible = "mediatek,mt8188-imgsys-wpe3";
reg = <0 0x15620000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
camsys: clock-controller@16000000 {
@@ -2358,24 +2681,28 @@ camsys_rawa: clock-controller@1604f000 {
compatible = "mediatek,mt8188-camsys-rawa";
reg = <0 0x1604f000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
camsys_yuva: clock-controller@1606f000 {
compatible = "mediatek,mt8188-camsys-yuva";
reg = <0 0x1606f000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
camsys_rawb: clock-controller@1608f000 {
compatible = "mediatek,mt8188-camsys-rawb";
reg = <0 0x1608f000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
camsys_yuvb: clock-controller@160af000 {
compatible = "mediatek,mt8188-camsys-yuvb";
reg = <0 0x160af000 0 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
ccusys: clock-controller@17200000 {
@@ -2391,7 +2718,7 @@ video_decoder: video-decoder@18000000 {
iommus = <&vpp_iommu M4U_PORT_L23_HW_VDEC_UFO_ENC_EXT>;
#address-cells = <2>;
#size-cells = <2>;
mediatek,scp = <&scp>;
mediatek,scp = <&scp_c0>;
video-codec@10000 {
compatible = "mediatek,mtk-vcodec-lat";
@@ -2515,7 +2842,7 @@ video_encoder: video-encoder@1a020000 {
<&vdo_iommu M4U_PORT_L19_VENC_SUB_W_LUMA>,
<&vdo_iommu M4U_PORT_L19_VENC_SUB_R_LUMA>;
power-domains = <&spm MT8188_POWER_DOMAIN_VENC>;
mediatek,scp = <&scp>;
mediatek,scp = <&scp_c0>;
};
jpeg_encoder: jpeg-encoder@1a030000 {
@@ -2579,7 +2906,7 @@ rdma0: rdma@1c002000 {
reg = <0 0x1c002000 0 0x1000>;
clocks = <&vdosys0 CLK_VDO0_DISP_RDMA0>;
interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
iommus = <&vdo_iommu M4U_PORT_L1_DISP_RDMA0>;
iommus = <&vpp_iommu M4U_PORT_L1_DISP_RDMA0>;
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS0>;
mediatek,gce-client-reg = <&gce0 SUBSYS_1c00XXXX 0x2000 0x1000>;

View File

@@ -617,22 +617,6 @@ power-domain@MT8195_POWER_DOMAIN_VPPSYS0 {
#size-cells = <0>;
#power-domain-cells = <1>;
power-domain@MT8195_POWER_DOMAIN_VDEC1 {
reg = <MT8195_POWER_DOMAIN_VDEC1>;
clocks = <&vdecsys CLK_VDEC_LARB1>;
clock-names = "vdec1-0";
mediatek,infracfg = <&infracfg_ao>;
#power-domain-cells = <0>;
};
power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 {
reg = <MT8195_POWER_DOMAIN_VENC_CORE1>;
clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>;
clock-names = "venc1-larb";
mediatek,infracfg = <&infracfg_ao>;
#power-domain-cells = <0>;
};
power-domain@MT8195_POWER_DOMAIN_VDOSYS0 {
reg = <MT8195_POWER_DOMAIN_VDOSYS0>;
clocks = <&topckgen CLK_TOP_CFG_VDO0>,
@@ -678,15 +662,25 @@ power-domain@MT8195_POWER_DOMAIN_VDEC0 {
clocks = <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
clock-names = "vdec0-0";
mediatek,infracfg = <&infracfg_ao>;
#address-cells = <1>;
#size-cells = <0>;
#power-domain-cells = <0>;
};
power-domain@MT8195_POWER_DOMAIN_VDEC2 {
reg = <MT8195_POWER_DOMAIN_VDEC2>;
clocks = <&vdecsys_core1 CLK_VDEC_CORE1_LARB1>;
clock-names = "vdec2-0";
mediatek,infracfg = <&infracfg_ao>;
#power-domain-cells = <0>;
power-domain@MT8195_POWER_DOMAIN_VDEC1 {
reg = <MT8195_POWER_DOMAIN_VDEC1>;
clocks = <&vdecsys CLK_VDEC_LARB1>;
clock-names = "vdec1-0";
mediatek,infracfg = <&infracfg_ao>;
#power-domain-cells = <0>;
};
power-domain@MT8195_POWER_DOMAIN_VDEC2 {
reg = <MT8195_POWER_DOMAIN_VDEC2>;
clocks = <&vdecsys_core1 CLK_VDEC_CORE1_LARB1>;
clock-names = "vdec2-0";
mediatek,infracfg = <&infracfg_ao>;
#power-domain-cells = <0>;
};
};
power-domain@MT8195_POWER_DOMAIN_VENC {
@@ -694,7 +688,17 @@ power-domain@MT8195_POWER_DOMAIN_VENC {
clocks = <&vencsys CLK_VENC_LARB>;
clock-names = "venc0-larb";
mediatek,infracfg = <&infracfg_ao>;
#address-cells = <1>;
#size-cells = <0>;
#power-domain-cells = <0>;
power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 {
reg = <MT8195_POWER_DOMAIN_VENC_CORE1>;
clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>;
clock-names = "venc1-larb";
mediatek,infracfg = <&infracfg_ao>;
#power-domain-cells = <0>;
};
};
power-domain@MT8195_POWER_DOMAIN_VDOSYS1 {
@@ -3378,6 +3382,7 @@ dp_intf0: dp-intf@1c015000 {
compatible = "mediatek,mt8195-dp-intf";
reg = <0 0x1c015000 0 0x1000>;
interrupts = <GIC_SPI 657 IRQ_TYPE_LEVEL_HIGH 0>;
power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS0>;
clocks = <&vdosys0 CLK_VDO0_DP_INTF0_DP_INTF>,
<&vdosys0 CLK_VDO0_DP_INTF0>,
<&apmixedsys CLK_APMIXED_TVDPLL1>;

File diff suppressed because it is too large Load Diff

View File

@@ -78,6 +78,21 @@ usb_otg_vbus: regulator-0 {
enable-active-high;
};
reg_vsys: regulator-vsys {
compatible = "regulator-fixed";
regulator-name = "vsys";
regulator-always-on;
regulator-boot-on;
};
touch0_fixed_3v3: regulator-vio33tp {
compatible = "regulator-fixed";
regulator-name = "vio33_tp";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&reg_vsys>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -324,6 +339,18 @@ hdmi_connector_out: endpoint@0 {
};
};
};
touchscreen@5d {
compatible = "goodix,gt9271";
reg = <0x5d>;
interrupts-extended = <&pio 78 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&touch_pins>;
irq-gpios = <&pio 78 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pio 79 GPIO_ACTIVE_LOW>;
AVDD28-supply = <&touch0_fixed_3v3>;
VDDIO-supply = <&mt6357_vrf12_reg>;
};
};
&mmc0 {
@@ -650,6 +677,19 @@ cmd-dat-pins {
};
};
touch_pins: touch-pins {
ctp-int1-pins {
pinmux = <MT8365_PIN_78_CMHSYNC__FUNC_GPIO78>;
input-enable;
bias-disable;
};
rst-pins {
pinmux = <MT8365_PIN_79_CMVSYNC__FUNC_GPIO79>;
output-low;
};
};
uart0_pins: uart0-pins {
pins {
pinmux = <MT8365_PIN_35_URXD0__FUNC_URXD0>,

View File

@@ -21,6 +21,7 @@
/ {
aliases {
dsi0 = &disp_dsi0;
ethernet0 = &eth;
i2c0 = &i2c0;
i2c1 = &i2c1;
@@ -34,6 +35,15 @@ aliases {
serial0 = &uart0;
};
backlight_lcm1: backlight-lcm1 {
compatible = "pwm-backlight";
brightness-levels = <0 1023>;
default-brightness-level = <576>;
num-interpolated-steps = <1023>;
power-supply = <&reg_vsys>;
pwms = <&disp_pwm1 0 500000>;
};
chosen {
stdout-path = "serial0:921600n8";
};
@@ -227,6 +237,28 @@ usb_p2_vbus: regulator-9 {
regulator-max-microvolt = <5000000>;
enable-active-high;
};
lcm1_iovcc: regulator-vio18-lcm1 {
compatible = "regulator-fixed";
regulator-name = "vio18_lcm1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
enable-active-high;
gpio = <&pio 111 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&dsi0_vreg_en_pins>;
vin-supply = <&reg_vsys>;
};
lcm1_vddp: regulator-vsys-lcm1 {
compatible = "regulator-fixed";
regulator-name = "vsys_lcm1";
regulator-min-microvolt = <4200000>;
regulator-max-microvolt = <4200000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&reg_vsys>;
};
};
&adsp {
@@ -239,6 +271,67 @@ &afe {
status = "okay";
};
&disp_dsi0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
panel@0 {
compatible = "startek,kd070fhfid078", "himax,hx8279";
reg = <0>;
backlight = <&backlight_lcm1>;
enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
iovcc-supply = <&lcm1_iovcc>;
vdd-supply = <&lcm1_vddp>;
pinctrl-names = "default";
pinctrl-0 = <&panel_default_pins>;
port {
dsi_panel_in: endpoint {
remote-endpoint = <&dsi0_out>;
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi0_in: endpoint {
remote-endpoint = <&dither0_out>;
};
};
port@1 {
reg = <1>;
dsi0_out: endpoint {
remote-endpoint = <&dsi_panel_in>;
};
};
};
};
&disp_pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&disp_pwm1_pins>;
status = "okay";
};
&dither0_in {
remote-endpoint = <&postmask0_out>;
};
&dither0_out {
remote-endpoint = <&dsi0_in>;
};
&gamma0_out {
remote-endpoint = <&postmask0_in>;
};
&gpu {
mali-supply = <&mt6359_vproc2_buck_reg>;
status = "okay";
@@ -390,6 +483,10 @@ &mfg1 {
domain-supply = <&mt6359_vsram_others_ldo_reg>;
};
&mipi_tx_config0 {
status = "okay";
};
&mmc0 {
status = "okay";
pinctrl-names = "default", "state_uhs";
@@ -499,9 +596,13 @@ &mt6359codec {
mediatek,mic-type-1 = <3>; /* DCC */
};
&ovl0_in {
remote-endpoint = <&vdosys0_ep_main>;
};
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pcie_pins_default>;
pinctrl-0 = <&pcie_default_pins>;
status = "okay";
};
@@ -537,6 +638,12 @@ pins-cmd-dat {
};
};
disp_pwm1_pins: disp-pwm1-pins {
pins-pwm {
pinmux = <PINMUX_GPIO30__FUNC_O_DISP_PWM1>;
};
};
dptx_pins: dptx-pins {
pins-cmd-dat {
pinmux = <PINMUX_GPIO46__FUNC_I0_DP_TX_HPD>;
@@ -857,25 +964,27 @@ pins-dat1 {
};
};
dsi0_vreg_en_pins: dsi0-vreg-en-pins {
pins-pwr-en {
pinmux = <PINMUX_GPIO111__FUNC_B_GPIO111>;
output-low;
};
};
panel_default_pins: panel-default-pins {
pins-dcdc {
pinmux = <PINMUX_GPIO45__FUNC_B_GPIO45>;
pins-rst {
pinmux = <PINMUX_GPIO25__FUNC_B_GPIO25>;
output-low;
};
pins-en {
pinmux = <PINMUX_GPIO111__FUNC_B_GPIO111>;
pinmux = <PINMUX_GPIO45__FUNC_B_GPIO45>;
output-low;
};
pins-rst {
pinmux = <PINMUX_GPIO25__FUNC_B_GPIO25>;
output-high;
};
};
pcie_pins_default: pcie-default {
mux {
pcie_default_pins: pcie-default-pins {
pins {
pinmux = <PINMUX_GPIO47__FUNC_I1_WAKEN>,
<PINMUX_GPIO48__FUNC_O_PERSTN>,
<PINMUX_GPIO49__FUNC_B1_CLKREQN>;
@@ -1055,7 +1164,19 @@ power-key {
};
};
&scp {
&postmask0_in {
remote-endpoint = <&gamma0_out>;
};
&postmask0_out {
remote-endpoint = <&dither0_in>;
};
&scp_cluster {
status = "okay";
};
&scp_c0 {
memory-region = <&scp_mem>;
status = "okay";
};
@@ -1119,6 +1240,18 @@ &uart2 {
status = "okay";
};
&vdosys0 {
port {
#address-cells = <1>;
#size-cells = <0>;
vdosys0_ep_main: endpoint@0 {
reg = <0>;
remote-endpoint = <&ovl0_in>;
};
};
};
&u3phy0 {
status = "okay";
};
@@ -1199,8 +1332,18 @@ xhci_ss_ep: endpoint {
};
&ssusb2 {
/*
* the ssusb2 controller is one but we got two ports : one is routed
* to the M.2 slot, the other is on the RPi header who does support
* full OTG.
* As the controller is shared between them, the role switch default
* mode is set to host to make any peripheral inserted in the M.2
* slot (i.e BT/WIFI module) be detected when the other port is
* unused.
*/
dr_mode = "otg";
maximum-speed = "high-speed";
role-switch-default-mode = "host";
usb-role-switch;
vusb33-supply = <&mt6359_vusb_ldo_reg>;
wakeup-source;
@@ -1211,7 +1354,7 @@ &ssusb2 {
connector {
compatible = "gpio-usb-b-connector", "usb-b-connector";
type = "micro";
id-gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
id-gpios = <&pio 89 GPIO_ACTIVE_LOW>;
vbus-supply = <&usb_p2_vbus>;
};
};

View File

@@ -91,13 +91,12 @@ apu_mem: memory@62000000 {
};
};
backlight_lcd0: backlight-lcd0 {
backlight_lcm0: backlight-lcm0 {
compatible = "pwm-backlight";
pwms = <&disp_pwm0 0 500000>;
enable-gpios = <&pio 47 GPIO_ACTIVE_HIGH>;
brightness-levels = <0 1023>;
num-interpolated-steps = <1023>;
default-brightness-level = <576>;
num-interpolated-steps = <1023>;
pwms = <&disp_pwm0 0 500000>;
};
backlight_lcd1: backlight-lcd1 {
@@ -107,6 +106,7 @@ backlight_lcd1: backlight-lcd1 {
brightness-levels = <0 1023>;
num-interpolated-steps = <1023>;
default-brightness-level = <576>;
status = "disabled";
};
can_clk: can-clk {
@@ -150,6 +150,24 @@ button-volume-up {
};
};
lcm0_iovcc: regulator-vio18-lcm0 {
compatible = "regulator-fixed";
regulator-name = "vio18_lcm0";
enable-active-high;
gpio = <&pio 47 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&dsi0_vreg_en_pins>;
vin-supply = <&mt6360_ldo2>;
};
lcm0_vddp: regulator-vsys-lcm0 {
compatible = "regulator-fixed";
regulator-name = "vsys_lcm0";
regulator-always-on;
regulator-boot-on;
vin-supply = <&mt6360_ldo1>;
};
wifi_fixed_3v3: regulator-2 {
compatible = "regulator-fixed";
regulator-name = "wifi_3v3";
@@ -163,14 +181,65 @@ wifi_fixed_3v3: regulator-2 {
&disp_pwm0 {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_default_pins>;
pinctrl-0 = <&disp_pwm0_pins>;
status = "okay";
};
&dither0_in {
remote-endpoint = <&gamma0_out>;
};
&dither0_out {
remote-endpoint = <&dsi0_in>;
};
&dmic_codec {
wakeup-delay-ms = <200>;
};
&dsi0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
panel@0 {
compatible = "startek,kd070fhfid078", "himax,hx8279";
reg = <0>;
backlight = <&backlight_lcm0>;
enable-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pio 108 GPIO_ACTIVE_HIGH>;
iovcc-supply = <&lcm0_iovcc>;
vdd-supply = <&lcm0_vddp>;
pinctrl-names = "default";
pinctrl-0 = <&panel_default_pins>;
port {
dsi_panel_in: endpoint {
remote-endpoint = <&dsi0_out>;
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi0_in: endpoint {
remote-endpoint = <&dither0_out>;
};
};
port@1 {
reg = <1>;
dsi0_out: endpoint {
remote-endpoint = <&dsi_panel_in>;
};
};
};
};
&eth {
phy-mode ="rgmii-rxid";
phy-handle = <&eth_phy0>;
@@ -194,6 +263,10 @@ eth_phy0: ethernet-phy@1 {
};
};
&gamma0_out {
remote-endpoint = <&dither0_in>;
};
&gpu {
mali-supply = <&mt6315_7_vbuck1>;
status = "okay";
@@ -418,6 +491,10 @@ &mfg1 {
domain-supply = <&mt6359_vsram_others_ldo_reg>;
};
&mipi_tx0 {
status = "okay";
};
&mmc0 {
status = "okay";
pinctrl-names = "default", "state_uhs";
@@ -500,6 +577,10 @@ &mt6359codec {
mediatek,mic-type-2 = <1>; /* ACC */
};
&ovl0_in {
remote-endpoint = <&vdosys0_ep_main>;
};
&pcie0 {
pinctrl-names = "default", "idle";
pinctrl-0 = <&pcie0_default_pins>;
@@ -777,6 +858,25 @@ pins {
};
};
dsi0_vreg_en_pins: dsi0-vreg-en-pins {
pins-pwr-en {
pinmux = <PINMUX_GPIO47__FUNC_GPIO47>;
output-low;
};
};
panel_default_pins: panel-default-pins {
pins-rst {
pinmux = <PINMUX_GPIO108__FUNC_GPIO108>;
output-high;
};
pins-en {
pinmux = <PINMUX_GPIO48__FUNC_GPIO48>;
output-low;
};
};
pcie0_default_pins: pcie0-default-pins {
pins {
pinmux = <PINMUX_GPIO19__FUNC_WAKEN>,
@@ -803,8 +903,8 @@ pins {
};
};
pwm0_default_pins: pwm0-default-pins {
pins-cmd-dat {
disp_pwm0_pins: disp-pwm0-pins {
pins-disp-pwm {
pinmux = <PINMUX_GPIO97__FUNC_DISP_PWM0>;
};
};
@@ -872,6 +972,7 @@ &pmic {
&scp {
memory-region = <&scp_mem>;
firmware-name = "mediatek/mt8195/scp.img";
status = "okay";
};
@@ -1014,6 +1115,18 @@ &ssusb3 {
status = "okay";
};
&vdosys0 {
port {
#address-cells = <1>;
#size-cells = <0>;
vdosys0_ep_main: endpoint@0 {
reg = <0>;
remote-endpoint = <&ovl0_in>;
};
};
};
&xhci0 {
status = "okay";
};

View File

@@ -139,9 +139,21 @@ bl31_secmon_mem: memory@54600000 {
no-map;
};
afe_mem: memory@60000000 {
adsp_mem: memory@60000000 {
compatible = "shared-dma-pool";
reg = <0 0x60000000 0 0x1100000>;
reg = <0 0x60000000 0 0xf00000>;
no-map;
};
afe_dma_mem: memory@60f00000 {
compatible = "shared-dma-pool";
reg = <0 0x60f00000 0 0x100000>;
no-map;
};
adsp_dma_mem: memory@61000000 {
compatible = "shared-dma-pool";
reg = <0 0x61000000 0 0x100000>;
no-map;
};
@@ -152,6 +164,16 @@ apu_mem: memory@62000000 {
};
};
&adsp {
memory-region = <&adsp_dma_mem>, <&adsp_mem>;
status = "okay";
};
&afe {
memory-region = <&afe_dma_mem>;
status = "okay";
};
&cpu0 {
cpu-supply = <&mt6359_vcore_buck_reg>;
};
@@ -514,6 +536,18 @@ &mt6359_vsram_others_ldo_reg {
&pio {
mediatek,rsel-resistance-in-si-unit;
audio_default_pins: audio-default-pins {
pins-cmd-dat {
pinmux = <PINMUX_GPIO70__FUNC_AUD_SYNC_MOSI>,
<PINMUX_GPIO69__FUNC_AUD_CLK_MOSI>,
<PINMUX_GPIO71__FUNC_AUD_DAT_MOSI0>,
<PINMUX_GPIO72__FUNC_AUD_DAT_MOSI1>,
<PINMUX_GPIO73__FUNC_AUD_DAT_MISO0>,
<PINMUX_GPIO74__FUNC_AUD_DAT_MISO1>,
<PINMUX_GPIO75__FUNC_AUD_DAT_MISO2>;
};
};
dsi0_backlight_pins: dsi0-backlight-pins {
pins-backlight-en {
pinmux = <PINMUX_GPIO107__FUNC_GPIO107>;
@@ -850,9 +884,30 @@ &pmic {
&scp {
memory-region = <&scp_mem>;
firmware-name = "mediatek/mt8195/scp.img";
status = "okay";
};
&sound {
compatible = "mediatek,mt8195_mt6359";
model = "mt8395-evk";
pinctrl-names = "default";
pinctrl-0 = <&audio_default_pins>;
audio-routing =
"Headphone", "Headphone L",
"Headphone", "Headphone R";
mediatek,adsp = <&adsp>;
status = "okay";
headphone-dai-link {
link-name = "DL_SRC_BE";
codec {
sound-dai = <&pmic 0>;
};
};
};
&spi1 {
/* Exposed at 40 pin connector */
pinctrl-0 = <&spi1_pins>;