lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Tue, 25 Jun 2024 14:07:57 +0200
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
To: Shengyu Qu <wiagn233@...look.com>, linux-mediatek@...ts.infradead.org
Cc: robh+dt@...nel.org, krzysztof.kozlowski+dt@...aro.org,
 conor+dt@...nel.org, matthias.bgg@...il.com, wenst@...omium.org,
 hsinyi@...omium.org, nfraprado@...labora.com, macpaul.lin@...iatek.com,
 sean.wang@...iatek.com, devicetree@...r.kernel.org,
 linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
 kernel@...labora.com, stephen@...xa.com, tom@...xa.com
Subject: Re: [PATCH v2 2/2] arm64: dts: mediatek: Introduce the MT8395 Radxa
 NIO 12L board

Il 25/06/24 13:30, Shengyu Qu ha scritto:
> Hello,
> 
> What bootloader and tf-a are you using for testing these patches,
> mainline or vendor? I'd like to try them too.
> 

Hello,

Bootloader/TF-A: either the Yocto one or the Ubuntu one is fine.
Check MediaTek's guides [1] and [2].

For the rest, I tested on the Ubuntu that you can get from the guides, although
it's missing some components for upstream (audio, mainly), and then also on
Debian Bookworm and on an ArchLinux userspace, both of which I also use for
testing MediaTek Chromebooks.

[1]: https://mediatek.gitlab.io/genio/doc/ubuntu/get-started/genio-1200-evk
[2]: 
https://mediatek.gitlab.io/aiot/doc/aiot-dev-guide/master/sw/yocto/get-started.html

P.S.: Please avoid top posting!

Cheers,
Angelo

> Best regards,
> Shengyu
> 
> 在 2024/2/2 19:48, AngeloGioacchino Del Regno 写道:
>> Add a device tree for the Radxa NIO 12L SBC, powered by the MediaTek
>> MT8395 Genio 1200 SoC.
>>
>> This board features:
>>   * MT6359 + MT6360 PMICs at I2C-6
>>     - Regulators, battery charger, TypeC Port Controller Interface
>>     - Audio through 3.5mm jack (2CH out, 1CH in)
>>   * Two MT6315 PMICs over SPMI
>>     - CPU-Big and GPU Core regulators
>>   * Network Connectivity
>>     - Realtek RTL8211FD MDIO PHY/Transceiver, 10/100/1000M Ethernet
>>     - MT7921E WiFi (PCIe1) / Bluetooth (USB 2.0) combo chip
>>   * Storage
>>     - On-board UFS storage
>>     - On-board eMMC on MMC0 controller
>>     - MicroSD card slot on MMC1 controller
>>   * Other connectivity
>>     - 1x USB Type-C Charging/Power only port
>>     - 1x USB 3.2 SuperSpeed Type-C OTG+DisplayPort mode
>>       - Muxed by ITE IT5205 Alternate Mode Passive MUX
>>     - 4x USB 3.0 Type-A ports on VL805 USB Hub (PCIe0)
>>     - 1x HDMI IN port
>>     - 1x HDMI OUT port
>>     - 1x MIPI DSI (Display) port
>>     - 2x MIPI CSI (Camera) ports
>>   * 40-pin Expansion Header
>>     - Two UART ports
>>     - I2C, SPI busses
>>     - I2S for external audio chips
>>     - ADC
>>     - GPIOs
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
>> ---
>>   arch/arm64/boot/dts/mediatek/Makefile         |   1 +
>>   .../dts/mediatek/mt8395-radxa-nio-12l.dts     | 825 ++++++++++++++++++
>>   2 files changed, 826 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
>>
>> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
>> index 1e6f91731e92..fdd8f4a58003 100644
>> --- a/arch/arm64/boot/dts/mediatek/Makefile
>> +++ b/arch/arm64/boot/dts/mediatek/Makefile
>> @@ -63,4 +63,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-demo.dtb
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-evb.dtb
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8365-evk.dtb
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8395-genio-1200-evk.dtb
>> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8395-radxa-nio-12l.dtb
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
>> diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
>> new file mode 100644
>> index 000000000000..e5d9b671a405
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
>> @@ -0,0 +1,825 @@
>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>> +/*
>> + * Copyright (C) 2023 Radxa Limited
>> + * Copyright (C) 2024 Collabora Ltd.
>> + *                    AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
>> + */
>> +
>> +#include "mt8195.dtsi"
>> +#include "mt6359.dtsi"
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/interrupt-controller/irq.h>
>> +#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
>> +#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
>> +#include <dt-bindings/spmi/spmi.h>
>> +#include <dt-bindings/usb/pd.h>
>> +
>> +/ {
>> +	model = "Radxa NIO 12L";
>> +	chassis-type = "embedded";
>> +	compatible = "radxa,nio-12l", "mediatek,mt8395", "mediatek,mt8195";
>> +
>> +	aliases {
>> +		i2c0 = &i2c2;
>> +		i2c1 = &i2c3;
>> +		i2c2 = &i2c4;
>> +		i2c3 = &i2c0;
>> +		i2c4 = &i2c1;
>> +		ethernet0 = &eth;
>> +		serial0 = &uart0;
>> +		serial1 = &uart1;
>> +		spi0 = &spi1;
>> +		spi1 = &spi2;
>> +	};
>> +
>> +	chosen {
>> +		stdout-path = "serial0:921600n8";
>> +	};
>> +
>> +	firmware {
>> +		optee {
>> +			compatible = "linaro,optee-tz";
>> +			method = "smc";
>> +		};
>> +	};
>> +
>> +	memory@...00000 {
>> +		device_type = "memory";
>> +		reg = <0 0x40000000 0x1 0x0>;
>> +	};
>> +
>> +	wifi_vreg: regulator-wifi-3v3-en {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "wifi_3v3_en";
>> +		regulator-always-on;
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		enable-active-high;
>> +		gpio = <&pio 67 GPIO_ACTIVE_HIGH>;
>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&wifi_vreg_pins>;
>> +		vin-supply = <&vsys>;
>> +	};
>> +
>> +	/* system wide switching 5.0V power rail */
>> +	vsys: regulator-vsys {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "vsys";
>> +		regulator-always-on;
>> +		regulator-boot-on;
>> +		regulator-min-microvolt = <5000000>;
>> +		regulator-max-microvolt = <5000000>;
>> +		vin-supply = <&vcc5v0_vsys>;
>> +	};
>> +
>> +	vsys_buck: regulator-vsys-buck {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "vsys_buck";
>> +		regulator-always-on;
>> +		regulator-boot-on;
>> +		regulator-min-microvolt = <5000000>;
>> +		regulator-max-microvolt = <5000000>;
>> +		vin-supply = <&vcc5v0_vsys>;
>> +	};
>> +
>> +	/* Rail from power-only "TYPE C DC" port */
>> +	vcc5v0_vsys: regulator-vcc5v0-sys {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "vcc5v0_sys";
>> +		regulator-always-on;
>> +		regulator-boot-on;
>> +	};
>> +
>> +	reserved-memory {
>> +		#address-cells = <2>;
>> +		#size-cells = <2>;
>> +		ranges;
>> +
>> +		/*
>> +		 * 12 MiB reserved for OP-TEE (BL32)
>> +		 * +-----------------------+ 0x43e0_0000
>> +		 * |      SHMEM 2MiB       |
>> +		 * +-----------------------+ 0x43c0_0000
>> +		 * |        | TA_RAM  8MiB |
>> +		 * + TZDRAM +--------------+ 0x4340_0000
>> +		 * |        | TEE_RAM 2MiB |
>> +		 * +-----------------------+ 0x4320_0000
>> +		 */
>> +		optee_reserved: optee@...00000 {
>> +			reg = <0 0x43200000 0 0xc00000>;
>> +			no-map;
>> +		};
>> +
>> +		scp_mem: memory@...00000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0 0x50000000 0 0x2900000>;
>> +			no-map;
>> +		};
>> +
>> +		vpu_mem: memory@...00000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0 0x53000000 0 0x1400000>; /* 20 MB */
>> +		};
>> +
>> +		/* 2 MiB reserved for ARM Trusted Firmware (BL31) */
>> +		bl31_secmon_mem: memory@...00000 {
>> +			reg = <0 0x54600000 0x0 0x200000>;
>> +			no-map;
>> +		};
>> +
>> +		afe_mem: memory@...00000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0 0x60000000 0 0x1100000>;
>> +			no-map;
>> +		};
>> +
>> +		apu_mem: memory@...00000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0 0x62000000 0 0x1400000>; /* 20 MB */
>> +		};
>> +	};
>> +};
>> +
>> +&eth {
>> +	phy-mode = "rgmii-rxid";
>> +	phy-handle = <&rgmii_phy>;
>> +	pinctrl-names = "default", "sleep";
>> +	pinctrl-0 = <&eth_default_pins>;
>> +	pinctrl-1 = <&eth_sleep_pins>;
>> +	mediatek,tx-delay-ps = <2030>;
>> +	mediatek,mac-wol;
>> +	snps,reset-gpio = <&pio 93 GPIO_ACTIVE_HIGH>;
>> +	snps,reset-delays-us = <0 20000 100000>;
>> +	status = "okay";
>> +
>> +	mdio {
>> +		rgmii_phy: ethernet-phy@1 {
>> +			compatible = "ethernet-phy-id001c.c916";
>> +			reg = <0x1>;
>> +		};
>> +	};
>> +};
>> +
>> +&gpu {
>> +	mali-supply = <&mt6315_7_vbuck1>;
>> +	status = "okay";
>> +};
>> +
>> +&i2c2 {
>> +	clock-frequency = <400000>;
>> +	pinctrl-0 = <&i2c2_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +
>> +	typec-mux@48 {
>> +		compatible = "ite,it5205";
>> +		reg = <0x48>;
>> +
>> +		mode-switch;
>> +		orientation-switch;
>> +
>> +		vcc-supply = <&mt6359_vibr_ldo_reg>;
>> +
>> +		port {
>> +			it5205_sbu_mux: endpoint {
>> +				remote-endpoint = <&typec_con_mux>;
>> +			};
>> +		};
>> +	};
>> +};
>> +
>> +&i2c4 {
>> +	clock-frequency = <400000>;
>> +	pinctrl-0 = <&i2c4_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +
>> +	/* I2C4 exposed at 39-pins MIPI-LCD connector */
>> +};
>> +
>> +&i2c6 {
>> +	clock-frequency = <400000>;
>> +	pinctrl-0 = <&i2c6_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +
>> +	mt6360: pmic@34 {
>> +		compatible = "mediatek,mt6360";
>> +		reg = <0x34>;
>> +		interrupts-extended = <&pio 101 IRQ_TYPE_EDGE_FALLING>;
>> +		interrupt-names = "IRQB";
>> +		interrupt-controller;
>> +		#interrupt-cells = <1>;
>> +		pinctrl-0 = <&mt6360_pins>;
>> +
>> +		charger {
>> +			compatible = "mediatek,mt6360-chg";
>> +			richtek,vinovp-microvolt = <14500000>;
>> +
>> +			otg_vbus_regulator: usb-otg-vbus-regulator {
>> +				regulator-name = "usb-otg-vbus";
>> +				regulator-min-microvolt = <4425000>;
>> +				regulator-max-microvolt = <5825000>;
>> +			};
>> +		};
>> +
>> +		regulator {
>> +			compatible = "mediatek,mt6360-regulator";
>> +			LDO_VIN1-supply = <&vsys_buck>;
>> +			LDO_VIN3-supply = <&mt6360_buck2>;
>> +
>> +			mt6360_buck1: buck1 {
>> +				regulator-name = "emi_vdd2";
>> +				regulator-min-microvolt = <300000>;
>> +				regulator-max-microvolt = <1300000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP
>> +							   MT6360_OPMODE_ULP>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			mt6360_buck2: buck2 {
>> +				regulator-name = "emi_vddq";
>> +				regulator-min-microvolt = <300000>;
>> +				regulator-max-microvolt = <1300000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP
>> +							   MT6360_OPMODE_ULP>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			mt6360_ldo1: ldo1 {
>> +				regulator-name = "ext_lcd_3v3";
>> +				regulator-min-microvolt = <3300000>;
>> +				regulator-max-microvolt = <3300000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			mt6360_ldo2: ldo2 {
>> +				regulator-name = "panel1_p1v8";
>> +				regulator-min-microvolt = <1800000>;
>> +				regulator-max-microvolt = <1800000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP>;
>> +			};
>> +
>> +			mt6360_ldo3: ldo3 {
>> +				regulator-name = "vmc_pmu";
>> +				regulator-min-microvolt = <1200000>;
>> +				regulator-max-microvolt = <3600000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP>;
>> +			};
>> +
>> +			mt6360_ldo5: ldo5 {
>> +				regulator-name = "vmch_pmu";
>> +				regulator-min-microvolt = <3300000>;
>> +				regulator-max-microvolt = <3300000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			mt6360_ldo6: ldo6 {
>> +				regulator-name = "mt6360_ldo6"; /* Test point */
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <2100000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP>;
>> +			};
>> +
>> +			mt6360_ldo7: ldo7 {
>> +				regulator-name = "emi_vmddr_en";
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <2100000>;
>> +				regulator-allowed-modes = <MT6360_OPMODE_NORMAL
>> +							   MT6360_OPMODE_LP>;
>> +				regulator-always-on;
>> +			};
>> +		};
>> +
>> +		typec {
>> +			compatible = "mediatek,mt6360-tcpc";
>> +			interrupts-extended = <&pio 100 IRQ_TYPE_LEVEL_LOW>;
>> +			interrupt-names = "PD_IRQB";
>> +
>> +			connector {
>> +				compatible = "usb-c-connector";
>> +				label = "USB-C";
>> +				data-role = "dual";
>> +				op-sink-microwatt = <10000000>;
>> +				power-role = "dual";
>> +				try-power-role = "sink";
>> +
>> +				source-pdos = <PDO_FIXED(5000, 1000,
>> +							 PDO_FIXED_DUAL_ROLE |
>> +							 PDO_FIXED_DATA_SWAP)>;
>> +				sink-pdos = <PDO_FIXED(5000, 3000,
>> +						       PDO_FIXED_DUAL_ROLE |
>> +						       PDO_FIXED_DATA_SWAP)>;
>> +
>> +				ports {
>> +					#address-cells = <1>;
>> +					#size-cells = <0>;
>> +
>> +					port@0 {
>> +						reg = <0>;
>> +						typec_con_hs: endpoint {
>> +							remote-endpoint = <&mtu3_hs0_role_sw>;
>> +						};
>> +					};
>> +
>> +					port@2 {
>> +						reg = <2>;
>> +						typec_con_mux: endpoint {
>> +							remote-endpoint = <&it5205_sbu_mux>;
>> +						};
>> +					};
>> +				};
>> +			};
>> +		};
>> +	};
>> +};
>> +
>> +/* MMC0 Controller: eMMC (HS400). Power lines are shared with UFS! */
>> +&mmc0 {
>> +	pinctrl-names = "default", "state_uhs";
>> +	pinctrl-0 = <&mmc0_default_pins>;
>> +	pinctrl-1 = <&mmc0_uhs_pins>;
>> +	bus-width = <8>;
>> +	max-frequency = <200000000>;
>> +	hs400-ds-delay = <0x14c11>;
>> +	cap-mmc-highspeed;
>> +	cap-mmc-hw-reset;
>> +	mmc-hs200-1_8v;
>> +	mmc-hs400-1_8v;
>> +	no-sdio;
>> +	no-sd;
>> +	non-removable;
>> +	vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
>> +	vqmmc-supply = <&mt6359_vufs_ldo_reg>;
>> +	status = "okay";
>> +};
>> +
>> +/* MMC1 Controller: MicroSD card slot */
>> +&mmc1 {
>> +	pinctrl-names = "default", "state_uhs";
>> +	pinctrl-0 = <&mmc1_default_pins>, <&mmc1_pins_detect>;
>> +	pinctrl-1 = <&mmc1_default_pins>;
>> +	bus-width = <4>;
>> +	max-frequency = <200000000>;
>> +	cap-sd-highspeed;
>> +	cd-gpios = <&pio 129 GPIO_ACTIVE_LOW>;
>> +	no-mmc;
>> +	no-sdio;
>> +	sd-uhs-sdr50;
>> +	sd-uhs-sdr104;
>> +	vmmc-supply = <&mt6360_ldo5>;
>> +	vqmmc-supply = <&mt6360_ldo3>;
>> +	status = "okay";
>> +};
>> +
>> +&mt6359_vaud18_ldo_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vbbck_ldo_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +/* For USB Hub */
>> +&mt6359_vcamio_ldo_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vcn33_2_bt_ldo_reg {
>> +	regulator-min-microvolt = <3300000>;
>> +	regulator-max-microvolt = <3300000>;
>> +};
>> +
>> +&mt6359_vcore_buck_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vgpu11_buck_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vproc1_buck_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vproc2_buck_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vpu_buck_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vrf12_ldo_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +&mt6359_vsram_md_ldo_reg {
>> +	regulator-always-on;
>> +};
>> +
>> +/* for GPU SRAM */
>> +&mt6359_vsram_others_ldo_reg {
>> +	regulator-min-microvolt = <750000>;
>> +	regulator-max-microvolt = <750000>;
>> +};
>> +
>> +&pio {
>> +	eth_default_pins: eth-default-pins {
>> +		pins-cc {
>> +			pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>,
>> +				 <PINMUX_GPIO86__FUNC_GBE_RXC>,
>> +				 <PINMUX_GPIO87__FUNC_GBE_RXDV>,
>> +				 <PINMUX_GPIO88__FUNC_GBE_TXEN>;
>> +			drive-strength = <8>;
>> +		};
>> +
>> +		pins-mdio {
>> +			pinmux = <PINMUX_GPIO89__FUNC_GBE_MDC>,
>> +				 <PINMUX_GPIO90__FUNC_GBE_MDIO>;
>> +			input-enable;
>> +		};
>> +
>> +		pins-power {
>> +			pinmux = <PINMUX_GPIO91__FUNC_GPIO91>,
>> +				 <PINMUX_GPIO92__FUNC_GPIO92>;
>> +			output-high;
>> +		};
>> +
>> +		pins-rst {
>> +			pinmux = <PINMUX_GPIO93__FUNC_GPIO93>;
>> +		};
>> +
>> +		pins-rxd {
>> +			pinmux = <PINMUX_GPIO81__FUNC_GBE_RXD3>,
>> +				 <PINMUX_GPIO82__FUNC_GBE_RXD2>,
>> +				 <PINMUX_GPIO83__FUNC_GBE_RXD1>,
>> +				 <PINMUX_GPIO84__FUNC_GBE_RXD0>;
>> +		};
>> +
>> +		pins-txd {
>> +			pinmux = <PINMUX_GPIO77__FUNC_GBE_TXD3>,
>> +				 <PINMUX_GPIO78__FUNC_GBE_TXD2>,
>> +				 <PINMUX_GPIO79__FUNC_GBE_TXD1>,
>> +				 <PINMUX_GPIO80__FUNC_GBE_TXD0>;
>> +			drive-strength = <8>;
>> +		};
>> +	};
>> +
>> +	eth_sleep_pins: eth-sleep-pins {
>> +		pins-cc {
>> +			pinmux = <PINMUX_GPIO85__FUNC_GPIO85>,
>> +				 <PINMUX_GPIO86__FUNC_GPIO86>,
>> +				 <PINMUX_GPIO87__FUNC_GPIO87>,
>> +				 <PINMUX_GPIO88__FUNC_GPIO88>;
>> +		};
>> +
>> +		pins-mdio {
>> +			pinmux = <PINMUX_GPIO89__FUNC_GPIO89>,
>> +				 <PINMUX_GPIO90__FUNC_GPIO90>;
>> +			bias-disable;
>> +			input-disable;
>> +		};
>> +
>> +		pins-rxd {
>> +			pinmux = <PINMUX_GPIO81__FUNC_GPIO81>,
>> +				 <PINMUX_GPIO82__FUNC_GPIO82>,
>> +				 <PINMUX_GPIO83__FUNC_GPIO83>,
>> +				 <PINMUX_GPIO84__FUNC_GPIO84>;
>> +		};
>> +
>> +		pins-txd {
>> +			pinmux = <PINMUX_GPIO77__FUNC_GPIO77>,
>> +				 <PINMUX_GPIO78__FUNC_GPIO78>,
>> +				 <PINMUX_GPIO79__FUNC_GPIO79>,
>> +				 <PINMUX_GPIO80__FUNC_GPIO80>;
>> +		};
>> +	};
>> +
>> +	i2c2_pins: i2c2-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
>> +				 <PINMUX_GPIO13__FUNC_SCL2>;
>> +			bias-pull-up = <MTK_PULL_SET_RSEL_111>;
>> +			drive-strength = <6>;
>> +			drive-strength-microamp = <1000>;
>> +		};
>> +	};
>> +
>> +	i2c4_pins: i2c4-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
>> +				 <PINMUX_GPIO17__FUNC_SCL4>;
>> +			bias-pull-up = <MTK_PULL_SET_RSEL_111>;
>> +			drive-strength-microamp = <1000>;
>> +		};
>> +	};
>> +
>> +	i2c6_pins: i2c6-pins {
>> +		pins {
>> +			pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
>> +				 <PINMUX_GPIO26__FUNC_SCL6>;
>> +			bias-pull-up = <MTK_PULL_SET_RSEL_111>;
>> +		};
>> +	};
>> +
>> +	mmc0_default_pins: mmc0-default-pins {
>> +		pins-clk {
>> +			pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
>> +			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
>> +			drive-strength = <6>;
>> +		};
>> +
>> +		pins-cmd-dat {
>> +			pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
>> +				 <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
>> +				 <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
>> +				 <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
>> +				 <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
>> +				 <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
>> +				 <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
>> +				 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
>> +				 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
>> +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
>> +			drive-strength = <6>;
>> +			input-enable;
>> +		};
>> +
>> +		pins-rst {
>> +			pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
>> +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
>> +			drive-strength = <6>;
>> +		};
>> +	};
>> +
>> +	mmc0_uhs_pins: mmc0-uhs-pins {
>> +		pins-clk {
>> +			pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
>> +			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
>> +			drive-strength = <8>;
>> +		};
>> +
>> +		pins-cmd-dat {
>> +			pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
>> +				 <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
>> +				 <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
>> +				 <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
>> +				 <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
>> +				 <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
>> +				 <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
>> +				 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
>> +				 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
>> +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
>> +			drive-strength = <8>;
>> +			input-enable;
>> +		};
>> +
>> +		pins-ds {
>> +			pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
>> +			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
>> +			drive-strength = <8>;
>> +		};
>> +
>> +		pins-rst {
>> +			pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
>> +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
>> +			drive-strength = <8>;
>> +		};
>> +	};
>> +
>> +	mmc1_default_pins: mmc1-default-pins {
>> +		pins-clk {
>> +			pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
>> +			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
>> +			drive-strength = <8>;
>> +		};
>> +
>> +		pins-cmd-dat {
>> +			pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
>> +				 <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
>> +				 <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
>> +				 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
>> +				 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
>> +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
>> +			drive-strength = <8>;
>> +			input-enable;
>> +		};
>> +	};
>> +
>> +	mmc1_pins_detect: mmc1-detect-pins {
>> +		pins-insert {
>> +			pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
>> +			bias-pull-up;
>> +		};
>> +	};
>> +
>> +	mt6360_pins: mt6360-pins {
>> +		pins-irq {
>> +			pinmux = <PINMUX_GPIO100__FUNC_GPIO100>,
>> +				 <PINMUX_GPIO101__FUNC_GPIO101>;
>> +			input-enable;
>> +			bias-pull-up;
>> +		};
>> +	};
>> +
>> +	pcie0_default_pins: pcie0-default-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO19__FUNC_WAKEN>,
>> +				 <PINMUX_GPIO20__FUNC_PERSTN>,
>> +				 <PINMUX_GPIO21__FUNC_CLKREQN>;
>> +			bias-pull-up;
>> +		};
>> +	};
>> +
>> +	pcie1_default_pins: pcie1-default-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO0__FUNC_PERSTN_1>,
>> +				 <PINMUX_GPIO1__FUNC_CLKREQN_1>,
>> +				 <PINMUX_GPIO2__FUNC_WAKEN_1>;
>> +			bias-disable;
>> +		};
>> +	};
>> +
>> +	spi1_pins: spi1-default-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO136__FUNC_SPIM1_CSB>,
>> +				 <PINMUX_GPIO137__FUNC_SPIM1_CLK>,
>> +				 <PINMUX_GPIO138__FUNC_SPIM1_MO>,
>> +				 <PINMUX_GPIO139__FUNC_SPIM1_MI>;
>> +			bias-disable;
>> +		};
>> +	};
>> +
>> +	spi2_pins: spi2-default-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO140__FUNC_SPIM2_CSB>,
>> +				 <PINMUX_GPIO141__FUNC_SPIM2_CLK>,
>> +				 <PINMUX_GPIO142__FUNC_SPIM2_MO>,
>> +				 <PINMUX_GPIO143__FUNC_SPIM2_MI>;
>> +			bias-disable;
>> +		};
>> +	};
>> +
>> +	uart0_pins: uart0-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
>> +				 <PINMUX_GPIO99__FUNC_URXD0>;
>> +		};
>> +	};
>> +
>> +	uart1_pins: uart1-pins {
>> +		pins-bus {
>> +			pinmux = <PINMUX_GPIO102__FUNC_UTXD1>,
>> +				 <PINMUX_GPIO103__FUNC_URXD1>;
>> +		};
>> +	};
>> +
>> +	wifi_vreg_pins: wifi-vreg-pins {
>> +		pins-wifi-pmu-en {
>> +			pinmux = <PINMUX_GPIO65__FUNC_GPIO65>;
>> +			output-high;
>> +		};
>> +
>> +		pins-wifi-vreg-en {
>> +			pinmux = <PINMUX_GPIO67__FUNC_GPIO67>;
>> +		};
>> +	};
>> +};
>> +
>> +&pcie0 {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&pcie0_default_pins>;
>> +	status = "okay";
>> +};
>> +
>> +&pcie1 {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&pcie1_default_pins>;
>> +	status = "okay";
>> +};
>> +
>> +&pmic {
>> +	interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
>> +};
>> +
>> +&scp {
>> +	memory-region = <&scp_mem>;
>> +	status = "okay";
>> +};
>> +
>> +&spi1 {
>> +	/* Exposed at 40 pin connector */
>> +	pinctrl-0 = <&spi1_pins>;
>> +	pinctrl-names = "default";
>> +	mediatek,pad-select = <0>;
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +	status = "okay";
>> +};
>> +
>> +&spi2 {
>> +	/* Exposed at 40 pin connector */
>> +	pinctrl-0 = <&spi2_pins>;
>> +	pinctrl-names = "default";
>> +	mediatek,pad-select = <0>;
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +	status = "okay";
>> +};
>> +
>> +&spmi {
>> +	#address-cells = <2>;
>> +	#size-cells = <0>;
>> +
>> +	mt6315_6: pmic@6 {
>> +		compatible = "mediatek,mt6315-regulator";
>> +		reg = <0x6 SPMI_USID>;
>> +
>> +		regulators {
>> +			mt6315_6_vbuck1: vbuck1 {
>> +				regulator-compatible = "vbuck1";
>> +				regulator-name = "Vbcpu";
>> +				regulator-min-microvolt = <300000>;
>> +				regulator-max-microvolt = <1193750>;
>> +				regulator-enable-ramp-delay = <256>;
>> +				regulator-allowed-modes = <0 1 2>;
>> +				regulator-always-on;
>> +			};
>> +		};
>> +	};
>> +
>> +	mt6315_7: pmic@7 {
>> +		compatible = "mediatek,mt6315-regulator";
>> +		reg = <0x7 SPMI_USID>;
>> +
>> +		regulators {
>> +			mt6315_7_vbuck1: vbuck1 {
>> +				regulator-compatible = "vbuck1";
>> +				regulator-name = "Vgpu";
>> +				regulator-min-microvolt = <300000>;
>> +				regulator-max-microvolt = <1193750>;
>> +				regulator-enable-ramp-delay = <256>;
>> +				regulator-allowed-modes = <0 1 2>;
>> +			};
>> +		};
>> +	};
>> +};
>> +
>> +&uart0 {
>> +	/* Exposed at 40 pin connector */
>> +	pinctrl-0 = <&uart0_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +};
>> +
>> +&uart1 {
>> +	/* Exposed at 40 pin connector */
>> +	pinctrl-0 = <&uart1_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +};
>> +
>> +&ssusb0 {
>> +	role-switch-default-mode = "host";
>> +	usb-role-switch;
>> +	vusb33-supply = <&mt6359_vusb_ldo_reg>;
>> +	status = "okay";
>> +
>> +	port {
>> +		mtu3_hs0_role_sw: endpoint {
>> +			remote-endpoint = <&typec_con_hs>;
>> +		};
>> +	};
>> +};
>> +
>> +&ssusb2 {
>> +	vusb33-supply = <&mt6359_vusb_ldo_reg>;
>> +	status = "okay";
>> +};
>> +
>> +&xhci0 {
>> +	vbus-supply = <&otg_vbus_regulator>;
>> +	status = "okay";
>> +};
>> +
>> +&xhci1 {
>> +	/* MT7921's USB Bluetooth has issues with USB2 LPM */
>> +	usb2-lpm-disable;
>> +	vusb33-supply = <&mt6359_vusb_ldo_reg>;
>> +	vbus-supply = <&vsys>;
>> +	status = "okay";
>> +};
>> +
>> +&xhci2 {
>> +	vbus-supply = <&vsys>;
>> +	status = "okay";
>> +};



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ