[PATCH v10 9/9] arm64: dts: mediatek: Add MediaTek MT6392 PMIC dtsi

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Tue Sep 8 00:06:47 PDT 2026


On 9/2/26 21:25, Luca Leonardo Scorcia wrote:
> From: Val Packett <val at packett.cool>
> 
> Add the dtsi to be included by all boards using the MT6392 PMIC,
> providing support for regulator, keys, pinctrl and RTC.
> 
> Import the new file in the shared device tree for the Pumpkin boards.
> 
> Signed-off-by: Val Packett <val at packett.cool>
> Signed-off-by: Luca Leonardo Scorcia <l.scorcia at gmail.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>

> ---
>   arch/arm64/boot/dts/mediatek/mt6392.dtsi      | 145 ++++++++++++++++++
>   .../boot/dts/mediatek/pumpkin-common.dtsi     |   7 +
>   2 files changed, 152 insertions(+)
>   create mode 100644 arch/arm64/boot/dts/mediatek/mt6392.dtsi
> 
> diff --git a/arch/arm64/boot/dts/mediatek/mt6392.dtsi b/arch/arm64/boot/dts/mediatek/mt6392.dtsi
> new file mode 100644
> index 000000000000..cc4770d70246
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt6392.dtsi
> @@ -0,0 +1,145 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2019 MediaTek Inc.
> + * Copyright (c) 2024 Val Packett <val at packett.cool>
> + * Copyright (c) 2026 Luca Leonardo Scorcia <l.scorcia at gmail.com>
> + */
> +
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/regulator/mediatek,mt6392-regulator.h>
> +
> +&pwrap {
> +	pmic: pmic {
> +		compatible = "mediatek,mt6392";
> +		interrupt-controller;
> +		#interrupt-cells = <2>;
> +
> +		mt6392keys: keys {
> +			compatible = "mediatek,mt6392-keys";
> +
> +			key-power {
> +				linux,keycodes = <KEY_POWER>;
> +				wakeup-source;
> +			};
> +
> +			key-home {
> +				linux,keycodes = <KEY_HOME>;
> +				wakeup-source;
> +			};
> +		};
> +
> +		mt6392pio: pinctrl {
> +			compatible = "mediatek,mt6392-pinctrl";
> +
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +		};
> +
> +		mt6392regulators: regulators {
> +			compatible = "mediatek,mt6392-regulator";
> +
> +			/* Fixed supply defined in the data sheet */
> +			avddldo-supply = <&mt6392_vsys_reg>;
> +
> +			mt6392_vcore_reg: vcore {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_BUCK_MODE_FORCE_PWM>;
> +			};
> +			mt6392_vproc_reg: vproc {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_BUCK_MODE_FORCE_PWM>;
> +			};
> +			mt6392_vsys_reg: vsys {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_BUCK_MODE_FORCE_PWM>;
> +			};
> +			mt6392_vaud28_reg: vaud28 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vxo22_reg: vxo22 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vaud22_reg: vaud22 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vadc18_reg: vadc18 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vcama_reg: vcama { };
> +			mt6392_vcn35_reg: vcn35 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vio28_reg: vio28 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vusb_reg: vusb {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vmc_reg: vmc {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vmch_reg: vmch {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vemc3v3_reg: vemc3v3 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vcamaf_reg: vcamaf {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vgp1_reg: vgp1 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vgp2_reg: vgp2 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vefuse_reg: vefuse {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vm25_reg: vm25 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vdig18_reg: vdig18 { };
> +			mt6392_vm_reg: vm {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vio18_reg: vio18 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vcn18_reg: vcn18 {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vcamd_reg: vcamd {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vcamio_reg: vcamio {
> +				regulator-allowed-modes = <MT6392_REGULATOR_MODE_NORMAL
> +							   MT6392_LDO_MODE_LP>;
> +			};
> +			mt6392_vrtc_reg: vrtc { };
> +		};
> +
> +		mt6392rtc: rtc {
> +			compatible = "mediatek,mt6392-rtc", "mediatek,mt6323-rtc";
> +		};
> +	};
> +};
> diff --git a/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
> index 805fb82138a8..b19d5792bd89 100644
> --- a/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
> @@ -6,6 +6,8 @@
>   
>   #include <dt-bindings/gpio/gpio.h>
>   
> +#include "mt6392.dtsi"
> +
>   / {
>   	aliases {
>   		serial0 = &uart0;
> @@ -160,6 +162,11 @@ &i2c2 {
>   	status = "okay";
>   };
>   
> +&pmic {
> +	interrupt-parent = <&pio>;
> +	interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
> +};
> +
>   &uart0 {
>   	status = "okay";
>   };



More information about the Linux-mediatek mailing list