From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42EF8364E9E for ; Tue, 17 Mar 2026 18:45:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773141; cv=none; b=bM6q8LppLqYgZgn4MG7oFvzo/F24o2xc5rTKb6f7UQpeK0GdJelRz2JzHD2qxTyQ96J12hBymsCz6zKv7/iXcsmZ1Dc8A0/EDcFmQmVVPFrunuUfKaNHLeSKKpG8rWqkOaCPsQyFGyej15SqcxwKsE7XiWaGDUHFlDYu6TcPr7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773141; c=relaxed/simple; bh=ZfqOUDFz7v7R+mSXLBEeMIVnBZ09sWfkQvpiVD+GjhY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NK+AbLUdRl1p6NALH4AvwZj2/KE5VMFznp+8Foc6pPRSExIPaU1GOXuuAF4atdAWwmdVAB49ddP0foOxTEsL3Mxlthy9O+V2PqgfbkaIsZrgEGlR+fMMZDO2pbJq7uCUqUhDxUy7R5qF3wL7ulKVti64c+RgSoPNuyfAoBdnV8Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mwjY8TFH; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mwjY8TFH" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-48628ce9ab5so14360245e9.2 for ; Tue, 17 Mar 2026 11:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773138; x=1774377938; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pTAXSeu6BtwHvgdghXlLX79R1MN9WAcZ3+G+4vaYWf4=; b=mwjY8TFHlZGYD59OayPabt2eM2tZ05M/gG4uikPVwIyJqeVqF+DaH1urznwWZldGNx uBNXk6pi0lVHbqPWpRC9lUFgRMGIsIzd0HD9XFpKtj6sbaRs5T8AcvqEfhI6TTyrW5Ho nrmSW6wXX8tZyNZVeL/HOwjlq6AddXFUCBNduMDHYUxH9zSbZlD1lqRJiZLCotswr5v0 mwRABOwf8i3wCztsyrddsxy0w3FhXJG4WyviXAJb/7eIb1bKNx74jyApzwq85y/RukZI By+aGX0W3Qxmwmt8ndSeG4H6u71sBPcE+VONWc70MbKAZZmdtDOTttoYWYJ3yN6tlP40 sWJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773138; x=1774377938; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pTAXSeu6BtwHvgdghXlLX79R1MN9WAcZ3+G+4vaYWf4=; b=nUx95czGcXkba20UtdCdmSgU1Kqq1fk6VqcdTSgT4N2wL9kHqb1KSHOFnKw88Brpm+ VEHDde/8XVBQVFZKqsCT0M6GZ1t5VLIe9HamI76Ue8MrvJpDmi/IS4Jnk6JcW7BJbcs+ mOR5GGKZNt4n79fXY/q8lfXEryC+R2DcPHwtlJeYmJ4isR80bS5zdVhPaTUcWYuTbebC VDo967B29zIc2TgAhz13lXhAuv8fKUc0ncB9RkU/arLOcvfuwgGNC7kg3Sq85GCgpZmA FXTeJY9df+WUfsfXAbGqS+5LDDnRGSXbm77g0H8PZ6jvOQ6jvf/OosRbf+lG2sqVc2PN moiQ== X-Forwarded-Encrypted: i=1; AJvYcCUSAsWj1d0vf5LImUt2NcZnLV0QV6q0C9ELr1t/0WrL1pkOM0jD86YPdpgfyT6RdyM4KK6V2Q99hQz5l6I=@vger.kernel.org X-Gm-Message-State: AOJu0Yy38LpLZonmcf4OjKf94e8aYRp3nf6XtqXQTR/1pP2cOTKkBcRR eIHIMpuSzmVL2qlEfbHzW6OlXR/TlhX2NcREppyr2gDi+7RHPENx9PBO X-Gm-Gg: ATEYQzw30kCfXRCQM29qLDSzeqDyu6hVLHcJLLakcAx+1RLZ1DJO/2I5JfKxcVNrFyy LeKzKZLLsIkxUFh7SXgOHOcaDPoyV5LNako5Itkvqtjmtg5Ku4fw7gOOFf5BNbdaGSF6QF31MPT pBlKR0xy3Dc/OSYkd2/lGt4B3p1ePUOagRwHaY3k30RlQZIOhOqB5sEz75sMwAecT+6V3Zvotn4 haOOFlpl66oVWnF80nQv6WyBPIEBG2LO/fUG0tNuuaLFGayYtv6pxtcLmd3iIxzIppzErNs3UAy hL0a5ml4qKAcQ1Tb8T0/Uq5vwG/Vnyk0jfZF0+hC/0gRXUEgqf8bYfJj9lln+sILzXKy14bcZMD l/Op5DQg9KN3Ckyj7WqWJgm5bdiATZu+WgFGl4r7V0566w/MkAAYKcXiBtAnra4RDRtClI7Ceao LD4Oe3MzJOIS3ANQ/JGwQ= X-Received: by 2002:a05:600c:1d0c:b0:485:3d00:efd with SMTP id 5b1f17b1804b1-486f442df4bmr10381735e9.7.1773773138294; Tue, 17 Mar 2026 11:45:38 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.45.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:45:37 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Fabien Parent , Val Packett , Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Gary Bisson , Louis-Alexis Eyraud , Julien Massot , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 1/9] dt-bindings: mfd: mt6397: Add bindings for MT6392 PMIC Date: Tue, 17 Mar 2026 18:43:04 +0000 Message-ID: <20260317184507.523060-2-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Fabien Parent Add the currently supported bindings for the MT6392 PMIC. Signed-off-by: Fabien Parent Signed-off-by: Val Packett Signed-off-by: Luca Leonardo Scorcia Reviewed-by: AngeloGioacchino Del Regno Reviewed-by: Krzysztof Kozlowski --- .../devicetree/bindings/mfd/mediatek,mt6397.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml b/D= ocumentation/devicetree/bindings/mfd/mediatek,mt6397.yaml index 6a89b479d10f..22b09e148d7c 100644 --- a/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml +++ b/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml @@ -40,6 +40,10 @@ properties: - mediatek,mt6358 - mediatek,mt6359 - mediatek,mt6397 + - items: + - enum: + - mediatek,mt6392 + - const: mediatek,mt6323 - items: - enum: - mediatek,mt6366 @@ -68,6 +72,10 @@ properties: - mediatek,mt6331-rtc - mediatek,mt6358-rtc - mediatek,mt6397-rtc + - items: + - enum: + - mediatek,mt6392-rtc + - const: mediatek,mt6323-rtc - items: - enum: - mediatek,mt6366-rtc @@ -92,6 +100,7 @@ properties: - mediatek,mt6328-regulator - mediatek,mt6358-regulator - mediatek,mt6359-regulator + - mediatek,mt6392-regulator - mediatek,mt6397-regulator - items: - enum: --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 892E81519B4 for ; Tue, 17 Mar 2026 18:45:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773152; cv=none; b=pUyKzzHQO6eqVz1v++g2NcIfgRzaAwO5aw0vK1z+4HKdwIqL6xP6s1tcb70quzfxTdlemwIP/Q+D4vIOkSzssmAv7Cd/uEkzs0q/QKAD7rm8dXjwjVO2YSreUPFsAykym+SLH4wtmDReptFOFrzE650eQOB4FxQdlTxHU6/34r4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773152; c=relaxed/simple; bh=q8iNQRclNimcvTVMz/xp0ANElWweIprPYt8rET1d6u4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GeVqwVrN1n0Q3zQMVBaizXj8HdqCXuk3EYh3QtIfKmSDRg9L1ru2R4LIq1JlKFXHNmbyUkorXEcyJY0BFqWs3wOXNuQ9R6/zJhAeOdURIouLdhv/BSWHGYJ++4s+ur9Lu+3G0CCb6QZ7ZrZQ47bcgTj6v8IUF+8ZM0+10Kxqv/E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Zq/XaBfW; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Zq/XaBfW" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4852e09e23dso52239805e9.0 for ; Tue, 17 Mar 2026 11:45:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773149; x=1774377949; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a+y0veSsgUsUJmnxU5xqCTTpBOt5TLJfl8EzSd1maDY=; b=Zq/XaBfWQVvF5NbK0pKEYbQgj18PCCJvmQZjlZi4bsBXlf8GfR9mowFsgZWsMOgkp+ Zav70swWAdTCzizZWJaS472IaKZ3nynQi/pCAO8sWT+qjE5gybdm2WF7KCIkdRRyWWX4 dRIXOgN5EisbsCtUu9zRj5oU+MfkEDo5hqNbhDzENmLq67ow8DOyUVdL36qNUQJmOwFs rtqdEu8PWQUYpzVkrUjl4/0+qd2/Ijnjuz9Yio1F9d9oZosnGtMBTz7P21Y5isLVnq99 9a3Un61QzYs6/3snZ0MVLTvRfB5NL7GOyG6h2QnQrLvLotYzBqHntbbpdf0bwqYMnQgW I1jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773149; x=1774377949; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=a+y0veSsgUsUJmnxU5xqCTTpBOt5TLJfl8EzSd1maDY=; b=L3pajf8BhXiTRCs9Ivoz7VJouV9WjNbaCMPuxThQYCG2XGuC6sVOzv2mMOW5NZ7lNg 3yDk8BRfeZfa9ATepSTYwgIrty+A5TNYIuQD5R2S9UYhnKwWsQ4iHasyo52CradS2cvq wLcpIdnrTYUhVnZsFwgevLUxNmlgHH7UAhsgTWQgtLSX7oO0HlPI7taFHGHVUHfsxslt cXedjHcfH3bBkdAHQc3MmRYcGhTFpWDvTHgZW3VFpD6TbwexsE8/OMPIgN2RQ91LvB1d HJBiiOElTUQgzoOuUo6h24uQdOUPTb5X+I+1ilAjr8+xHKIg/9lfrrH/kXj/hYvwlm7M lTow== X-Forwarded-Encrypted: i=1; AJvYcCUFIJUbggwkoIrpLvMhho1Fv3YbfPQl+BlmHoRsXJPdNjuMY4eSZcw0HHu5OkdB9nAjZxDDJmBXkj9BDEk=@vger.kernel.org X-Gm-Message-State: AOJu0YzIaL5MVMxbuHesCgknrNxvfspflaozNTd/CZQtrI+2w5T+Wc2e RFb8JOU9NMyhlj8PV2Yf7ZCPzmruSc+KZOiEq4X8xOljgIOdsMdyXY50 X-Gm-Gg: ATEYQzzRMtGuWpct0lY4ZW63HDuJvwkppWAB4xHTSlZN6aVtNrIwZcEER4/BwdmQSjv 6HjsAtYZ/vkrp5AIPg41gjuSTelx3Q47hMZQFziFdRyNx9y0LDuDMrIUxWJL2osRQYcsgHMpWKC OO2ubw4tYJQo2NLgQnD1fJ2D6APdydKoDMyda/8dkqsl5nenkxh6EkpHlgtTiLy96mQBqMvU7Jz G9AZYiM1IKsRUy9ZFVk+s/3zzr048NbWbK6ncQykNhlnKU1kTCYjIvzuq5IH1iNvYq/Yy1XOqk0 +rAsfv7/cEQWh5kLa3F+0QhUrj2b1ocshAivn5/3/f79Ct2pmlSZP6XDW+h4xUvehbyshpyHFqF Y+FLjAsByjTNG133jh1PlfcWjcU0HtdDPBcAgSeH8ESjSXe/JUNmW3S700436jlnvSiAdNmJRu1 IxR5MI9QXpoVvhp55kdM1qwmOUJWa8tg== X-Received: by 2002:a05:600c:1f93:b0:485:3b5b:eb8 with SMTP id 5b1f17b1804b1-486f4463591mr10143505e9.26.1773773148893; Tue, 17 Mar 2026 11:45:48 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.45.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:45:48 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Fabien Parent , Val Packett , Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Louis-Alexis Eyraud , Gary Bisson , Julien Massot , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 2/9] dt-bindings: input: mtk-pmic-keys: add MT6392 binding definition Date: Tue, 17 Mar 2026 18:43:05 +0000 Message-ID: <20260317184507.523060-3-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Fabien Parent Add the binding documentation of the mtk-pmic-keys for the MT6392 PMICs. Signed-off-by: Fabien Parent Signed-off-by: Val Packett Signed-off-by: Luca Leonardo Scorcia Acked-by: Dmitry Torokhov Acked-by: Rob Herring (Arm) Reviewed-by: AngeloGioacchino Del Regno --- Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yam= l b/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml index b95435bd6a9b..2d3c4161a7f8 100644 --- a/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml +++ b/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml @@ -30,6 +30,7 @@ properties: - mediatek,mt6357-keys - mediatek,mt6358-keys - mediatek,mt6359-keys + - mediatek,mt6392-keys - mediatek,mt6397-keys =20 power-off-time-sec: true --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D8B6379966 for ; Tue, 17 Mar 2026 18:46:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773163; cv=none; b=UhBJzUjT9vnEFvHRS1W5MINL8kKE3urjDSt/L0qgZtvZLjTWNPwkSgyR+X0ugzfs6AhU+NU+FVytTo0pKAw6gVV/+JgU6vvbSP1T+lqDLE2FQFCnRF3AGOQqXs1rDqBqNUnid/+LXRcQGeps8Y+vqmKEC733WlUd4BNieHjCkP0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773163; c=relaxed/simple; bh=thcobMH5AohzT7xRyuc5K4LYMZMaJStuFgRXIHH+5Jg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IABl7hwLH5LiDS+GBEOlNlLDdYLpogHGgD2AkU+VJk5P/GJuXQcJyjfXDXPS4gGJtN+pb26CdxW96pRuYVhwRKHtm28ErdSEMqZvZZdhI6bdfFi6kDOb5MhZgPWv9qlHinoVQVAOBXEq+HAOW1h5zAG9Gvh6y0lz6CVQescvDYU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LJrbz4+V; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LJrbz4+V" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-48541edecf9so66533295e9.1 for ; Tue, 17 Mar 2026 11:46:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773160; x=1774377960; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Mlws9kV83sZ5c0sE5Qh/W7eCQPao3h3DdhO6uIW9QdQ=; b=LJrbz4+V6t6zI0YcZVQlhMTKXxJdmCxMbIAEDik6a7gqL1XW8TrnsSVj7VRuulQFWC u5GqsmNmnsNRTPVAsoz8eNKZlxECjiIY3Jc0eG61PTW5Sm13kCUyw6IYAGJabGXwQeLu d340fLKQIrsXr/aSEDX+ohzfv5sUPYlHnumk5CeUQOhJAnPeiGg/W325Sk9OtDUweHwR OKcf6V7A0wzeyWDWtc2uGj00hzC7k4fZMiEfoeQnEfd0+eO4dRNGSPQWNOnw5fldCsjB XYmolrhRp+4DeKO+YnXUyFMojuWvl41VEGuaH+aQyXvFcY0Irx/+iw5wZvWhlDns+19I sTlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773160; x=1774377960; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Mlws9kV83sZ5c0sE5Qh/W7eCQPao3h3DdhO6uIW9QdQ=; b=J+t7jRaJe0TSOCoecQMQWg+28qw1JGF/AN5KMADfH2fvxsiykKKJlav02m3zM7FrY9 WVKACayCc1/E6qFeHMYJUnu0liWHZ5mZifTRKL0Dyp7UltZGS/TU6MYeYw9AbZMx4LuE z+dPgi155Yx5g5o0CvzONUZF5pFiCE0tGCNbXL/y5rzgpV12Bkm5tLqTrgAjC6SbPXDi c8dJFD0FI0JS2jHh/OtOgbxqNmhp++wnOSa+W7ecEMRkV0hoOROotPYp0mqsKtuWI300 lEOAMJVyjpjewaokkV6zJ05btLHqnhMffiD3drlqT3onBVSgMVVQ86Myxsgus+KiylyN y72Q== X-Forwarded-Encrypted: i=1; AJvYcCVrHHSKeG0KAloSahHpH/azGskKLommCluDJsv/SFxI2i3E/iETauBnNBRLPPvTlCLsUUtZodyMwmLKwZQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxMURFa/BTJ2+qcmNQQ2ecTu5BgSM5kVJx0oc4ovWxonLWcsmKj E4K9yX2Qq5QBarVGYV38vzi5bqGtQknwv5kXcy1+eMXB8cuivHwW8mpC X-Gm-Gg: ATEYQzyrolByEXasn/IWFG9qaVGfseD3FMlE8ka+BQx8juxGFE0w6g8meh73u4EAqsP DqU4tl3s4BhOkd2nlgfqXao4pnO13lslx0xgwSCOHTznuic3YKXvXNkQhZsWYuOpIIBuz6uQePN nhSylavK3yGW7jV7vE61IWHYWhb3xEeayT/lGqqKoW4CVp8yaXvaX98OKZRFRv2Ea0eQWBMy9HB Cp/7Mur9/PgyCkmXF2EGrc+rYT3xQ3oXHsT7BM3sVknJdvKEJqy08dxHIEL61Ni1yvO33q+Gw5x 6kI8OPVjFHBnPpkuAhw8dgEfBY1csQyt+g3+oaHB9k9zJV8+FaUzSXHmjjrSLGGs5YYDx2J5eFu UitO5oy0tw9fYqm5MP7RORPZsQtMWUQmarM4PiWT7NlrOWMCWR5ZxV4Lc+LwFTNXfrxmQVQXBV6 tY9Mb5SfrHFdmeeFjxE0o= X-Received: by 2002:a05:600c:3111:b0:483:7903:c3b1 with SMTP id 5b1f17b1804b1-486f44435bdmr12289585e9.20.1773773159683; Tue, 17 Mar 2026 11:45:59 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.45.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:45:59 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Julien Massot , Gary Bisson , Louis-Alexis Eyraud , Val Packett , Fabien Parent , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 3/9] dt-bindings: regulator: Document MediaTek MT6392 PMIC Regulators Date: Tue, 17 Mar 2026 18:43:06 +0000 Message-ID: <20260317184507.523060-4-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add bindings for the regulators found in the MediaTek MT6392 PMIC, usually found in board designs using the MediaTek MT8516/MT8167 SoCs. Signed-off-by: Luca Leonardo Scorcia --- .../regulator/mediatek,mt6392-regulator.yaml | 318 ++++++++++++++++++ .../regulator/mediatek,mt6392-regulator.h | 24 ++ 2 files changed, 342 insertions(+) create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt= 6392-regulator.yaml create mode 100644 include/dt-bindings/regulator/mediatek,mt6392-regulator= .h diff --git a/Documentation/devicetree/bindings/regulator/mediatek,mt6392-re= gulator.yaml b/Documentation/devicetree/bindings/regulator/mediatek,mt6392-= regulator.yaml new file mode 100644 index 000000000000..fa4aad2dcbe8 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/mediatek,mt6392-regulator= .yaml @@ -0,0 +1,318 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/mediatek,mt6392-regulator.yam= l# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MediaTek MT6392 Regulator + +description: + Regulator node of the PMIC. This node should under the PMIC's device nod= e. + All voltage regulators provided by the PMIC are described as sub-nodes of + this node. + +properties: + compatible: + items: + - const: mediatek,mt6392-regulator + +patternProperties: + "^(buck_)?v(core|proc|sys)$": + description: Buck regulators + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: + description: | + BUCK regulators can set regulator-initial-mode and regulator-all= owed-modes to + values specified in dt-bindings/regulator/mediatek,mt6392-regula= tor.h + items: + enum: [0, 1] + unevaluatedProperties: false + + "^(ldo_)?v(adc18|camio|cn18|io18)$": + description: LDOs with fixed 1.8V output + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: + description: | + LDO regulators can set regulator-initial-mode and regulator-allo= wed-modes to + values specified in dt-bindings/regulator/mediatek,mt6392-regula= tor.h + items: + enum: [0, 1] + unevaluatedProperties: false + + "^(ldo_)?v(xo22)$": + description: LDOs with fixed 2.2V output + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: + description: | + LDO regulators can set regulator-initial-mode and regulator-allo= wed-modes to + values specified in dt-bindings/regulator/mediatek,mt6392-regula= tor.h + items: + enum: [0, 1] + unevaluatedProperties: false + + "^(ldo_)?v(m25)$": + description: LDOs with fixed 2.5V output + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: + description: | + LDO regulators can set regulator-initial-mode and regulator-allo= wed-modes to + values specified in dt-bindings/regulator/mediatek,mt6392-regula= tor.h + items: + enum: [0, 1] + unevaluatedProperties: false + + "^(ldo_)?v(aud28|io28)$": + description: LDOs with fixed 2.8V output w/ mode + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: + description: | + LDO regulators can set regulator-initial-mode and regulator-allo= wed-modes to + values specified in dt-bindings/regulator/mediatek,mt6392-regula= tor.h + items: + enum: [0, 1] + unevaluatedProperties: false + + "^(ldo_)?v(cama)$": + description: LDOs with fixed 2.8V output w/o mode + type: object + $ref: regulator.yaml# + unevaluatedProperties: false + + "^(ldo_)?vusb$": + description: LDOs with fixed 3.3V output + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: + description: | + LDO regulators can set regulator-initial-mode and regulator-allo= wed-modes to + values specified in dt-bindings/regulator/mediatek,mt6392-regula= tor.h + items: + enum: [0, 1] + unevaluatedProperties: false + + "^(ldo_)?v(aud22|camaf|camd|cn35|efuse|emc3v3|gp1|gp2|m|mc|mch)$": + description: LDOs with variable output + type: object + $ref: regulator.yaml# + properties: + regulator-allowed-modes: false + unevaluatedProperties: false + +required: + - compatible + +additionalProperties: false + +examples: + - | + #include + + mt6392_regulators: regulators { + compatible =3D "mediatek,mt6392-regulator"; + + mt6392_vproc_reg: buck_vproc { + regulator-name =3D "vproc"; + regulator-min-microvolt =3D <700000>; + regulator-max-microvolt =3D <1350000>; + regulator-ramp-delay =3D <12500>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vsys_reg: buck_vsys { + regulator-name =3D "vsys"; + regulator-min-microvolt =3D <1400000>; + regulator-max-microvolt =3D <2987500>; + regulator-ramp-delay =3D <25000>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vcore_reg: buck_vcore { + regulator-name =3D "vcore"; + regulator-min-microvolt =3D <700000>; + regulator-max-microvolt =3D <1350000>; + regulator-ramp-delay =3D <12500>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vxo22_reg: ldo_vxo22 { + regulator-name =3D "vxo22"; + regulator-min-microvolt =3D <2200000>; + regulator-max-microvolt =3D <2200000>; + regulator-enable-ramp-delay =3D <110>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vaud22_reg: ldo_vaud22 { + regulator-name =3D "vaud22"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <2200000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vcama_reg: ldo_vcama { + regulator-name =3D "vcama"; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vaud28_reg: ldo_vaud28 { + regulator-name =3D "vaud28"; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vadc18_reg: ldo_vadc18 { + regulator-name =3D "vadc18"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vcn35_reg: ldo_vcn35 { + regulator-name =3D "vcn35"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3600000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vio28_reg: ldo_vio28 { + regulator-name =3D "vio28"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vusb_reg: ldo_vusb { + regulator-name =3D "vusb"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vmc_reg: ldo_vmc { + regulator-name =3D "vmc"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + regulator-boot-on; + }; + + mt6392_vmch_reg: ldo_vmch { + regulator-name =3D "vmch"; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + regulator-boot-on; + }; + + mt6392_vemc3v3_reg: ldo_vemc3v3 { + regulator-name =3D "vemc3v3"; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + regulator-boot-on; + }; + + mt6392_vgp1_reg: ldo_vgp1 { + regulator-name =3D "vgp1"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vgp2_reg: ldo_vgp2 { + regulator-name =3D "vgp2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vcn18_reg: ldo_vcn18 { + regulator-name =3D "vcn18"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vcamaf_reg: ldo_vcamaf { + regulator-name =3D "vcamaf"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <3300000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vm_reg: ldo_vm { + regulator-name =3D "vm"; + regulator-min-microvolt =3D <1240000>; + regulator-max-microvolt =3D <1390000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vio18_reg: ldo_vio18 { + regulator-name =3D "vio18"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-enable-ramp-delay =3D <264>; + regulator-always-on; + regulator-boot-on; + }; + + mt6392_vcamd_reg: ldo_vcamd { + regulator-name =3D "vcamd"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1800000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vcamio_reg: ldo_vcamio { + regulator-name =3D "vcamio"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vm25_reg: ldo_vm25 { + regulator-name =3D "vm25"; + regulator-min-microvolt =3D <2500000>; + regulator-max-microvolt =3D <2500000>; + regulator-enable-ramp-delay =3D <264>; + }; + + mt6392_vefuse_reg: ldo_vefuse { + regulator-name =3D "vefuse"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <2000000>; + regulator-enable-ramp-delay =3D <264>; + }; + }; diff --git a/include/dt-bindings/regulator/mediatek,mt6392-regulator.h b/in= clude/dt-bindings/regulator/mediatek,mt6392-regulator.h new file mode 100644 index 000000000000..8bd1a13faad8 --- /dev/null +++ b/include/dt-bindings/regulator/mediatek,mt6392-regulator.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ + +#ifndef _DT_BINDINGS_REGULATOR_MEDIATEK_MT6392_H_ +#define _DT_BINDINGS_REGULATOR_MEDIATEK_MT6392_H_ + +/* + * Buck mode constants which may be used in devicetree properties (eg. + * regulator-initial-mode, regulator-allowed-modes). + * See the manufacturer's datasheet for more information on these modes. + */ + +#define MT6392_BUCK_MODE_AUTO 0 +#define MT6392_BUCK_MODE_FORCE_PWM 1 + +/* + * LDO mode constants which may be used in devicetree properties (eg. + * regulator-initial-mode, regulator-allowed-modes). + * See the manufacturer's datasheet for more information on these modes. + */ + +#define MT6392_LDO_MODE_NORMAL 0 +#define MT6392_LDO_MODE_LP 1 + +#endif --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B41237D121 for ; Tue, 17 Mar 2026 18:46:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773173; cv=none; b=GBupm9C/7QHvUSlKKKzyd0KV5ghr+feB/SJrQKpEJ2ZIu2kYDbr34kK13CJErIY2dsiTDUX7wtfD9Tu6YQpNYdFHuxNckNo8YEY/TuJYk78m477C5IzQVwuFzrp9EtPTPomodVrc8RA39POxU3WHqGYy5YVZ8deuB78KJVCtiB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773173; c=relaxed/simple; bh=A3vo+lSyWqpioUBzuGEl518evPrqJQ5bf6SRn5b+iHA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WlGX6sj/YB8GHoSAJSmf61I0Pi3+mxy3FMTyd7nFUnss/vaio3rMv7/5KcILSe6fblUy6mhbt9QRHQvR9Tj0oNodP1YK+q18bk2QXrq1nR6q69YnWoUphALYMH3GS8fxqPlu1ZkfObMLdZFuDKJlg5dpyQ+2to0q9f8hrvGy8U4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fs/i1f67; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fs/i1f67" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4852e09e23dso52241925e9.0 for ; Tue, 17 Mar 2026 11:46:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773170; x=1774377970; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5bd47LJ2tcZUp4fxKJyryk+1k19iRlk16WHTGOaLdME=; b=fs/i1f67uyb1Met3ZyHHUxUzh+D2xEDaaQM3ROg70PLRZ9I46dgFDxrQYsuQRGSkH6 ntmiX+x84/WdgwtxN0tLuwI8R3khmDT7uPbjQHQNMgDIczlGacksBeiIDg9Lamfqlitm OEp3P0G+BbXOU1vf4EthU3MCYoQqVcfidJ9GsJR63jTqEoywp1s008z5KHZ4HdUdsp89 RZeC5I8efwweFRB9s3i35xa3pRODjPUf7E7TKXnBCSy9QkNEkxsE6kLSD+FUzalMWSrj i3/ZMpIDOX0ncqoRPiG72+CX68vwUapC4LH74aLnFdFWPCW8mj/XRbiwo1gQx7ncXy1u e1Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773170; x=1774377970; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5bd47LJ2tcZUp4fxKJyryk+1k19iRlk16WHTGOaLdME=; b=iR7KwCe5XGfdhnD1nBPyfyQqsE1cCHxS32rBPaUrwU6QFzrLGvOQx3QPgc09WiA6aG C5MaWL6mDK3SNqF7MLXk6rYHHr+633ZHZD75CecRNJLY+ppKsq0nGIGbFHaEfNA1XjPn iTFlyUH7AXvFHZkbHjy8JBZT5oVw9dVpJRca44vkaCSFlu8e/e2AFg7fH28PmiuxhV31 dDaZPxre9mPnGUAiYyNaBOo9Cunimx45UC/ipnAxGJ1xx6s1yUvogVBSmjZGa+T6ohPM FtN8ZgwX69FciGb6rqVhsEtg07j7kXyUXvk5LDUIUWMT4L1/VbHY+o9ePHGQy79vB/5m uMoA== X-Forwarded-Encrypted: i=1; AJvYcCXEojh6hmRX04/wul8LMqWK6icl/achCabeP9YBq8vtCb7ahIX7ZrKnvJro6eZmhx1iy0jrtQBueDyolS8=@vger.kernel.org X-Gm-Message-State: AOJu0YyYdiLMiDQXeIz74fpHBjWtbOt16Zir8BOvCTOi2zCXnemTt9Rf L4ljASv9v/iAhGf9JTfbQLs65MZO9lAfeK6UUzDHqxT+7zSfAoy2nYs/ X-Gm-Gg: ATEYQzzXHGDE4Dkg29wrNQZOkofbPNNBtxJcAsoCCG/2KRB5t0wM2oVU9E7npY6FsNp tujLO8OEkciUJig0TNfcTQEJAj6kcU8FBYFwQt4nn9thLHLFdPPxdz9cDTOZKxfHtdORBN7kxRC pOPOQEOQnMi1YgdG7W/o48lqraRExzm2HTVjNOenDNdyaxX0sghr4RrYkLztj1km9wmPd2HVJ4f w4FO3pmc/ldiLi+rr7/4eKuXszKrYVIGYEdpI3X1pFlh5+qGhZU1W0IlfgJOXa7bPIXXPTyGj/+ vGARHzm9oARR3WM69kqLm59jAHFYw+8F5pvUvm8nSVLVVcxqc9CSik5GPfV2w9uyrzDku1JuXmf NYY4NE1TMYLiUyFiQDXY7aARqCDImP2VhntJPUaYNvAeasa1Gc6qrA8FceM9Zwjj1vR36ZmNV8W JIeay8hkG9KAzlLKAKNm8= X-Received: by 2002:a05:600c:348b:b0:485:4552:8fbb with SMTP id 5b1f17b1804b1-486f4457d26mr10995495e9.22.1773773170348; Tue, 17 Mar 2026 11:46:10 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.46.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:46:09 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Julien Massot , Val Packett , Gary Bisson , Louis-Alexis Eyraud , Fabien Parent , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 4/9] dt-bindings: pinctrl: mt65xx: Document MT6392 pinctrl Date: Tue, 17 Mar 2026 18:43:07 +0000 Message-ID: <20260317184507.523060-5-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a compatible for the pinctrl device of the MT6392 PMIC, a variant of the already supported MT6397. Signed-off-by: Luca Leonardo Scorcia Reviewed-by: AngeloGioacchino Del Regno --- .../pinctrl/mediatek,mt65xx-pinctrl.yaml | 1 + include/dt-bindings/pinctrl/mt6392-pinfunc.h | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 include/dt-bindings/pinctrl/mt6392-pinfunc.h diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinc= trl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctr= l.yaml index aa71398cf522..1468c6f87cfa 100644 --- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml @@ -17,6 +17,7 @@ properties: enum: - mediatek,mt2701-pinctrl - mediatek,mt2712-pinctrl + - mediatek,mt6392-pinctrl - mediatek,mt6397-pinctrl - mediatek,mt7623-pinctrl - mediatek,mt8127-pinctrl diff --git a/include/dt-bindings/pinctrl/mt6392-pinfunc.h b/include/dt-bind= ings/pinctrl/mt6392-pinfunc.h new file mode 100644 index 000000000000..c65278c8103d --- /dev/null +++ b/include/dt-bindings/pinctrl/mt6392-pinfunc.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +#ifndef __DTS_MT6392_PINFUNC_H +#define __DTS_MT6392_PINFUNC_H + +#include + +#define MT6392_PIN_0_INT__FUNC_GPIO0 (MTK_PIN_NO(0) | 0) +#define MT6392_PIN_0_INT__FUNC_INT (MTK_PIN_NO(0) | 1) +#define MT6392_PIN_0_INT__FUNC_TEST_CK2 (MTK_PIN_NO(0) | 5) +#define MT6392_PIN_0_INT__FUNC_TEST_IN1 (MTK_PIN_NO(0) | 6) +#define MT6392_PIN_0_INT__FUNC_TEST_OUT1 (MTK_PIN_NO(0) | 7) + +#define MT6392_PIN_1_SRCLKEN__FUNC_GPIO1 (MTK_PIN_NO(1) | 0) +#define MT6392_PIN_1_SRCLKEN__FUNC_SRCLKEN (MTK_PIN_NO(1) | 1) +#define MT6392_PIN_1_SRCLKEN__FUNC_TEST_CK0 (MTK_PIN_NO(1) | 5) +#define MT6392_PIN_1_SRCLKEN__FUNC_TEST_IN2 (MTK_PIN_NO(1) | 6) +#define MT6392_PIN_1_SRCLKEN__FUNC_TEST_OUT2 (MTK_PIN_NO(1) | 7) + +#define MT6392_PIN_2_RTC_32K1V8__FUNC_GPIO2 (MTK_PIN_NO(2) | 0) +#define MT6392_PIN_2_RTC_32K1V8__FUNC_RTC_32K1V8 (MTK_PIN_NO(2) | 1) +#define MT6392_PIN_2_RTC_32K1V8__FUNC_TEST_CK1 (MTK_PIN_NO(2) | 5) +#define MT6392_PIN_2_RTC_32K1V8__FUNC_TEST_IN3 (MTK_PIN_NO(2) | 6) +#define MT6392_PIN_2_RTC_32K1V8__FUNC_TEST_OUT3 (MTK_PIN_NO(2) | 7) + +#define MT6392_PIN_3_SPI_CLK__FUNC_GPIO3 (MTK_PIN_NO(3) | 0) +#define MT6392_PIN_3_SPI_CLK__FUNC_SPI_CLK (MTK_PIN_NO(3) | 1) + +#define MT6392_PIN_4_SPI_CSN__FUNC_GPIO4 (MTK_PIN_NO(4) | 0) +#define MT6392_PIN_4_SPI_CSN__FUNC_SPI_CSN (MTK_PIN_NO(4) | 1) + +#define MT6392_PIN_5_SPI_MOSI__FUNC_GPIO5 (MTK_PIN_NO(5) | 0) +#define MT6392_PIN_5_SPI_MOSI__FUNC_SPI_MOSI (MTK_PIN_NO(5) | 1) + +#define MT6392_PIN_6_SPI_MISO__FUNC_GPIO6 (MTK_PIN_NO(6) | 0) +#define MT6392_PIN_6_SPI_MISO__FUNC_SPI_MISO (MTK_PIN_NO(6) | 1) +#define MT6392_PIN_6_SPI_MISO__FUNC_TEST_IN4 (MTK_PIN_NO(6) | 6) +#define MT6392_PIN_6_SPI_MISO__FUNC_TEST_OUT4 (MTK_PIN_NO(6) | 7) + +#endif /* __DTS_MT6392_PINFUNC_H */ --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3779436F400 for ; Tue, 17 Mar 2026 18:46:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773186; cv=none; b=rRy8Bja3OXn/SFmfWzbnMHhTfqbpcCPOL2G6rH7Zg63fL1TxI72wJIF4zvR59OZSDEZfRnm7GaoTq8PO6LN9+1qAhaJpx6/o0PLx7c3Rapti+yxXaFK17J86O2rlsOgrdh4wuLmnKdPrgxWueqQKKujxra42kV9F4RHtrmLsLCQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773186; c=relaxed/simple; bh=lBQq6VICREaFL/sdfbiz4MuwSV+7bBvMknqkHPneoXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FazsZ9gRjY9+tw2RV7qSWgInfTJiwNRz8FchQPUgN8pXiCk9ReVwS4rnBcU0WIyM7o8XmBbkiBo3rYrJeIZ3XDBeNW0p8aBi3D48t/U08YdY9P+0RvttAt8TE48YlHdMWUWk65zSCpEs0Vwj54qkP2z7zOv8xzD/p8/VJBdvalo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=M4La+us2; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="M4La+us2" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4852f8ac7e9so72134455e9.1 for ; Tue, 17 Mar 2026 11:46:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773181; x=1774377981; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hs850xCeTUmlt35l1w7zSHy+ZZfRMBT2NZTX6iUOTNE=; b=M4La+us2rr+aA6fkXz02ZaaRdp9vol5JCU1jK/GeoZMT1pifpVx2Hhb6RW4MFFeuCZ c2XibZJhwlZeEh/rf9wYZiLzf+/5whLsVrbJohykLET+BsE2/Dfy2dmp1gy8yvITvjf3 lOB/L5XZDr2IJ7Ew70tzcaNt4A0ZcCel6bmqn/BMnxtC+5qCreUSkjPmdAPJZEk5eboV ykC1GGZr3e7QpWTv94y+e7deAkTEsV3YObLxTCvqy4Pi9slvnECBlPkk2f1WWVr5WaNw 7dczppD65nYQhnHQDEqcZehyhLwqnZzfjL+fPedhes3d/W3qhOVS4zFVh68+EmWcF6VY a+2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773181; x=1774377981; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hs850xCeTUmlt35l1w7zSHy+ZZfRMBT2NZTX6iUOTNE=; b=livpLS5K4TzlEacgtgoAbw5BFXh1BPqQ+bXsHYnYWBzJWMTYkKk6bdber9OrHPnUsq S2kfMude0JG0O+vnRuR2qY1h1QgjalNjJB0tFHeeZD9DtCsK7w9NTzDvrJAtPakFQFQ/ 5vOg8n/saP14jWV9J7y7lvXHhRgmMUf1MNZY7WzrwM6lwWAWXAX0EMiQXaErq0UDfLoA fSf1yujw4anClemgd7y/YZiTTuskfoQ5kYxMOUsZbD3I0IjPD8gky4SL4/1ONipm7Ahy KBrGLkei6jCImtFcQnMOIY4daIEtjnnMVXANjLFahfrcZRgDoZziKevrgP+KdG3GlXu5 /X9g== X-Forwarded-Encrypted: i=1; AJvYcCVA44zoFBEIZvYi+xdUJMJQtsq78c0E/2yWaAcqgJm+y2ACktbg4V8R2/QK56g4GINVFfL1uWv+PNrAhIk=@vger.kernel.org X-Gm-Message-State: AOJu0YwF4ObN+rn9s4hcrbsSe11SrT4hg0xKK7i3vJqEnc+t3FB6LZtM XB0ij+KADXZ3yLFOZctstRTbT7v/HsZ4k05AN8wINFNMOO3pNtn1Gy/w X-Gm-Gg: ATEYQzwVUcf0zByk3LnU8egNkqjWPj9iKQ86IKb2cw3gWkazKCTXzduvu4F4wsTNuxA Vd4ArwGl5jWHq4cafDh1M8WA7Ch0ZyYgho7Pebf2NICBtFM3hiCwQQwOJ3IyIftpPQHfwPAYn67 AKaPBqTSPo8vnaPEHw/dhpSUQJymUAKeXctqbveHKNom2cpWwWT9pa/bHW1G4QoCbEzp5P2IY5F 5Y7TQdgWP5pvB6xb3C8fNej+kbn7JeDXxu+SAf3skCq5Uh1jEFRzQ6dmcR14mbV4vMBqZGhX9kE E3Rd7d1ql+rL0GM2GNosCZvhp/56/ndnR/Xzdp2ZQ0ds40PgmXmByBGw8oC/H8Xq7DoKPRmroIY sFblJA0HzHNFxsVFTWYNZ6CTOL16MS30Hpnia9+vFjc67d6MCOshw5oHBRnxPE1uE8VF+1O61bb bfNk7qBwnQNqHtauJX24M= X-Received: by 2002:a05:600c:c491:b0:486:d76c:fa57 with SMTP id 5b1f17b1804b1-486f4469363mr11407395e9.17.1773773181123; Tue, 17 Mar 2026 11:46:21 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.46.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:46:20 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Fabien Parent , Val Packett , Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Julien Massot , Gary Bisson , Louis-Alexis Eyraud , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 5/9] mfd: mt6397: Add support for MT6392 pmic Date: Tue, 17 Mar 2026 18:43:08 +0000 Message-ID: <20260317184507.523060-6-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Fabien Parent Update the MT6397 MFD driver to support the MT6392 PMIC. Signed-off-by: Fabien Parent Signed-off-by: Val Packett Signed-off-by: Luca Leonardo Scorcia Reviewed-by: AngeloGioacchino Del Regno --- drivers/mfd/mt6397-core.c | 46 +++ drivers/mfd/mt6397-irq.c | 8 + include/linux/mfd/mt6392/core.h | 42 +++ include/linux/mfd/mt6392/registers.h | 487 +++++++++++++++++++++++++++ include/linux/mfd/mt6397/core.h | 1 + 5 files changed, 584 insertions(+) create mode 100644 include/linux/mfd/mt6392/core.h create mode 100644 include/linux/mfd/mt6392/registers.h diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c index 3e58d0764c7e..c4b86a44c68b 100644 --- a/drivers/mfd/mt6397-core.c +++ b/drivers/mfd/mt6397-core.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -25,6 +26,7 @@ #include #include #include +#include #include =20 #define MT6323_RTC_BASE 0x8000 @@ -39,6 +41,9 @@ #define MT6358_RTC_BASE 0x0588 #define MT6358_RTC_SIZE 0x3c =20 +#define MT6392_RTC_BASE 0x8000 +#define MT6392_RTC_SIZE 0x3e + #define MT6397_RTC_BASE 0xe000 #define MT6397_RTC_SIZE 0x3e =20 @@ -65,6 +70,11 @@ static const struct resource mt6358_rtc_resources[] =3D { DEFINE_RES_IRQ(MT6358_IRQ_RTC), }; =20 +static const struct resource mt6392_rtc_resources[] =3D { + DEFINE_RES_MEM(MT6392_RTC_BASE, MT6392_RTC_SIZE), + DEFINE_RES_IRQ(MT6392_IRQ_RTC), +}; + static const struct resource mt6397_rtc_resources[] =3D { DEFINE_RES_MEM(MT6397_RTC_BASE, MT6397_RTC_SIZE), DEFINE_RES_IRQ(MT6397_IRQ_RTC), @@ -114,6 +124,11 @@ static const struct resource mt6331_keys_resources[] = =3D { DEFINE_RES_IRQ_NAMED(MT6331_IRQ_STATUS_HOMEKEY, "homekey"), }; =20 +static const struct resource mt6392_keys_resources[] =3D { + DEFINE_RES_IRQ_NAMED(MT6392_IRQ_PWRKEY, "powerkey"), + DEFINE_RES_IRQ_NAMED(MT6392_IRQ_FCHRKEY, "homekey"), +}; + static const struct resource mt6397_keys_resources[] =3D { DEFINE_RES_IRQ_NAMED(MT6397_IRQ_PWRKEY, "powerkey"), DEFINE_RES_IRQ_NAMED(MT6397_IRQ_HOMEKEY, "homekey"), @@ -253,6 +268,26 @@ static const struct mfd_cell mt6359_devs[] =3D { }, }; =20 +static const struct mfd_cell mt6392_devs[] =3D { + { + .name =3D "mt6392-rtc", + .num_resources =3D ARRAY_SIZE(mt6392_rtc_resources), + .resources =3D mt6392_rtc_resources, + .of_compatible =3D "mediatek,mt6392-rtc", + }, { + .name =3D "mt6392-regulator", + .of_compatible =3D "mediatek,mt6392-regulator", + }, { + .name =3D "mt6392-pinctrl", + .of_compatible =3D "mediatek,mt6392-pinctrl", + }, { + .name =3D "mt6392-keys", + .num_resources =3D ARRAY_SIZE(mt6392_keys_resources), + .resources =3D mt6392_keys_resources, + .of_compatible =3D "mediatek,mt6392-keys" + }, +}; + static const struct mfd_cell mt6397_devs[] =3D { { .name =3D "mt6397-rtc", @@ -335,6 +370,14 @@ static const struct chip_data mt6359_core =3D { .irq_init =3D mt6358_irq_init, }; =20 +static const struct chip_data mt6392_core =3D { + .cid_addr =3D MT6392_CID, + .cid_shift =3D 0, + .cells =3D mt6392_devs, + .cell_size =3D ARRAY_SIZE(mt6392_devs), + .irq_init =3D mt6397_irq_init, +}; + static const struct chip_data mt6397_core =3D { .cid_addr =3D MT6397_CID, .cid_shift =3D 0, @@ -416,6 +459,9 @@ static const struct of_device_id mt6397_of_match[] =3D { }, { .compatible =3D "mediatek,mt6359", .data =3D &mt6359_core, + }, { + .compatible =3D "mediatek,mt6392", + .data =3D &mt6392_core, }, { .compatible =3D "mediatek,mt6397", .data =3D &mt6397_core, diff --git a/drivers/mfd/mt6397-irq.c b/drivers/mfd/mt6397-irq.c index 5d2e5459f744..80ea5b92d232 100644 --- a/drivers/mfd/mt6397-irq.c +++ b/drivers/mfd/mt6397-irq.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include #include =20 @@ -203,6 +205,12 @@ int mt6397_irq_init(struct mt6397_chip *chip) chip->int_status[0] =3D MT6397_INT_STATUS0; chip->int_status[1] =3D MT6397_INT_STATUS1; break; + case MT6392_CHIP_ID: + chip->int_con[0] =3D MT6392_INT_CON0; + chip->int_con[1] =3D MT6392_INT_CON1; + chip->int_status[0] =3D MT6392_INT_STATUS0; + chip->int_status[1] =3D MT6392_INT_STATUS1; + break; =20 default: dev_err(chip->dev, "unsupported chip: 0x%x\n", chip->chip_id); diff --git a/include/linux/mfd/mt6392/core.h b/include/linux/mfd/mt6392/cor= e.h new file mode 100644 index 000000000000..4780dab4da92 --- /dev/null +++ b/include/linux/mfd/mt6392/core.h @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2020 MediaTek Inc. + * Author: Chen Zhong + */ + +#ifndef __MFD_MT6392_CORE_H__ +#define __MFD_MT6392_CORE_H__ + +enum mt6392_irq_numbers { + MT6392_IRQ_SPKL_AB =3D 0, + MT6392_IRQ_SPKL, + MT6392_IRQ_BAT_L, + MT6392_IRQ_BAT_H, + MT6392_IRQ_WATCHDOG, + MT6392_IRQ_PWRKEY, + MT6392_IRQ_THR_L, + MT6392_IRQ_THR_H, + MT6392_IRQ_VBATON_UNDET, + MT6392_IRQ_BVALID_DET, + MT6392_IRQ_CHRDET, + MT6392_IRQ_OV, + MT6392_IRQ_LDO =3D 16, + MT6392_IRQ_FCHRKEY, + MT6392_IRQ_RELEASE_PWRKEY, + MT6392_IRQ_RELEASE_FCHRKEY, + MT6392_IRQ_RTC, + MT6392_IRQ_VPROC, + MT6392_IRQ_VSYS, + MT6392_IRQ_VCORE, + MT6392_IRQ_TYPE_C_CC, + MT6392_IRQ_TYPEC_H_MAX, + MT6392_IRQ_TYPEC_H_MIN, + MT6392_IRQ_TYPEC_L_MAX, + MT6392_IRQ_TYPEC_L_MIN, + MT6392_IRQ_THR_MAX, + MT6392_IRQ_THR_MIN, + MT6392_IRQ_NAG_C_DLTV, + MT6392_IRQ_NR, +}; + +#endif /* __MFD_MT6392_CORE_H__ */ diff --git a/include/linux/mfd/mt6392/registers.h b/include/linux/mfd/mt639= 2/registers.h new file mode 100644 index 000000000000..4f3a6db830d1 --- /dev/null +++ b/include/linux/mfd/mt6392/registers.h @@ -0,0 +1,487 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2020 MediaTek Inc. + * Author: Chen Zhong + */ + +#ifndef __MFD_MT6392_REGISTERS_H__ +#define __MFD_MT6392_REGISTERS_H__ + +/* PMIC Registers */ +#define MT6392_CHR_CON0 0x0000 +#define MT6392_CHR_CON1 0x0002 +#define MT6392_CHR_CON2 0x0004 +#define MT6392_CHR_CON3 0x0006 +#define MT6392_CHR_CON4 0x0008 +#define MT6392_CHR_CON5 0x000A +#define MT6392_CHR_CON6 0x000C +#define MT6392_CHR_CON7 0x000E +#define MT6392_CHR_CON8 0x0010 +#define MT6392_CHR_CON9 0x0012 +#define MT6392_CHR_CON10 0x0014 +#define MT6392_CHR_CON11 0x0016 +#define MT6392_CHR_CON12 0x0018 +#define MT6392_CHR_CON13 0x001A +#define MT6392_CHR_CON14 0x001C +#define MT6392_CHR_CON15 0x001E +#define MT6392_CHR_CON16 0x0020 +#define MT6392_CHR_CON17 0x0022 +#define MT6392_CHR_CON18 0x0024 +#define MT6392_CHR_CON19 0x0026 +#define MT6392_CHR_CON20 0x0028 +#define MT6392_CHR_CON21 0x002A +#define MT6392_CHR_CON22 0x002C +#define MT6392_CHR_CON23 0x002E +#define MT6392_CHR_CON24 0x0030 +#define MT6392_CHR_CON25 0x0032 +#define MT6392_CHR_CON26 0x0034 +#define MT6392_CHR_CON27 0x0036 +#define MT6392_CHR_CON28 0x0038 +#define MT6392_CHR_CON29 0x003A +#define MT6392_STRUP_CON0 0x003C +#define MT6392_STRUP_CON2 0x003E +#define MT6392_STRUP_CON3 0x0040 +#define MT6392_STRUP_CON4 0x0042 +#define MT6392_STRUP_CON5 0x0044 +#define MT6392_STRUP_CON6 0x0046 +#define MT6392_STRUP_CON7 0x0048 +#define MT6392_STRUP_CON8 0x004A +#define MT6392_STRUP_CON9 0x004C +#define MT6392_STRUP_CON10 0x004E +#define MT6392_STRUP_CON11 0x0050 +#define MT6392_SPK_CON0 0x0052 +#define MT6392_SPK_CON1 0x0054 +#define MT6392_SPK_CON2 0x0056 +#define MT6392_SPK_CON6 0x005E +#define MT6392_SPK_CON7 0x0060 +#define MT6392_SPK_CON8 0x0062 +#define MT6392_SPK_CON9 0x0064 +#define MT6392_SPK_CON10 0x0066 +#define MT6392_SPK_CON11 0x0068 +#define MT6392_SPK_CON12 0x006A +#define MT6392_STRUP_CON12 0x006E +#define MT6392_STRUP_CON13 0x0070 +#define MT6392_STRUP_CON14 0x0072 +#define MT6392_STRUP_CON15 0x0074 +#define MT6392_STRUP_CON16 0x0076 +#define MT6392_STRUP_CON17 0x0078 +#define MT6392_STRUP_CON18 0x007A +#define MT6392_STRUP_CON19 0x007C +#define MT6392_STRUP_CON20 0x007E +#define MT6392_CID 0x0100 +#define MT6392_TOP_CKPDN0 0x0102 +#define MT6392_TOP_CKPDN0_SET 0x0104 +#define MT6392_TOP_CKPDN0_CLR 0x0106 +#define MT6392_TOP_CKPDN1 0x0108 +#define MT6392_TOP_CKPDN1_SET 0x010A +#define MT6392_TOP_CKPDN1_CLR 0x010C +#define MT6392_TOP_CKPDN2 0x010E +#define MT6392_TOP_CKPDN2_SET 0x0110 +#define MT6392_TOP_CKPDN2_CLR 0x0112 +#define MT6392_TOP_RST_CON 0x0114 +#define MT6392_TOP_RST_CON_SET 0x0116 +#define MT6392_TOP_RST_CON_CLR 0x0118 +#define MT6392_TOP_RST_MISC 0x011A +#define MT6392_TOP_RST_MISC_SET 0x011C +#define MT6392_TOP_RST_MISC_CLR 0x011E +#define MT6392_TOP_CKCON0 0x0120 +#define MT6392_TOP_CKCON0_SET 0x0122 +#define MT6392_TOP_CKCON0_CLR 0x0124 +#define MT6392_TOP_CKCON1 0x0126 +#define MT6392_TOP_CKCON1_SET 0x0128 +#define MT6392_TOP_CKCON1_CLR 0x012A +#define MT6392_TOP_CKTST0 0x012C +#define MT6392_TOP_CKTST1 0x012E +#define MT6392_TOP_CKTST2 0x0130 +#define MT6392_TEST_OUT 0x0132 +#define MT6392_TEST_CON0 0x0134 +#define MT6392_TEST_CON1 0x0136 +#define MT6392_EN_STATUS0 0x0138 +#define MT6392_EN_STATUS1 0x013A +#define MT6392_OCSTATUS0 0x013C +#define MT6392_OCSTATUS1 0x013E +#define MT6392_PGSTATUS 0x0140 +#define MT6392_CHRSTATUS 0x0142 +#define MT6392_TDSEL_CON 0x0144 +#define MT6392_RDSEL_CON 0x0146 +#define MT6392_SMT_CON0 0x0148 +#define MT6392_SMT_CON1 0x014A +#define MT6392_DRV_CON0 0x0152 +#define MT6392_DRV_CON1 0x0154 +#define MT6392_INT_CON0 0x0160 +#define MT6392_INT_CON0_SET 0x0162 +#define MT6392_INT_CON0_CLR 0x0164 +#define MT6392_INT_CON1 0x0166 +#define MT6392_INT_CON1_SET 0x0168 +#define MT6392_INT_CON1_CLR 0x016A +#define MT6392_INT_MISC_CON 0x016C +#define MT6392_INT_MISC_CON_SET 0x016E +#define MT6392_INT_MISC_CON_CLR 0x0170 +#define MT6392_INT_STATUS0 0x0172 +#define MT6392_INT_STATUS1 0x0174 +#define MT6392_OC_GEAR_0 0x0176 +#define MT6392_OC_GEAR_1 0x0178 +#define MT6392_OC_GEAR_2 0x017A +#define MT6392_OC_CTL_VPROC 0x017C +#define MT6392_OC_CTL_VSYS 0x017E +#define MT6392_OC_CTL_VCORE 0x0180 +#define MT6392_FQMTR_CON0 0x0182 +#define MT6392_FQMTR_CON1 0x0184 +#define MT6392_FQMTR_CON2 0x0186 +#define MT6392_RG_SPI_CON 0x0188 +#define MT6392_DEW_DIO_EN 0x018A +#define MT6392_DEW_READ_TEST 0x018C +#define MT6392_DEW_WRITE_TEST 0x018E +#define MT6392_DEW_CRC_SWRST 0x0190 +#define MT6392_DEW_CRC_EN 0x0192 +#define MT6392_DEW_CRC_VAL 0x0194 +#define MT6392_DEW_DBG_MON_SEL 0x0196 +#define MT6392_DEW_CIPHER_KEY_SEL 0x0198 +#define MT6392_DEW_CIPHER_IV_SEL 0x019A +#define MT6392_DEW_CIPHER_EN 0x019C +#define MT6392_DEW_CIPHER_RDY 0x019E +#define MT6392_DEW_CIPHER_MODE 0x01A0 +#define MT6392_DEW_CIPHER_SWRST 0x01A2 +#define MT6392_DEW_RDDMY_NO 0x01A4 +#define MT6392_DEW_RDATA_DLY_SEL 0x01A6 +#define MT6392_CLK_TRIM_CON0 0x01A8 +#define MT6392_BUCK_CON0 0x0200 +#define MT6392_BUCK_CON1 0x0202 +#define MT6392_BUCK_CON2 0x0204 +#define MT6392_BUCK_CON3 0x0206 +#define MT6392_BUCK_CON4 0x0208 +#define MT6392_BUCK_CON5 0x020A +#define MT6392_VPROC_CON0 0x020C +#define MT6392_VPROC_CON1 0x020E +#define MT6392_VPROC_CON2 0x0210 +#define MT6392_VPROC_CON3 0x0212 +#define MT6392_VPROC_CON4 0x0214 +#define MT6392_VPROC_CON5 0x0216 +#define MT6392_VPROC_CON7 0x021A +#define MT6392_VPROC_CON8 0x021C +#define MT6392_VPROC_CON9 0x021E +#define MT6392_VPROC_CON10 0x0220 +#define MT6392_VPROC_CON11 0x0222 +#define MT6392_VPROC_CON12 0x0224 +#define MT6392_VPROC_CON13 0x0226 +#define MT6392_VPROC_CON14 0x0228 +#define MT6392_VPROC_CON15 0x022A +#define MT6392_VPROC_CON18 0x0230 +#define MT6392_VSYS_CON0 0x0232 +#define MT6392_VSYS_CON1 0x0234 +#define MT6392_VSYS_CON2 0x0236 +#define MT6392_VSYS_CON3 0x0238 +#define MT6392_VSYS_CON4 0x023A +#define MT6392_VSYS_CON5 0x023C +#define MT6392_VSYS_CON7 0x0240 +#define MT6392_VSYS_CON8 0x0242 +#define MT6392_VSYS_CON9 0x0244 +#define MT6392_VSYS_CON10 0x0246 +#define MT6392_VSYS_CON11 0x0248 +#define MT6392_VSYS_CON12 0x024A +#define MT6392_VSYS_CON13 0x024C +#define MT6392_VSYS_CON14 0x024E +#define MT6392_VSYS_CON15 0x0250 +#define MT6392_VSYS_CON18 0x0256 +#define MT6392_BUCK_OC_CON0 0x0258 +#define MT6392_BUCK_OC_CON1 0x025A +#define MT6392_BUCK_OC_CON2 0x025C +#define MT6392_BUCK_OC_CON3 0x025E +#define MT6392_BUCK_OC_CON4 0x0260 +#define MT6392_BUCK_OC_VPROC_CON0 0x0262 +#define MT6392_BUCK_OC_VCORE_CON0 0x0264 +#define MT6392_BUCK_OC_VSYS_CON0 0x0266 +#define MT6392_BUCK_ANA_MON_CON0 0x0268 +#define MT6392_BUCK_EFUSE_OC_CON0 0x026A +#define MT6392_VCORE_CON0 0x0300 +#define MT6392_VCORE_CON1 0x0302 +#define MT6392_VCORE_CON2 0x0304 +#define MT6392_VCORE_CON3 0x0306 +#define MT6392_VCORE_CON4 0x0308 +#define MT6392_VCORE_CON5 0x030A +#define MT6392_VCORE_CON7 0x030E +#define MT6392_VCORE_CON8 0x0310 +#define MT6392_VCORE_CON9 0x0312 +#define MT6392_VCORE_CON10 0x0314 +#define MT6392_VCORE_CON11 0x0316 +#define MT6392_VCORE_CON12 0x0318 +#define MT6392_VCORE_CON13 0x031A +#define MT6392_VCORE_CON14 0x031C +#define MT6392_VCORE_CON15 0x031E +#define MT6392_VCORE_CON18 0x0324 +#define MT6392_BUCK_K_CON0 0x032A +#define MT6392_BUCK_K_CON1 0x032C +#define MT6392_BUCK_K_CON2 0x032E +#define MT6392_ANALDO_CON0 0x0400 +#define MT6392_ANALDO_CON1 0x0402 +#define MT6392_ANALDO_CON2 0x0404 +#define MT6392_ANALDO_CON3 0x0406 +#define MT6392_ANALDO_CON4 0x0408 +#define MT6392_ANALDO_CON6 0x040C +#define MT6392_ANALDO_CON7 0x040E +#define MT6392_ANALDO_CON8 0x0410 +#define MT6392_ANALDO_CON10 0x0412 +#define MT6392_ANALDO_CON15 0x0414 +#define MT6392_ANALDO_CON16 0x0416 +#define MT6392_ANALDO_CON17 0x0418 +#define MT6392_ANALDO_CON21 0x0420 +#define MT6392_ANALDO_CON22 0x0422 +#define MT6392_ANALDO_CON23 0x0424 +#define MT6392_ANALDO_CON24 0x0426 +#define MT6392_ANALDO_CON25 0x0428 +#define MT6392_ANALDO_CON26 0x042A +#define MT6392_ANALDO_CON27 0x042C +#define MT6392_ANALDO_CON28 0x042E +#define MT6392_ANALDO_CON29 0x0430 +#define MT6392_DIGLDO_CON0 0x0500 +#define MT6392_DIGLDO_CON2 0x0502 +#define MT6392_DIGLDO_CON3 0x0504 +#define MT6392_DIGLDO_CON5 0x0506 +#define MT6392_DIGLDO_CON6 0x0508 +#define MT6392_DIGLDO_CON7 0x050A +#define MT6392_DIGLDO_CON8 0x050C +#define MT6392_DIGLDO_CON10 0x0510 +#define MT6392_DIGLDO_CON11 0x0512 +#define MT6392_DIGLDO_CON12 0x0514 +#define MT6392_DIGLDO_CON15 0x051A +#define MT6392_DIGLDO_CON20 0x0524 +#define MT6392_DIGLDO_CON21 0x0526 +#define MT6392_DIGLDO_CON23 0x0528 +#define MT6392_DIGLDO_CON24 0x052A +#define MT6392_DIGLDO_CON26 0x052C +#define MT6392_DIGLDO_CON27 0x052E +#define MT6392_DIGLDO_CON28 0x0530 +#define MT6392_DIGLDO_CON29 0x0532 +#define MT6392_DIGLDO_CON30 0x0534 +#define MT6392_DIGLDO_CON31 0x0536 +#define MT6392_DIGLDO_CON32 0x0538 +#define MT6392_DIGLDO_CON33 0x053A +#define MT6392_DIGLDO_CON36 0x0540 +#define MT6392_DIGLDO_CON41 0x0546 +#define MT6392_DIGLDO_CON44 0x054C +#define MT6392_DIGLDO_CON47 0x0552 +#define MT6392_DIGLDO_CON48 0x0554 +#define MT6392_DIGLDO_CON49 0x0556 +#define MT6392_DIGLDO_CON50 0x0558 +#define MT6392_DIGLDO_CON51 0x055A +#define MT6392_DIGLDO_CON52 0x055C +#define MT6392_DIGLDO_CON53 0x055E +#define MT6392_DIGLDO_CON54 0x0560 +#define MT6392_DIGLDO_CON55 0x0562 +#define MT6392_DIGLDO_CON56 0x0564 +#define MT6392_DIGLDO_CON57 0x0566 +#define MT6392_DIGLDO_CON58 0x0568 +#define MT6392_DIGLDO_CON59 0x056A +#define MT6392_DIGLDO_CON60 0x056C +#define MT6392_DIGLDO_CON61 0x056E +#define MT6392_DIGLDO_CON62 0x0570 +#define MT6392_DIGLDO_CON63 0x0572 +#define MT6392_EFUSE_CON0 0x0600 +#define MT6392_EFUSE_CON1 0x0602 +#define MT6392_EFUSE_CON2 0x0604 +#define MT6392_EFUSE_CON3 0x0606 +#define MT6392_EFUSE_CON4 0x0608 +#define MT6392_EFUSE_CON5 0x060A +#define MT6392_EFUSE_CON6 0x060C +#define MT6392_EFUSE_VAL_0_15 0x060E +#define MT6392_EFUSE_VAL_16_31 0x0610 +#define MT6392_EFUSE_VAL_32_47 0x0612 +#define MT6392_EFUSE_VAL_48_63 0x0614 +#define MT6392_EFUSE_VAL_64_79 0x0616 +#define MT6392_EFUSE_VAL_80_95 0x0618 +#define MT6392_EFUSE_VAL_96_111 0x061A +#define MT6392_EFUSE_VAL_112_127 0x061C +#define MT6392_EFUSE_VAL_128_143 0x061E +#define MT6392_EFUSE_VAL_144_159 0x0620 +#define MT6392_EFUSE_VAL_160_175 0x0622 +#define MT6392_EFUSE_VAL_176_191 0x0624 +#define MT6392_EFUSE_VAL_192_207 0x0626 +#define MT6392_EFUSE_VAL_208_223 0x0628 +#define MT6392_EFUSE_VAL_224_239 0x062A +#define MT6392_EFUSE_VAL_240_255 0x062C +#define MT6392_EFUSE_VAL_256_271 0x062E +#define MT6392_EFUSE_VAL_272_287 0x0630 +#define MT6392_EFUSE_VAL_288_303 0x0632 +#define MT6392_EFUSE_VAL_304_319 0x0634 +#define MT6392_EFUSE_VAL_320_335 0x0636 +#define MT6392_EFUSE_VAL_336_351 0x0638 +#define MT6392_EFUSE_VAL_352_367 0x063A +#define MT6392_EFUSE_VAL_368_383 0x063C +#define MT6392_EFUSE_VAL_384_399 0x063E +#define MT6392_EFUSE_VAL_400_415 0x0640 +#define MT6392_EFUSE_VAL_416_431 0x0642 +#define MT6392_RTC_MIX_CON0 0x0644 +#define MT6392_RTC_MIX_CON1 0x0646 +#define MT6392_EFUSE_VAL_432_447 0x0648 +#define MT6392_EFUSE_VAL_448_463 0x064A +#define MT6392_EFUSE_VAL_464_479 0x064C +#define MT6392_EFUSE_VAL_480_495 0x064E +#define MT6392_EFUSE_VAL_496_511 0x0650 +#define MT6392_EFUSE_DOUT_0_15 0x0652 +#define MT6392_EFUSE_DOUT_16_31 0x0654 +#define MT6392_EFUSE_DOUT_32_47 0x0656 +#define MT6392_EFUSE_DOUT_48_63 0x0658 +#define MT6392_EFUSE_DOUT_64_79 0x065A +#define MT6392_EFUSE_DOUT_80_95 0x065C +#define MT6392_EFUSE_DOUT_96_111 0x065E +#define MT6392_EFUSE_DOUT_112_127 0x0660 +#define MT6392_EFUSE_DOUT_128_143 0x0662 +#define MT6392_EFUSE_DOUT_144_159 0x0664 +#define MT6392_EFUSE_DOUT_160_175 0x0666 +#define MT6392_EFUSE_DOUT_176_191 0x0668 +#define MT6392_EFUSE_DOUT_192_207 0x066A +#define MT6392_EFUSE_DOUT_208_223 0x066C +#define MT6392_EFUSE_DOUT_224_239 0x066E +#define MT6392_EFUSE_DOUT_240_255 0x0670 +#define MT6392_EFUSE_DOUT_256_271 0x0672 +#define MT6392_EFUSE_DOUT_272_287 0x0674 +#define MT6392_EFUSE_DOUT_288_303 0x0676 +#define MT6392_EFUSE_DOUT_304_319 0x0678 +#define MT6392_EFUSE_DOUT_320_335 0x067A +#define MT6392_EFUSE_DOUT_336_351 0x067C +#define MT6392_EFUSE_DOUT_352_367 0x067E +#define MT6392_EFUSE_DOUT_368_383 0x0680 +#define MT6392_EFUSE_DOUT_384_399 0x0682 +#define MT6392_EFUSE_DOUT_400_415 0x0684 +#define MT6392_EFUSE_DOUT_416_431 0x0686 +#define MT6392_EFUSE_DOUT_432_447 0x0688 +#define MT6392_EFUSE_DOUT_448_463 0x068A +#define MT6392_EFUSE_DOUT_464_479 0x068C +#define MT6392_EFUSE_DOUT_480_495 0x068E +#define MT6392_EFUSE_DOUT_496_511 0x0690 +#define MT6392_EFUSE_CON7 0x0692 +#define MT6392_EFUSE_CON8 0x0694 +#define MT6392_EFUSE_CON9 0x0696 +#define MT6392_AUXADC_ADC0 0x0700 +#define MT6392_AUXADC_ADC1 0x0702 +#define MT6392_AUXADC_ADC2 0x0704 +#define MT6392_AUXADC_ADC3 0x0706 +#define MT6392_AUXADC_ADC4 0x0708 +#define MT6392_AUXADC_ADC5 0x070A +#define MT6392_AUXADC_ADC6 0x070C +#define MT6392_AUXADC_ADC7 0x070E +#define MT6392_AUXADC_ADC8 0x0710 +#define MT6392_AUXADC_ADC9 0x0712 +#define MT6392_AUXADC_ADC10 0x0714 +#define MT6392_AUXADC_ADC11 0x0716 +#define MT6392_AUXADC_ADC12 0x0718 +#define MT6392_AUXADC_ADC13 0x071A +#define MT6392_AUXADC_ADC14 0x071C +#define MT6392_AUXADC_ADC15 0x071E +#define MT6392_AUXADC_ADC16 0x0720 +#define MT6392_AUXADC_ADC17 0x0722 +#define MT6392_AUXADC_ADC18 0x0724 +#define MT6392_AUXADC_ADC19 0x0726 +#define MT6392_AUXADC_ADC20 0x0728 +#define MT6392_AUXADC_ADC21 0x072A +#define MT6392_AUXADC_ADC22 0x072C +#define MT6392_AUXADC_STA0 0x072E +#define MT6392_AUXADC_STA1 0x0730 +#define MT6392_AUXADC_RQST0 0x0732 +#define MT6392_AUXADC_RQST0_SET 0x0734 +#define MT6392_AUXADC_RQST0_CLR 0x0736 +#define MT6392_AUXADC_CON0 0x0738 +#define MT6392_AUXADC_CON0_SET 0x073A +#define MT6392_AUXADC_CON0_CLR 0x073C +#define MT6392_AUXADC_CON1 0x073E +#define MT6392_AUXADC_CON2 0x0740 +#define MT6392_AUXADC_CON3 0x0742 +#define MT6392_AUXADC_CON4 0x0744 +#define MT6392_AUXADC_CON5 0x0746 +#define MT6392_AUXADC_CON6 0x0748 +#define MT6392_AUXADC_CON7 0x074A +#define MT6392_AUXADC_CON8 0x074C +#define MT6392_AUXADC_CON9 0x074E +#define MT6392_AUXADC_CON10 0x0750 +#define MT6392_AUXADC_CON11 0x0752 +#define MT6392_AUXADC_CON12 0x0754 +#define MT6392_AUXADC_CON13 0x0756 +#define MT6392_AUXADC_CON14 0x0758 +#define MT6392_AUXADC_CON15 0x075A +#define MT6392_AUXADC_CON16 0x075C +#define MT6392_AUXADC_AUTORPT0 0x075E +#define MT6392_AUXADC_LBAT0 0x0760 +#define MT6392_AUXADC_LBAT1 0x0762 +#define MT6392_AUXADC_LBAT2 0x0764 +#define MT6392_AUXADC_LBAT3 0x0766 +#define MT6392_AUXADC_LBAT4 0x0768 +#define MT6392_AUXADC_LBAT5 0x076A +#define MT6392_AUXADC_LBAT6 0x076C +#define MT6392_AUXADC_THR0 0x076E +#define MT6392_AUXADC_THR1 0x0770 +#define MT6392_AUXADC_THR2 0x0772 +#define MT6392_AUXADC_THR3 0x0774 +#define MT6392_AUXADC_THR4 0x0776 +#define MT6392_AUXADC_THR5 0x0778 +#define MT6392_AUXADC_THR6 0x077A +#define MT6392_AUXADC_EFUSE0 0x077C +#define MT6392_AUXADC_EFUSE1 0x077E +#define MT6392_AUXADC_EFUSE2 0x0780 +#define MT6392_AUXADC_EFUSE3 0x0782 +#define MT6392_AUXADC_EFUSE4 0x0784 +#define MT6392_AUXADC_EFUSE5 0x0786 +#define MT6392_AUXADC_NAG_0 0x0788 +#define MT6392_AUXADC_NAG_1 0x078A +#define MT6392_AUXADC_NAG_2 0x078C +#define MT6392_AUXADC_NAG_3 0x078E +#define MT6392_AUXADC_NAG_4 0x0790 +#define MT6392_AUXADC_NAG_5 0x0792 +#define MT6392_AUXADC_NAG_6 0x0794 +#define MT6392_AUXADC_NAG_7 0x0796 +#define MT6392_AUXADC_NAG_8 0x0798 +#define MT6392_AUXADC_TYPEC_H_1 0x079A +#define MT6392_AUXADC_TYPEC_H_2 0x079C +#define MT6392_AUXADC_TYPEC_H_3 0x079E +#define MT6392_AUXADC_TYPEC_H_4 0x07A0 +#define MT6392_AUXADC_TYPEC_H_5 0x07A2 +#define MT6392_AUXADC_TYPEC_H_6 0x07A4 +#define MT6392_AUXADC_TYPEC_H_7 0x07A6 +#define MT6392_AUXADC_TYPEC_L_1 0x07A8 +#define MT6392_AUXADC_TYPEC_L_2 0x07AA +#define MT6392_AUXADC_TYPEC_L_3 0x07AC +#define MT6392_AUXADC_TYPEC_L_4 0x07AE +#define MT6392_AUXADC_TYPEC_L_5 0x07B0 +#define MT6392_AUXADC_TYPEC_L_6 0x07B2 +#define MT6392_AUXADC_TYPEC_L_7 0x07B4 +#define MT6392_AUXADC_NAG_9 0x07B6 +#define MT6392_TYPE_C_PHY_RG_0 0x0800 +#define MT6392_TYPE_C_PHY_RG_CC_RESERVE_CSR 0x0802 +#define MT6392_TYPE_C_VCMP_CTRL 0x0804 +#define MT6392_TYPE_C_CTRL 0x0806 +#define MT6392_TYPE_C_CC_SW_CTRL 0x080a +#define MT6392_TYPE_C_CC_VOL_PERIODIC_MEAS_VAL 0x080c +#define MT6392_TYPE_C_CC_VOL_DEBOUNCE_CNT_VAL 0x080e +#define MT6392_TYPE_C_DRP_SRC_CNT_VAL_0 0x0810 +#define MT6392_TYPE_C_DRP_SNK_CNT_VAL_0 0x0814 +#define MT6392_TYPE_C_DRP_TRY_CNT_VAL_0 0x0818 +#define MT6392_TYPE_C_CC_SRC_DEFAULT_DAC_VAL 0x0820 +#define MT6392_TYPE_C_CC_SRC_15_DAC_VAL 0x0822 +#define MT6392_TYPE_C_CC_SRC_30_DAC_VAL 0x0824 +#define MT6392_TYPE_C_CC_SNK_DAC_VAL_0 0x0828 +#define MT6392_TYPE_C_CC_SNK_DAC_VAL_1 0x082a +#define MT6392_TYPE_C_INTR_EN_0 0x0830 +#define MT6392_TYPE_C_INTR_EN_2 0x0834 +#define MT6392_TYPE_C_INTR_0 0x0838 +#define MT6392_TYPE_C_INTR_2 0x083C +#define MT6392_TYPE_C_CC_STATUS 0x0840 +#define MT6392_TYPE_C_PWR_STATUS 0x0842 +#define MT6392_TYPE_C_PHY_RG_CC1_RESISTENCE_0 0x0844 +#define MT6392_TYPE_C_PHY_RG_CC1_RESISTENCE_1 0x0846 +#define MT6392_TYPE_C_PHY_RG_CC2_RESISTENCE_0 0x0848 +#define MT6392_TYPE_C_PHY_RG_CC2_RESISTENCE_1 0x084a +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_ENABLE_0 0x0860 +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_VAL_0 0x0864 +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_VAL_1 0x0866 +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_ENABLE_1 0x0868 +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_VAL_2 0x086c +#define MT6392_TYPE_C_CC_DAC_CALI_CTRL 0x0870 +#define MT6392_TYPE_C_CC_DAC_CALI_RESULT 0x0872 +#define MT6392_TYPE_C_DEBUG_PORT_SELECT_0 0x0880 +#define MT6392_TYPE_C_DEBUG_PORT_SELECT_1 0x0882 +#define MT6392_TYPE_C_DEBUG_MODE_SELECT 0x0884 +#define MT6392_TYPE_C_DEBUG_OUT_READ_0 0x0888 +#define MT6392_TYPE_C_DEBUG_OUT_READ_1 0x088a +#define MT6392_TYPE_C_SW_DEBUG_PORT_0 0x088c +#define MT6392_TYPE_C_SW_DEBUG_PORT_1 0x088e + +#endif /* __MFD_MT6392_REGISTERS_H__ */ diff --git a/include/linux/mfd/mt6397/core.h b/include/linux/mfd/mt6397/cor= e.h index b774c3a4bb62..d665d0777065 100644 --- a/include/linux/mfd/mt6397/core.h +++ b/include/linux/mfd/mt6397/core.h @@ -20,6 +20,7 @@ enum chip_id { MT6359_CHIP_ID =3D 0x59, MT6366_CHIP_ID =3D 0x66, MT6391_CHIP_ID =3D 0x91, + MT6392_CHIP_ID =3D 0x92, MT6397_CHIP_ID =3D 0x97, }; =20 --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DF1A3F660B for ; Tue, 17 Mar 2026 18:46:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773194; cv=none; b=D3ncTNTdCUg+Si/hq8UJN1dLsacHYC30+Z97jdryjeC9+G0gaavonYapQiKbOB0HTK726w/PVghqyO4aFjV5P2EUnQrthkdICnjMlqe+LiiJd1nRecadSwfgRoHTbqkZB5GP6VjaPRKtD0FDYgS9DnPGt+xdaIZtjqDCXCFg2Hw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773194; c=relaxed/simple; bh=Rm8YpEh5JQQnoCUNqX6MA0nwUURcH53A53KBf309gpo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WvHHPqZxjrIIdtBwSjXmp24PtoPAmpwAnjjjiQFUJbuCffWccxx0oCrkiGyHtUiXP+J3aI3LwJGhFt2TPDstcBf/iwjwSsO6+haAQb7ohIbtbOWhwcqfr65HPQqkWLD6pJhzEYo44zenxDE8wuD6j3C9YkEgOeZWdVfMwz+0bx0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CkzHPmGW; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CkzHPmGW" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4853e1ce427so69028815e9.3 for ; Tue, 17 Mar 2026 11:46:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773191; x=1774377991; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Xx9XOFf+F102qRgcBU1Wfi3j2xvaU33q9Wk8R7lTDqU=; b=CkzHPmGWyASMqdFQKuXmso+vWCPYcDPbKacXTQJJbYYnUIisRPL6SEQculzvVNxiWl gZ/U+14qbKkDCSqpoLSPh4KmqOn5NwsOYjhrsfxoP60bZ58ZyptSVwIg2iyrmw32eXZT lqsRUrHrD4Pdj5iLbUVgxnPz5YuxhBlFGHkJ06WJsx70sJdN/SgPLe3Fw5vOD6ZMQhtB PY0y/ylw+YRReR6Bh5+Qndz3PSpHA306FQIpk9aMsKkIucihW5wMzqiGVvwLFTHyAPme EaaP315NoY8aJ7qZXRMPNBlZqfcgoh9Rug+IAUKp8b1ryIPaJ+2SZALc6FI1C3dhHoa4 T9vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773191; x=1774377991; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Xx9XOFf+F102qRgcBU1Wfi3j2xvaU33q9Wk8R7lTDqU=; b=JQFDpRmYg5T0naXxaDCpsKOUNhRqoY4/LYTZuafAMp4Uv5gkSQzI1zDQMHYvMLKm0s HzzsR70ykPLPWiskSzLd+L2BiemW2oPJ7cmv1k20OC5Qq72+zU1U4Elp/JadMcdYvLG2 x0DJmwwe4BSfT8gNiDMT55+mg6bo/xFGnKvRDsHjiH5uUxe/0k5p4TWiSOoALsOdAtOT PBCfLMgui113HRKPUps2vjtVJek19Dp2WDBVHT8Wa9dHgMrCmeNoV++Rc6j5uOMmsSkB 0k3GEsSu1dKLDpxBe8d+/BRgTEVf6GNvyyKG9i/jttKEe0cFzLt0tP14kD1vAABvEAKm 1NfA== X-Forwarded-Encrypted: i=1; AJvYcCVYysGUhMqmcTYjE/MW7NNNP07ekwvXQRSW7anbu7Id76HyNbW/oeQ19CJmzZ9DJNgAbMKpyHoXs8cSmMs=@vger.kernel.org X-Gm-Message-State: AOJu0YzSjq6zCwXf/bvu8Vl0bj7F1trrqcl2OJ7a1VyuoSgz9Bmd6AUT RbtKMDDU+v9t4BuWmf4PbN1pSe0K6trOgljTMM6TzdEEB5g3vPOh+hmu X-Gm-Gg: ATEYQzxplghtjE0DFwZBvUhb3eY+Kudcat7t/o6WWz/2kpuhlDp5Z0XDyUhZ4aeOyGD 21QtqVeeGmyHzj0KCjLhh1zSkpQe/fn+irLXABxDsRMv/mjvQutv9hPlYfDF3cOv9g0UVD8bFHd 7kjDeh/bQvBcffQMbNbvJ2vAzSWLY+9FpR2EGe6do/uijPa+hy5zrUz65MQfH+Bl4BhG7YEm9On 0GGsQbzYLylfHvZNO4ndDHmzCbdSMHwC3bec0HHJyx1up76yEF+CboAhn6jN8Koi9T38Zlu2rnO pHYN0pcpkNTwwHDarDXn099SMiR+C0LE1SnAUl5wuDKsu2F+9nA5ci8nYkURLdnyBAz2R2p0hqx Dm3+aRTcOuuom3rGi6H2bY4LtBpe52bbxNPFrfuHjkyI5ZYCCQe+LkGZMO++8UJ/0g5iB2F2Mog jVvYammEMWuas687fO/IE= X-Received: by 2002:a05:600c:a43:b0:485:5981:1423 with SMTP id 5b1f17b1804b1-486f442e6f0mr11506045e9.3.1773773191445; Tue, 17 Mar 2026 11:46:31 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.46.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:46:31 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Val Packett , Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Gary Bisson , Julien Massot , Louis-Alexis Eyraud , Fabien Parent , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 6/9] input: keyboard: mtk-pmic-keys: add MT6392 support Date: Tue, 17 Mar 2026 18:43:09 +0000 Message-ID: <20260317184507.523060-7-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Val Packett Add support for the MT6392 PMIC to the keys driver. Signed-off-by: Val Packett Signed-off-by: Luca Leonardo Scorcia Acked-by: Dmitry Torokhov Reviewed-by: AngeloGioacchino Del Regno --- drivers/input/keyboard/mtk-pmic-keys.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/input/keyboard/mtk-pmic-keys.c b/drivers/input/keyboar= d/mtk-pmic-keys.c index c78d9f6d97c4..8b4a89fce4fb 100644 --- a/drivers/input/keyboard/mtk-pmic-keys.c +++ b/drivers/input/keyboard/mtk-pmic-keys.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -69,6 +70,19 @@ static const struct mtk_pmic_regs mt6397_regs =3D { .rst_lprst_mask =3D MTK_PMIC_RST_DU_MASK, }; =20 +static const struct mtk_pmic_regs mt6392_regs =3D { + .keys_regs[MTK_PMIC_PWRKEY_INDEX] =3D + MTK_PMIC_KEYS_REGS(MT6392_CHRSTATUS, 0x2, + MT6392_INT_MISC_CON, 0x10, + MTK_PMIC_PWRKEY_RST), + .keys_regs[MTK_PMIC_HOMEKEY_INDEX] =3D + MTK_PMIC_KEYS_REGS(MT6392_CHRSTATUS, 0x4, + MT6392_INT_MISC_CON, 0x8, + MTK_PMIC_HOMEKEY_RST), + .pmic_rst_reg =3D MT6392_TOP_RST_MISC, + .rst_lprst_mask =3D MTK_PMIC_RST_DU_MASK, +}; + static const struct mtk_pmic_regs mt6323_regs =3D { .keys_regs[MTK_PMIC_PWRKEY_INDEX] =3D MTK_PMIC_KEYS_REGS(MT6323_CHRSTATUS, @@ -301,6 +315,9 @@ static const struct of_device_id of_mtk_pmic_keys_match= _tbl[] =3D { { .compatible =3D "mediatek,mt6397-keys", .data =3D &mt6397_regs, + }, { + .compatible =3D "mediatek,mt6392-keys", + .data =3D &mt6392_regs, }, { .compatible =3D "mediatek,mt6323-keys", .data =3D &mt6323_regs, --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C1F036493D for ; Tue, 17 Mar 2026 18:46:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773207; cv=none; b=NyWHg5+8YlSBea0JZoFGves4nRQkzgGT6F0Wb4F2uFG/Vv92y7U3veC8BQ25kqSc6R+eXjfPyE75GRm2BoIm87d8knPO1OSmfiBReYG8ffMqPITJW4PPcq5CzdfMfG9hI8ToW29IzHwkDmyPvy7gYL1SJh+OFgRf3XxEK+aYCjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773207; c=relaxed/simple; bh=H/15e+tV/d2pzSks+rLQMNbzkgJBsJnsW7LKjF/mJKY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ez2tj+kcxXf84k2klUhgsSSj5U6prJMuno0Z0lrDXCJkkdTqNaS9Ehf3hAli605R4hdA33u/9+cycqKdQESjKZmOMiX2sfBInT0arVSF4c+1VilasUluC4+6PZrGP/uyCk48x7X2yvYGNss4w7r6D3tIqwgbP4wLZIfkYyg2yQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CyLauK+w; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CyLauK+w" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4853aec185aso50313815e9.1 for ; Tue, 17 Mar 2026 11:46:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773203; x=1774378003; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5Rfm0YqeQRT0IKIMBoMuMttRETLBxjpI7/MLXXdpqqE=; b=CyLauK+wH1Ox/EppRNDA4bCDUBxUQ1mpKMYC2s13wOVqxwyOQtTjWPOS4Nzhhn2asQ XGXwGlPmD4iKkFmQkcE4LYyOWlUBvKFu4diqrsdGggGiKiReE9z5Y/+TotsFYH8Xntia gWbd7tXbQsdUSn+qOT/aAA8SMjYBErhlq9aQZWY4ufv2bqZ+nXmIvx60HkRaKoEsNZoH 934+vCmC4eK13f7nahfc8GdPZ5Su+8Nqf1qvwwuXDKjZuwK02Is0gwyf24JxqI1vtwT0 9GX96zHvoLgf+U/HBos8O07M1S86uw38EkSBeKorBNZEIOIxA6vZzCjMTsj9w504DpWj P/hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773203; x=1774378003; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5Rfm0YqeQRT0IKIMBoMuMttRETLBxjpI7/MLXXdpqqE=; b=UFBsRBaGRR3knzZBLK3gPy+8yufeQ25UZ8HZZhYNbgIeORLA25/Q5YdPvnNTkbG2W8 790Yb9/o2eOETg8dY6twgIkrptDZVs1KZTGUaZxK+HH2VDBZk6c4qoc0EO56t3gEA1Gk aTwj5dDynsIUpl627qSMDCtjZYHKpAo+BpZKd8DGmhbU8RqidO9QmDcfEy6W0P7xev7p 2M8r2Vr6OsEZLLvySEwOSjRhm6GXbXMuQoeWefJB1r8aVobCYh42Oxq4JXDFkNn/y7iN gIK7F2C56dEn009aizbJicKd7hXrjipL6+fDKF84CdNqfSgM8AKVMB33Hr3kjxu6e384 6D5w== X-Forwarded-Encrypted: i=1; AJvYcCXL4yW90sZxgMyDj9Y1z7ocbUq6MUbH04uL2HF4Fn5G05a0wpppExKZa7KUo7Tj3AW414HEMUQbq37H/ws=@vger.kernel.org X-Gm-Message-State: AOJu0YyVaAQtbzs2q5huJmiX43D3Xqoauh5KM5YOoZmJIPO9vnJirJQk IcFF/QHhWFL6yoLovmr3J2A+9G+25MEGfkU0+JzGX7z+Qq5YGFAp7Aj3 X-Gm-Gg: ATEYQzxclRCrtKO+l2vb+QMjGLvOSYnpOhpRRpTr0cTMgXy8nvGGbDEA+cXvt2k5dld 1xDGTzbxNyeG+G6Vmi/Bhdue1UNGTJ6VSsmneHJtKdZXJuRaj4pnv0MkgQrcdA9rL4Ae456T8NJ l2ClJvGloIRRUDKaVfk3DTcAp1ziJas94Yoej70ZQROVBmXjyrcF2XqRL2WcdSyUwIdTFxU7wyw fN2smzYdWyW+OYiR/wRVdBg90DPz3y3TS29BidLpXHSVvJyAPIH67lmipFYysueZAhJEt5KvmTX boClI7PDLIeiIp71RhQWfi09dfu3DafOpd7EQFHtN2yC/N+V9jPWQzS+KutTvNplSqZO1YJrHaG iGpvxjGwiCfOSTTDGfIXSVK8KQPqYBtfJHf3NPjsP6GNTe6gRtpEeLtjiyNKLIAu85LR+KFcKMt tUOsS6BvUvGXMv9YJjok8= X-Received: by 2002:a05:600c:46c5:b0:485:419c:4eba with SMTP id 5b1f17b1804b1-486f441fbfcmr11282675e9.1.1773773202275; Tue, 17 Mar 2026 11:46:42 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.46.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:46:41 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Fabien Parent , Val Packett , Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Gary Bisson , Louis-Alexis Eyraud , Julien Massot , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 7/9] regulator: mt6392: Add support for MT6392 regulator Date: Tue, 17 Mar 2026 18:43:10 +0000 Message-ID: <20260317184507.523060-8-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Fabien Parent The MT6392 is a regulator found on boards based on the MediaTek MT8167, MT8516, and probably other SoCs. It is a so called PMIC and connects as a slave to a SoC using SPI, wrapped inside PWRAP. Signed-off-by: Fabien Parent Co-developed-by: Val Packett Signed-off-by: Val Packett Signed-off-by: Luca Leonardo Scorcia Reviewed-by: AngeloGioacchino Del Regno --- drivers/regulator/Kconfig | 9 + drivers/regulator/Makefile | 1 + drivers/regulator/mt6392-regulator.c | 487 +++++++++++++++++++++ include/linux/regulator/mt6392-regulator.h | 40 ++ 4 files changed, 537 insertions(+) create mode 100644 drivers/regulator/mt6392-regulator.c create mode 100644 include/linux/regulator/mt6392-regulator.h diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index d2335276cce5..66876d730807 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -991,6 +991,15 @@ config REGULATOR_MT6380 This driver supports the control of different power rails of device through regulator interface. =20 +config REGULATOR_MT6392 + tristate "MediaTek MT6392 PMIC" + depends on MFD_MT6397 + help + Say y here to select this option to enable the power regulator of + MediaTek MT6392 PMIC. + This driver supports the control of different power rails of device + through regulator interface. + config REGULATOR_MT6397 tristate "MediaTek MT6397 PMIC" depends on MFD_MT6397 diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile index 1beba1493241..db5145cfcf36 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -117,6 +117,7 @@ obj-$(CONFIG_REGULATOR_MT6360) +=3D mt6360-regulator.o obj-$(CONFIG_REGULATOR_MT6363) +=3D mt6363-regulator.o obj-$(CONFIG_REGULATOR_MT6370) +=3D mt6370-regulator.o obj-$(CONFIG_REGULATOR_MT6380) +=3D mt6380-regulator.o +obj-$(CONFIG_REGULATOR_MT6392) +=3D mt6392-regulator.o obj-$(CONFIG_REGULATOR_MT6397) +=3D mt6397-regulator.o obj-$(CONFIG_REGULATOR_MTK_DVFSRC) +=3D mtk-dvfsrc-regulator.o obj-$(CONFIG_REGULATOR_QCOM_LABIBB) +=3D qcom-labibb-regulator.o diff --git a/drivers/regulator/mt6392-regulator.c b/drivers/regulator/mt639= 2-regulator.c new file mode 100644 index 000000000000..50cc0019f48a --- /dev/null +++ b/drivers/regulator/mt6392-regulator.c @@ -0,0 +1,487 @@ +// SPDX-License-Identifier: GPL-2.0 +// +// Copyright (c) 2020 MediaTek Inc. +// Copyright (c) 2020 BayLibre, SAS. +// Author: Chen Zhong +// Author: Fabien Parent +// +// Based on mt6397-regulator.c + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * MT6392 regulators' information + * + * @desc: standard fields of regulator description. + * @qi: Mask for query enable signal status of regulators + * @vselon_reg: Register sections for hardware control mode of bucks + * @vselctrl_reg: Register for controlling the buck control mode. + * @vselctrl_mask: Mask for query buck's voltage control mode. + */ +struct mt6392_regulator_info { + struct regulator_desc desc; + u32 qi; + u32 vselon_reg; + u32 vselctrl_reg; + u32 vselctrl_mask; + u32 modeset_reg; + u32 modeset_mask; +}; + +#define MT6392_BUCK(match, vreg, min, max, step, volt_ranges, enreg, \ + vosel, vosel_mask, voselon, vosel_ctrl, \ + _modeset_reg, _modeset_mask, rampdelay) \ +[MT6392_ID_##vreg] =3D { \ + .desc =3D { \ + .name =3D #vreg, \ + .of_match =3D of_match_ptr(match), \ + .ops =3D &mt6392_volt_range_ops, \ + .type =3D REGULATOR_VOLTAGE, \ + .id =3D MT6392_ID_##vreg, \ + .owner =3D THIS_MODULE, \ + .n_voltages =3D ((max) - (min)) / (step) + 1, \ + .linear_ranges =3D volt_ranges, \ + .n_linear_ranges =3D ARRAY_SIZE(volt_ranges), \ + .vsel_reg =3D vosel, \ + .vsel_mask =3D vosel_mask, \ + .enable_reg =3D enreg, \ + .enable_mask =3D BIT(0), \ + .ramp_delay =3D rampdelay, \ + }, \ + .qi =3D BIT(13), \ + .vselon_reg =3D voselon, \ + .vselctrl_reg =3D vosel_ctrl, \ + .vselctrl_mask =3D BIT(1), \ + .modeset_reg =3D _modeset_reg, \ + .modeset_mask =3D _modeset_mask, \ +} + +#define MT6392_LDO(match, vreg, ldo_volt_table, enreg, enbit, vosel, \ + vosel_mask, _modeset_reg, _modeset_mask, entime) \ +[MT6392_ID_##vreg] =3D { \ + .desc =3D { \ + .name =3D #vreg, \ + .of_match =3D of_match_ptr(match), \ + .ops =3D &mt6392_volt_table_ops, \ + .type =3D REGULATOR_VOLTAGE, \ + .id =3D MT6392_ID_##vreg, \ + .owner =3D THIS_MODULE, \ + .n_voltages =3D ARRAY_SIZE(ldo_volt_table), \ + .volt_table =3D ldo_volt_table, \ + .vsel_reg =3D vosel, \ + .vsel_mask =3D vosel_mask, \ + .enable_reg =3D enreg, \ + .enable_mask =3D BIT(enbit), \ + .enable_time =3D entime, \ + }, \ + .qi =3D BIT(15), \ + .modeset_reg =3D _modeset_reg, \ + .modeset_mask =3D _modeset_mask, \ +} + +#define MT6392_LDO_LINEAR(match, vreg, min, max, step, volt_ranges, \ + enreg, enbit, vosel, vosel_mask, _modeset_reg, \ + _modeset_mask, entime) \ +[MT6392_ID_##vreg] =3D { \ + .desc =3D { \ + .name =3D #vreg, \ + .of_match =3D of_match_ptr(match), \ + .ops =3D &mt6392_volt_ldo_range_ops, \ + .type =3D REGULATOR_VOLTAGE, \ + .id =3D MT6392_ID_##vreg, \ + .owner =3D THIS_MODULE, \ + .n_voltages =3D ((max) - (min)) / (step) + 1, \ + .linear_ranges =3D volt_ranges, \ + .n_linear_ranges =3D ARRAY_SIZE(volt_ranges), \ + .vsel_reg =3D vosel, \ + .vsel_mask =3D vosel_mask, \ + .enable_reg =3D enreg, \ + .enable_mask =3D BIT(enbit), \ + .enable_time =3D entime, \ + }, \ + .qi =3D BIT(15), \ + .modeset_reg =3D _modeset_reg, \ + .modeset_mask =3D _modeset_mask, \ +} + +#define MT6392_REG_FIXED(match, vreg, enreg, enbit, volt, \ + _modeset_reg, _modeset_mask, entime) \ +[MT6392_ID_##vreg] =3D { \ + .desc =3D { \ + .name =3D #vreg, \ + .of_match =3D of_match_ptr(match), \ + .ops =3D &mt6392_volt_fixed_ops, \ + .type =3D REGULATOR_VOLTAGE, \ + .id =3D MT6392_ID_##vreg, \ + .owner =3D THIS_MODULE, \ + .n_voltages =3D 1, \ + .enable_reg =3D enreg, \ + .enable_mask =3D BIT(enbit), \ + .enable_time =3D entime, \ + .min_uV =3D volt, \ + }, \ + .qi =3D BIT(15), \ + .modeset_reg =3D _modeset_reg, \ + .modeset_mask =3D _modeset_mask, \ +} + +#define MT6392_REG_FIXED_NO_MODE(match, vreg, enreg, enbit, volt, \ + entime) \ +[MT6392_ID_##vreg] =3D { \ + .desc =3D { \ + .name =3D #vreg, \ + .of_match =3D of_match_ptr(match), \ + .ops =3D &mt6392_volt_fixed_no_mode_ops, \ + .type =3D REGULATOR_VOLTAGE, \ + .id =3D MT6392_ID_##vreg, \ + .owner =3D THIS_MODULE, \ + .n_voltages =3D 1, \ + .enable_reg =3D enreg, \ + .enable_mask =3D BIT(enbit), \ + .enable_time =3D entime, \ + .min_uV =3D volt, \ + }, \ + .qi =3D BIT(15), \ +} + +static const struct linear_range buck_volt_range1[] =3D { + REGULATOR_LINEAR_RANGE(700000, 0, 0x7f, 6250), +}; + +static const struct linear_range buck_volt_range2[] =3D { + REGULATOR_LINEAR_RANGE(1400000, 0, 0x7f, 12500), +}; + +static const u32 ldo_volt_table1[] =3D { + 1800000, 1900000, 2000000, 2200000, +}; + +static const struct linear_range ldo_volt_range2[] =3D { + REGULATOR_LINEAR_RANGE(3300000, 0, 3, 100000), +}; + +static const u32 ldo_volt_table3[] =3D { + 1800000, 3300000, +}; + +static const u32 ldo_volt_table4[] =3D { + 3000000, 3300000, +}; + +static const u32 ldo_volt_table5[] =3D { + 1200000, 1300000, 1500000, 1800000, 2000000, 2800000, 3000000, 3300000, +}; + +static const u32 ldo_volt_table6[] =3D { + 1240000, 1390000, +}; + +static const u32 ldo_volt_table7[] =3D { + 1200000, 1300000, 1500000, 1800000, +}; + +static const u32 ldo_volt_table8[] =3D { + 1800000, 2000000, +}; + +static int mt6392_buck_set_mode(struct regulator_dev *rdev, unsigned int m= ode) +{ + int ret, val =3D 0; + struct mt6392_regulator_info *info =3D rdev_get_drvdata(rdev); + + switch (mode) { + case REGULATOR_MODE_FAST: + val =3D MT6392_BUCK_MODE_FORCE_PWM; + break; + case REGULATOR_MODE_NORMAL: + val =3D MT6392_BUCK_MODE_AUTO; + break; + default: + return -EINVAL; + } + + val <<=3D ffs(info->modeset_mask) - 1; + + ret =3D regmap_update_bits(rdev->regmap, info->modeset_reg, + info->modeset_mask, val); + + return ret; +} + +static unsigned int mt6392_buck_get_mode(struct regulator_dev *rdev) +{ + unsigned int val; + unsigned int mode; + int ret; + struct mt6392_regulator_info *info =3D rdev_get_drvdata(rdev); + + ret =3D regmap_read(rdev->regmap, info->modeset_reg, &val); + if (ret < 0) + return ret; + + val &=3D info->modeset_mask; + val >>=3D ffs(info->modeset_mask) - 1; + + if (val & 0x1) + mode =3D REGULATOR_MODE_FAST; + else + mode =3D REGULATOR_MODE_NORMAL; + + return mode; +} + +static int mt6392_ldo_set_mode(struct regulator_dev *rdev, unsigned int mo= de) +{ + int ret, val =3D 0; + struct mt6392_regulator_info *info =3D rdev_get_drvdata(rdev); + + switch (mode) { + case REGULATOR_MODE_STANDBY: + val =3D MT6392_LDO_MODE_LP; + break; + case REGULATOR_MODE_NORMAL: + val =3D MT6392_LDO_MODE_NORMAL; + break; + default: + return -EINVAL; + } + + val <<=3D ffs(info->modeset_mask) - 1; + + ret =3D regmap_update_bits(rdev->regmap, info->modeset_reg, + info->modeset_mask, val); + + return ret; +} + +static unsigned int mt6392_ldo_get_mode(struct regulator_dev *rdev) +{ + unsigned int val; + unsigned int mode; + int ret; + struct mt6392_regulator_info *info =3D rdev_get_drvdata(rdev); + + ret =3D regmap_read(rdev->regmap, info->modeset_reg, &val); + if (ret < 0) + return ret; + + val &=3D info->modeset_mask; + val >>=3D ffs(info->modeset_mask) - 1; + + if (val & 0x1) + mode =3D REGULATOR_MODE_STANDBY; + else + mode =3D REGULATOR_MODE_NORMAL; + + return mode; +} + +static const struct regulator_ops mt6392_volt_range_ops =3D { + .list_voltage =3D regulator_list_voltage_linear_range, + .map_voltage =3D regulator_map_voltage_linear_range, + .set_voltage_sel =3D regulator_set_voltage_sel_regmap, + .get_voltage_sel =3D regulator_get_voltage_sel_regmap, + .set_voltage_time_sel =3D regulator_set_voltage_time_sel, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, + .set_mode =3D mt6392_buck_set_mode, + .get_mode =3D mt6392_buck_get_mode, +}; + +static const struct regulator_ops mt6392_volt_table_ops =3D { + .list_voltage =3D regulator_list_voltage_table, + .map_voltage =3D regulator_map_voltage_iterate, + .set_voltage_sel =3D regulator_set_voltage_sel_regmap, + .get_voltage_sel =3D regulator_get_voltage_sel_regmap, + .set_voltage_time_sel =3D regulator_set_voltage_time_sel, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, + .set_mode =3D mt6392_ldo_set_mode, + .get_mode =3D mt6392_ldo_get_mode, +}; + +static const struct regulator_ops mt6392_volt_ldo_range_ops =3D { + .list_voltage =3D regulator_list_voltage_linear_range, + .map_voltage =3D regulator_map_voltage_linear_range, + .set_voltage_sel =3D regulator_set_voltage_sel_regmap, + .get_voltage_sel =3D regulator_get_voltage_sel_regmap, + .set_voltage_time_sel =3D regulator_set_voltage_time_sel, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, + .set_mode =3D mt6392_ldo_set_mode, + .get_mode =3D mt6392_ldo_get_mode, +}; + +static const struct regulator_ops mt6392_volt_fixed_ops =3D { + .list_voltage =3D regulator_list_voltage_linear, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, + .set_mode =3D mt6392_ldo_set_mode, + .get_mode =3D mt6392_ldo_get_mode, +}; + +static const struct regulator_ops mt6392_volt_fixed_no_mode_ops =3D { + .list_voltage =3D regulator_list_voltage_linear, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, +}; + +/* The array is indexed by id(MT6392_ID_XXX) */ +static struct mt6392_regulator_info mt6392_regulators[] =3D { + MT6392_BUCK("buck_vproc", VPROC, 700000, 1493750, 6250, + buck_volt_range1, MT6392_VPROC_CON7, MT6392_VPROC_CON9, 0x7f, + MT6392_VPROC_CON10, MT6392_VPROC_CON5, MT6392_VPROC_CON2, 0x100, + 12500), + MT6392_BUCK("buck_vsys", VSYS, 1400000, 2987500, 12500, + buck_volt_range2, MT6392_VSYS_CON7, MT6392_VSYS_CON9, 0x7f, + MT6392_VSYS_CON10, MT6392_VSYS_CON5, MT6392_VSYS_CON2, 0x100, + 25000), + MT6392_BUCK("buck_vcore", VCORE, 700000, 1493750, 6250, + buck_volt_range1, MT6392_VCORE_CON7, MT6392_VCORE_CON9, 0x7f, + MT6392_VCORE_CON10, MT6392_VCORE_CON5, MT6392_VCORE_CON2, 0x100, + 12500), + MT6392_REG_FIXED("ldo_vxo22", VXO22, MT6392_ANALDO_CON1, 10, 2200000, + MT6392_ANALDO_CON1, 0x2, 110), + MT6392_LDO("ldo_vaud22", VAUD22, ldo_volt_table1, + MT6392_ANALDO_CON2, 14, MT6392_ANALDO_CON8, 0x60, + MT6392_ANALDO_CON2, 0x2, 264), + MT6392_REG_FIXED_NO_MODE("ldo_vcama", VCAMA, MT6392_ANALDO_CON4, 15, + 2800000, 264), + MT6392_REG_FIXED("ldo_vaud28", VAUD28, MT6392_ANALDO_CON23, 14, 2800000, + MT6392_ANALDO_CON23, 0x2, 264), + MT6392_REG_FIXED("ldo_vadc18", VADC18, MT6392_ANALDO_CON25, 14, 1800000, + MT6392_ANALDO_CON25, 0x2, 264), + MT6392_LDO_LINEAR("ldo_vcn35", VCN35, 3300000, 3600000, 100000, + ldo_volt_range2, MT6392_ANALDO_CON21, 12, + MT6392_ANALDO_CON16, 0xC, MT6392_ANALDO_CON21, 0x2, 264), + MT6392_REG_FIXED("ldo_vio28", VIO28, MT6392_DIGLDO_CON0, 14, 2800000, + MT6392_DIGLDO_CON0, 0x2, 264), + MT6392_REG_FIXED("ldo_vusb", VUSB, MT6392_DIGLDO_CON2, 14, 3300000, + MT6392_DIGLDO_CON2, 0x2, 264), + MT6392_LDO("ldo_vmc", VMC, ldo_volt_table3, + MT6392_DIGLDO_CON3, 12, MT6392_DIGLDO_CON24, 0x10, + MT6392_DIGLDO_CON3, 0x2, 264), + MT6392_LDO("ldo_vmch", VMCH, ldo_volt_table4, + MT6392_DIGLDO_CON5, 14, MT6392_DIGLDO_CON26, 0x80, + MT6392_DIGLDO_CON5, 0x2, 264), + MT6392_LDO("ldo_vemc3v3", VEMC3V3, ldo_volt_table4, + MT6392_DIGLDO_CON6, 14, MT6392_DIGLDO_CON27, 0x80, + MT6392_DIGLDO_CON6, 0x2, 264), + MT6392_LDO("ldo_vgp1", VGP1, ldo_volt_table5, + MT6392_DIGLDO_CON7, 15, MT6392_DIGLDO_CON28, 0xE0, + MT6392_DIGLDO_CON7, 0x2, 264), + MT6392_LDO("ldo_vgp2", VGP2, ldo_volt_table5, + MT6392_DIGLDO_CON8, 15, MT6392_DIGLDO_CON29, 0xE0, + MT6392_DIGLDO_CON8, 0x2, 264), + MT6392_REG_FIXED("ldo_vcn18", VCN18, MT6392_DIGLDO_CON11, 14, 1800000, + MT6392_DIGLDO_CON11, 0x2, 264), + MT6392_LDO("ldo_vcamaf", VCAMAF, ldo_volt_table5, + MT6392_DIGLDO_CON31, 15, MT6392_DIGLDO_CON32, 0xE0, + MT6392_DIGLDO_CON31, 0x2, 264), + MT6392_LDO("ldo_vm", VM, ldo_volt_table6, + MT6392_DIGLDO_CON47, 14, MT6392_DIGLDO_CON48, 0x30, + MT6392_DIGLDO_CON47, 0x2, 264), + MT6392_REG_FIXED("ldo_vio18", VIO18, MT6392_DIGLDO_CON49, 14, 1800000, + MT6392_DIGLDO_CON49, 0x2, 264), + MT6392_LDO("ldo_vcamd", VCAMD, ldo_volt_table7, + MT6392_DIGLDO_CON51, 14, MT6392_DIGLDO_CON52, 0x60, + MT6392_DIGLDO_CON51, 0x2, 264), + MT6392_REG_FIXED("ldo_vcamio", VCAMIO, MT6392_DIGLDO_CON53, 14, 1800000, + MT6392_DIGLDO_CON53, 0x2, 264), + MT6392_REG_FIXED("ldo_vm25", VM25, MT6392_DIGLDO_CON55, 14, 2500000, + MT6392_DIGLDO_CON55, 0x2, 264), + MT6392_LDO("ldo_vefuse", VEFUSE, ldo_volt_table8, + MT6392_DIGLDO_CON57, 14, MT6392_DIGLDO_CON58, 0x10, + MT6392_DIGLDO_CON57, 0x2, 264), +}; + +static int mt6392_set_buck_vosel_reg(struct platform_device *pdev) +{ + struct mt6397_chip *mt6392 =3D dev_get_drvdata(pdev->dev.parent); + int i; + u32 regval; + + for (i =3D 0; i < MT6392_MAX_REGULATOR; i++) { + if (mt6392_regulators[i].vselctrl_reg) { + if (regmap_read(mt6392->regmap, + mt6392_regulators[i].vselctrl_reg, + ®val) < 0) { + dev_err(&pdev->dev, + "Failed to read buck ctrl\n"); + return -EIO; + } + + if (regval & mt6392_regulators[i].vselctrl_mask) { + mt6392_regulators[i].desc.vsel_reg =3D + mt6392_regulators[i].vselon_reg; + } + } + } + + return 0; +} + +static int mt6392_regulator_probe(struct platform_device *pdev) +{ + struct mt6397_chip *mt6392 =3D dev_get_drvdata(pdev->dev.parent); + struct regulator_config config =3D {}; + struct regulator_dev *rdev; + int i; + + /* Query buck controller to select activated voltage register part */ + if (mt6392_set_buck_vosel_reg(pdev)) + return -EIO; + + for (i =3D 0; i < MT6392_MAX_REGULATOR; i++) { + config.dev =3D &pdev->dev; + config.driver_data =3D &mt6392_regulators[i]; + config.regmap =3D mt6392->regmap; + + rdev =3D devm_regulator_register(&pdev->dev, + &mt6392_regulators[i].desc, + &config); + if (IS_ERR(rdev)) { + dev_err(&pdev->dev, "failed to register %s\n", + mt6392_regulators[i].desc.name); + return PTR_ERR(rdev); + } + } + + return 0; +} + +static const struct platform_device_id mt6392_platform_ids[] =3D { + {"mt6392-regulator", 0}, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(platform, mt6392_platform_ids); + +static struct platform_driver mt6392_regulator_driver =3D { + .driver =3D { + .name =3D "mt6392-regulator", + }, + .probe =3D mt6392_regulator_probe, + .id_table =3D mt6392_platform_ids, +}; + +module_platform_driver(mt6392_regulator_driver); + +MODULE_AUTHOR("Chen Zhong "); +MODULE_DESCRIPTION("Regulator Driver for MediaTek MT6392 PMIC"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/regulator/mt6392-regulator.h b/include/linux/reg= ulator/mt6392-regulator.h new file mode 100644 index 000000000000..20d80dfc8783 --- /dev/null +++ b/include/linux/regulator/mt6392-regulator.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2019 MediaTek Inc. + * Author: Chen Zhong + */ + +#ifndef __LINUX_REGULATOR_MT6392_H +#define __LINUX_REGULATOR_MT6392_H + +enum { + MT6392_ID_VPROC =3D 0, + MT6392_ID_VSYS, + MT6392_ID_VCORE, + MT6392_ID_VXO22, + MT6392_ID_VAUD22, + MT6392_ID_VCAMA, + MT6392_ID_VAUD28, + MT6392_ID_VADC18, + MT6392_ID_VCN35, + MT6392_ID_VIO28, + MT6392_ID_VUSB =3D 10, + MT6392_ID_VMC, + MT6392_ID_VMCH, + MT6392_ID_VEMC3V3, + MT6392_ID_VGP1, + MT6392_ID_VGP2, + MT6392_ID_VCN18, + MT6392_ID_VCAMAF, + MT6392_ID_VM, + MT6392_ID_VIO18, + MT6392_ID_VCAMD, + MT6392_ID_VCAMIO, + MT6392_ID_VM25, + MT6392_ID_VEFUSE, + MT6392_ID_RG_MAX, +}; + +#define MT6392_MAX_REGULATOR MT6392_ID_RG_MAX + +#endif /* __LINUX_REGULATOR_MT6392_H */ --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B370136F400 for ; Tue, 17 Mar 2026 18:46:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773216; cv=none; b=Ih1tfql4in36PTWQMYCwcJXIXelzJ+2pbS5kvBEkynLcikG3JJaqGOjJeIuNB49wzFe3fqBmObWTmMTWw0PNqIYrmk6to+17jRizXHwtAj0+xiQCIscXhuLM2JLAIy2I9xVtHU1MPEX0zP5ATZfJkW957ElnBgszmJDPcFMrDDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773216; c=relaxed/simple; bh=afZ1HjrfXvsRlWddGdki+RptwDdRc2stJrbXSWL55Cw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NbCGkOIYpekBo4m9jWSZiMXgYlUCIlLoRtq0OZn8cbywsEBhx34C3CdfGHb0U+B//LYY5jUw8tlb7bPdTVHL9K3YPjbpJi8Ec/YLbkn9yto7Fd+pxI9l/VNeHl6Z2X94a1ti/Un0JIzme3yAFkeK4EwRax1gPLCiEMpbfXYYY/c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UCTmha8R; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UCTmha8R" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4853c1ca73aso51746575e9.2 for ; Tue, 17 Mar 2026 11:46:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773213; x=1774378013; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jITvgy6W9V0ZjL2HN2g4X8oAqibIQBDVRpwgqXTuyEY=; b=UCTmha8RXT+l/dq+2HQIDKZ8f81z6gBmvnnHsa27pyv380ihntJPtShtwKOO0910sg 4DTj4yK8VEC+mNOsnaY++bCQFA+ISkbkRjj8P8SFSZCHI8kw8N2PziTHA7BUhFvnrFnm XJr60wWWuTZfAZW6Ik5wttXh75beqwZ9pj6DTZkvqY+895UBZWuy35cJjwFb+cbZjNeP hf1Fhgonj3K4SnBlJpNev8Y5uSbDDRByv73rvkVaj0I02TNRm8g21+LXZNE6Kf3K3blE e1i26Em4CvG4dMq3e32BB2Rz3newWMEU2dmD9o9Y16IvPtX1vqa7HOANpNH4uuJq+c3Q AslQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773213; x=1774378013; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jITvgy6W9V0ZjL2HN2g4X8oAqibIQBDVRpwgqXTuyEY=; b=fXqy33+P5B5ZkLHRgKION86lgfLa1q4Owr+jfrj+U7oUxKmt6k4r2pGuMTLy2zz/nN ikeJQWNgYa8RP1jAxRQEuSiRYN6MzvGmDHFS24O5GeDelC1WvnJT7rekuJac57+45h+o fuPI+2gvtEYLQFINfLjqHWKzZxeqNSpluWbPV9UlPtp+68H/V1kw1LCrbfIdzmfUq1R1 vBmOHMPA9xEipDpVnEI+BDeX3TFglczcQi1GGu7VindI9WtHZngarhxItxxoqlOy3JGs I4hjUWv43IiuJ1WORTiCwe10uMVCdbJxADAeZUnR4kWQWKnx934fNWBZd2BNrggp5pv9 dZxQ== X-Forwarded-Encrypted: i=1; AJvYcCWemrYBADnGX0fCkcWqBrhVTtOR4kkmXUrTGNY5gQrzT3fOHzKroNe8vC7lkBBQvUFUo0avy5RcomgV1+c=@vger.kernel.org X-Gm-Message-State: AOJu0YxgX80LJtuGR5hCG5+GFLvWNGKRV0KY34Gt679xpvOsHG4PhvNj Qr+uTLySYlmNd53e9jtLEdQLYTOyFDfeJ6eMYKuTH/i2n+1jZqA8SGlk X-Gm-Gg: ATEYQzyv+Lpar+7rQp/GW/QIWg/MAlEaCQNKJxnHjNdecp7I6JGVcyfNa/efNqWqD61 QDZrdVkD5e2fYYxr62hmrmeHaiSd7jTTpA+37+N1lKSMXSQq1Ad47G40a7rW8QDP5yKoUA2lqkN D9ZoGGmG39WxFz4kthK8RWha+h40cWhvFsQQCElAINBYH29JyVpp/GvmhFIoyHHFAeUz8XPzn2G HutVal6dMoEinnOlKA+kvf6sYPREPjTgmE/LMAj9iweZI0j65uZNfJ+n0wN7wYSQbOJoG6wJq51 PdVTMszpZp8lhn+laoKPC9jjMMlIHWGetckn525j6918UU24oyuCcfqK6w7pkuUSAUXoD+EidfZ vgUsG0YePwGCq+xR0VabPUKxZ++uhwt0Wdr5OupwoDxBOzzYfxIcK+eGysniT2Xebuz+HL8o+GI 1YgAQ0Yf6t9VMVzE6geTREUmanH00fWg== X-Received: by 2002:a05:600c:198c:b0:483:7980:4687 with SMTP id 5b1f17b1804b1-486f457232dmr11127115e9.17.1773773212953; Tue, 17 Mar 2026 11:46:52 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.46.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:46:52 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Gary Bisson , Julien Massot , Louis-Alexis Eyraud , Val Packett , Fabien Parent , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 8/9] pinctrl: mediatek: mt6397: Add support for MT6392 variant Date: Tue, 17 Mar 2026 18:43:11 +0000 Message-ID: <20260317184507.523060-9-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for the MT6392 pinctrl device, which is very similar to MT6397 with a handful of different property values and its own pins definition. Update the MT6397 driver to retrieve device data from the match table and use it for driver init. Signed-off-by: Luca Leonardo Scorcia Reviewed-by: AngeloGioacchino Del Regno --- drivers/pinctrl/mediatek/pinctrl-mt6397.c | 37 ++++++++++- drivers/pinctrl/mediatek/pinctrl-mtk-mt6392.h | 64 +++++++++++++++++++ 2 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-mt6392.h diff --git a/drivers/pinctrl/mediatek/pinctrl-mt6397.c b/drivers/pinctrl/me= diatek/pinctrl-mt6397.c index 03d0f65d7bcc..8ba02e70595c 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt6397.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt6397.c @@ -12,10 +12,32 @@ #include =20 #include "pinctrl-mtk-common.h" +#include "pinctrl-mtk-mt6392.h" #include "pinctrl-mtk-mt6397.h" =20 #define MT6397_PIN_REG_BASE 0xc000 =20 +static const struct mtk_pinctrl_devdata mt6392_pinctrl_data =3D { + .pins =3D mtk_pins_mt6392, + .npins =3D ARRAY_SIZE(mtk_pins_mt6392), + .dir_offset =3D (MT6397_PIN_REG_BASE + 0x000), + .ies_offset =3D MTK_PINCTRL_NOT_SUPPORT, + .smt_offset =3D MTK_PINCTRL_NOT_SUPPORT, + .pullen_offset =3D (MT6397_PIN_REG_BASE + 0x020), + .pullsel_offset =3D (MT6397_PIN_REG_BASE + 0x040), + .dout_offset =3D (MT6397_PIN_REG_BASE + 0x080), + .din_offset =3D (MT6397_PIN_REG_BASE + 0x0a0), + .pinmux_offset =3D (MT6397_PIN_REG_BASE + 0x0c0), + .type1_start =3D 7, + .type1_end =3D 7, + .port_shf =3D 3, + .port_mask =3D 0x3, + .port_align =3D 2, + .mode_mask =3D 0xf, + .mode_per_reg =3D 5, + .mode_shf =3D 4, +}; + static const struct mtk_pinctrl_devdata mt6397_pinctrl_data =3D { .pins =3D mtk_pins_mt6397, .npins =3D ARRAY_SIZE(mtk_pins_mt6397), @@ -40,13 +62,24 @@ static const struct mtk_pinctrl_devdata mt6397_pinctrl_= data =3D { static int mt6397_pinctrl_probe(struct platform_device *pdev) { struct mt6397_chip *mt6397; + const struct mtk_pinctrl_devdata *data; + + data =3D device_get_match_data(&pdev->dev); + if (!data) + return -ENOENT; =20 mt6397 =3D dev_get_drvdata(pdev->dev.parent); - return mtk_pctrl_init(pdev, &mt6397_pinctrl_data, mt6397->regmap); + return mtk_pctrl_init(pdev, data, mt6397->regmap); } =20 static const struct of_device_id mt6397_pctrl_match[] =3D { - { .compatible =3D "mediatek,mt6397-pinctrl", }, + { + .compatible =3D "mediatek,mt6392-pinctrl", + .data =3D &mt6392_pinctrl_data + }, { + .compatible =3D "mediatek,mt6397-pinctrl", + .data =3D &mt6397_pinctrl_data + }, { } }; =20 diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-mt6392.h b/drivers/pinctr= l/mediatek/pinctrl-mtk-mt6392.h new file mode 100644 index 000000000000..e7241af28fdb --- /dev/null +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-mt6392.h @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __PINCTRL_MTK_MT6392_H +#define __PINCTRL_MTK_MT6392_H + +#include +#include "pinctrl-mtk-common.h" + +static const struct mtk_desc_pin mtk_pins_mt6392[] =3D { + MTK_PIN(PINCTRL_PIN(0, "INT"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO0"), + MTK_FUNCTION(1, "INT"), + MTK_FUNCTION(5, "TEST_CK2"), + MTK_FUNCTION(6, "TEST_IN1"), + MTK_FUNCTION(7, "TEST_OUT1") + ), + MTK_PIN(PINCTRL_PIN(1, "SRCLKEN"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO1"), + MTK_FUNCTION(1, "SRCLKEN"), + MTK_FUNCTION(5, "TEST_CK0"), + MTK_FUNCTION(6, "TEST_IN2"), + MTK_FUNCTION(7, "TEST_OUT2") + ), + MTK_PIN(PINCTRL_PIN(2, "RTC_32K1V8"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO2"), + MTK_FUNCTION(1, "RTC_32K1V8"), + MTK_FUNCTION(5, "TEST_CK1"), + MTK_FUNCTION(6, "TEST_IN3"), + MTK_FUNCTION(7, "TEST_OUT3") + ), + MTK_PIN(PINCTRL_PIN(3, "SPI_CLK"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO3"), + MTK_FUNCTION(1, "SPI_CLK") + ), + MTK_PIN(PINCTRL_PIN(4, "SPI_CSN"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO4"), + MTK_FUNCTION(1, "SPI_CSN") + ), + MTK_PIN(PINCTRL_PIN(5, "SPI_MOSI"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO5"), + MTK_FUNCTION(1, "SPI_MOSI") + ), + MTK_PIN(PINCTRL_PIN(6, "SPI_MISO"), + NULL, "mt6392", + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), + MTK_FUNCTION(0, "GPIO6"), + MTK_FUNCTION(1, "SPI_MISO"), + MTK_FUNCTION(6, "TEST_IN4"), + MTK_FUNCTION(7, "TEST_OUT4") + ), +}; + +#endif /* __PINCTRL_MTK_MT6392_H */ --=20 2.43.0 From nobody Mon Apr 6 21:32:35 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F8F93F7893 for ; Tue, 17 Mar 2026 18:47:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773226; cv=none; b=OQGsHHe7KKwWZSEyCW2xHtNuPl0F3b5MMAO0mCkORfQfSQBZq4CtuRCG0rB24AE6YygY09QL4U5wJGtu49ETsh4fiyqFIzBd5nuJ9/XZbJqCD69fcV5P93Ah+gnHLkFhPObJGw9mzDHhoTeXJnxIuFKE9SPVza09m5HP98cIpfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773773226; c=relaxed/simple; bh=Alua8m4zrqQttj25hcBMeiYpw6ue2/UZ/u+SL0Ib6DQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fIjCpCerZYibEXHYk7B4Y2ebmUBsm12men6VNiYdWNTgHQcijdEKy18+UrFQOJ/qFoblo0MTB9Pg2uG5shVPHru4EnTUZ3D+359UT6PBDpS//PH/MGWcfHBzfxpQhN5Rtebz5kt+KNuOYZeTc7+oVnruH5kOAK3GNOm+spLhI6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Qh6V96jH; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Qh6V96jH" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-48374014a77so66882595e9.3 for ; Tue, 17 Mar 2026 11:47:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773773224; x=1774378024; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u0En4KcL/SU6NkK1eXcFNBzstXxwR3LITHNqWxLtxrU=; b=Qh6V96jH1Dy1sdw1ghdnZ7irsDy6MdIHFAFCAsZRlc3eqN/neGdQzLDM+s6L2CG959 JxMl7mv/37R9UIspv45AWnovx1ciMgrhT0AKKZma59WLm6WZGFHbbPsWP8W2X6L+W9vp 3fZpOU8rKVWwjSAUru1mh0ZloVV9SudIeGW+oO9L8/2pOPgm8G3VPeMFyX78C58jzzjU 3pWfg3HIDSkRo7R6eq9KTtGs7djvg7XnJdEi1KgynzjC6H/bTF7xKiHzZt+KzbvbGYLd eDdhQrV67fpwf5Y/DzNUinJaePsGVrprHGJVCZRZFBI9NxoV72wjdv018GcSdyRJdo8z bs7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773773224; x=1774378024; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=u0En4KcL/SU6NkK1eXcFNBzstXxwR3LITHNqWxLtxrU=; b=q2CD/MBsofszRvEP+aXD3eh0FyEsERhrV/U3rEuR6KrDGJxpzW2xVZCZ42+W2b/tuF LWUqsFdVDdAD9Utap1EY69g63lt+TNaQXaYMGmi3VKXxgm1vg8aqfm8mrTXrnyWaHz/f mKHI3+/X+pOA7+svVb4i5GI5/JiIddCA2aVoh1ZcRLbbWIwgoqee65eyg+NkyMs792l4 AruDdzKu83XjAf/oE5wjJpYmxIsMyNfkiHtw8rugsws8CAtZ+GN6bR3RNexdEG+kralP m1yR4sdsOjycbJNDeqEQXrV/00V4NLxZF+VUENM+szw3W1XCfES4+FvxzKm6J1PhU1ua bHoA== X-Forwarded-Encrypted: i=1; AJvYcCXeKkZpnYV+EvmAL7QCvNksUEiQBbOtXU5c+a4CzG7VEWX2f6u/nJ5oju6914Jlj/UXwTEtxIeOh2026Co=@vger.kernel.org X-Gm-Message-State: AOJu0YyMwHhEfPnhEaPNviyy8IRnjDTxo1WteGlcNS+eEQAmPEYyLJuE oQy77BXNbpORfEj/5j66Jy6M05V/Lviip9gFGvnmmNuOubTFd37m5ap8 X-Gm-Gg: ATEYQzxJXx8S5qA/UGnx32CkQQd2e5ciptUZ/VaawE8YqqyLIE8Yn98qe+kq0IBnCzf uOAfZd2SAPxIkVFIFXO24Xpye6eIWhAx3nvxUJS96iyI6D9pG1Nu2Dchg8QMrqSoHEBj1XZoEBI Eguvp9DHfrDR4hpXmpl9TtCAkyins90QdLJH43cQKYsnCsnkxtYIS/AIbOx6/UNaRRQBvePnJcK d4WikhZ6AIqa55ZfrwdxSVQ7Z1Dx3+WcYgjuhPPI+jdqr+/swTovd5c2mTiT+ESKovqRE1ff3ox VRtd/W4Re+j1oUVjqZ8s5aiLRHILYZ3h0naF9i7/oI1B/exajCPdAizg9/u09mR7bC4eF6c7j4v I1TBMLvoQGyGlF9RDVnX1q/vrlNyHqbUmIOeoQFgIkgXOi6y2p1+AL4nqCLkT2N9iiC6K8XKsmL 0JSQTrM7OFu+MQqYfkajk= X-Received: by 2002:a05:600c:4612:b0:485:40db:d40c with SMTP id 5b1f17b1804b1-486f442e710mr7845185e9.3.1773773223563; Tue, 17 Mar 2026 11:47:03 -0700 (PDT) Received: from luca-vm.lan ([154.61.61.58]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4ba760esm102725e9.24.2026.03.17.11.47.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 11:47:03 -0700 (PDT) From: Luca Leonardo Scorcia To: linux-mediatek@lists.infradead.org Cc: Val Packett , Luca Leonardo Scorcia , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sen Chu , Sean Wang , Macpaul Lin , Lee Jones , Matthias Brugger , AngeloGioacchino Del Regno , Linus Walleij , Liam Girdwood , Mark Brown , Gary Bisson , Julien Massot , Louis-Alexis Eyraud , Fabien Parent , Chen Zhong , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v3 9/9] arm64: dts: mt6392: add mt6392 PMIC dtsi Date: Tue, 17 Mar 2026 18:43:12 +0000 Message-ID: <20260317184507.523060-10-l.scorcia@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260317184507.523060-1-l.scorcia@gmail.com> References: <20260317184507.523060-1-l.scorcia@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Val Packett Add the dts to be included by all boards using the MT6392 PMIC. Signed-off-by: Val Packett Signed-off-by: Luca Leonardo Scorcia --- arch/arm64/boot/dts/mediatek/mt6392.dtsi | 141 +++++++++++++++++++++++ 1 file changed, 141 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..fbf6f671524c --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt6392.dtsi @@ -0,0 +1,141 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2019 MediaTek Inc. + * Copyright (c) 2024 Val Packett + */ + +#include + +&pwrap { + pmic: pmic { + compatible =3D "mediatek,mt6392", "mediatek,mt6323"; + interrupt-controller; + #interrupt-cells =3D <2>; + + keys { + compatible =3D "mediatek,mt6392-keys"; + + key-power { + linux,keycodes =3D ; + wakeup-source; + }; + + key-home { + linux,keycodes =3D ; + wakeup-source; + }; + }; + + pio6392: pinctrl { + compatible =3D "mediatek,mt6392-pinctrl"; + + gpio-controller; + #gpio-cells =3D <2>; + }; + + rtc { + compatible =3D "mediatek,mt6392-rtc", + "mediatek,mt6323-rtc"; + }; + + regulators { + compatible =3D "mediatek,mt6392-regulator"; + + mt6392_vproc_reg: buck_vproc { + regulator-name =3D "vproc"; + }; + + mt6392_vsys_reg: buck_vsys { + regulator-name =3D "vsys"; + }; + + mt6392_vcore_reg: buck_vcore { + regulator-name =3D "vcore"; + }; + + mt6392_vxo22_reg: ldo_vxo22 { + regulator-name =3D "vxo22"; + }; + + mt6392_vaud22_reg: ldo_vaud22 { + regulator-name =3D "vaud22"; + }; + + mt6392_vcama_reg: ldo_vcama { + regulator-name =3D "vcama"; + }; + + mt6392_vaud28_reg: ldo_vaud28 { + regulator-name =3D "vaud28"; + }; + + mt6392_vadc18_reg: ldo_vadc18 { + regulator-name =3D "vadc18"; + }; + + mt6392_vcn35_reg: ldo_vcn35 { + regulator-name =3D "vcn35"; + }; + + mt6392_vio28_reg: ldo_vio28 { + regulator-name =3D "vio28"; + }; + + mt6392_vusb_reg: ldo_vusb { + regulator-name =3D "vusb"; + }; + + mt6392_vmc_reg: ldo_vmc { + regulator-name =3D "vmc"; + }; + + mt6392_vmch_reg: ldo_vmch { + regulator-name =3D "vmch"; + }; + + mt6392_vemc3v3_reg: ldo_vemc3v3 { + regulator-name =3D "vemc3v3"; + }; + + mt6392_vgp1_reg: ldo_vgp1 { + regulator-name =3D "vgp1"; + }; + + mt6392_vgp2_reg: ldo_vgp2 { + regulator-name =3D "vgp2"; + }; + + mt6392_vcn18_reg: ldo_vcn18 { + regulator-name =3D "vcn18"; + }; + + mt6392_vcamaf_reg: ldo_vcamaf { + regulator-name =3D "vcamaf"; + }; + + mt6392_vm_reg: ldo_vm { + regulator-name =3D "vm"; + }; + + mt6392_vio18_reg: ldo_vio18 { + regulator-name =3D "vio18"; + }; + + mt6392_vcamd_reg: ldo_vcamd { + regulator-name =3D "vcamd"; + }; + + mt6392_vcamio_reg: ldo_vcamio { + regulator-name =3D "vcamio"; + }; + + mt6392_vm25_reg: ldo_vm25 { + regulator-name =3D "vm25"; + }; + + mt6392_vefuse_reg: ldo_vefuse { + regulator-name =3D "vefuse"; + }; + }; + }; +}; --=20 2.43.0