From: "D. Manresa" <dmanresa@gmail.com>
To: Jakob Berg Jespersen <dev@berg.pm>,
Daniel Scally <dan.scally@ideasonboard.com>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Hans de Goede <hansg@kernel.org>
Cc: "Hans de Goede" <johannes.goede@oss.qualcomm.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Tooraj Taraz" <tooraj.taraz@yahoo.com>,
"Joseph V. Lavigne" <jlavig88@gmail.com>,
platform-driver-x86@vger.kernel.org, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org, "D . Manresa" <dmanresa@gmail.com>
Subject: Re: [PATCH v3] platform/x86: int3472: support the POWER1 GPIO type
Date: Tue, 1 Sep 2026 08:33:53 +0200 [thread overview]
Message-ID: <20260901063353.67252-1-dmanresa@gmail.com> (raw)
In-Reply-To: <20260829-sp7plus-int3472-v3-1-454b50485ce2@berg.pm>
Since this thread is where the INT3472 _DSM GPIO type codes are being
discussed, relaying a piece of vendor-side documentation that surfaced in
the linux-surface work: the type-name table inside Intel's own Windows
driver. Extracted by the tester known as fildunsky on GitHub (relayed here
with their permission and at their request - full context and discussion in
https://github.com/linux-surface/linux-surface/pull/2252):
From iactrllogic64.sys, "Intel(R) Control Logic", 04/04/2024, shipped in the
Surface Pro 8 driver package (analysable without a Windows install):
0x00 Reset 0x07 Power0 0x0E AF
0x01 Enable 0x08 Power1 0x0F IO
0x02 Strobe 0x09 Standby 0x10 Avdd
0x03 Torch 0x0A WriteProtect 0x11 Core
0x04 Flash 0x0B PowerEn 0x12 (Handshake)
0x05 LedRear 0x0C Mclk
0x06 LedFront 0x0D PrivateLED
Extraction data, for anyone who wants to reproduce or challenge it: name
pointer array in .data at VA 0x140021060 (file offset 0x1F260), stride 8,
indexed by the _DSM type code; strings in .rdata at VA 0x14001E4C0;
SetGpioOutput at VA 0x1400027C0 rejects type >= 0x13 and indexes per-type
state as base + 0x50 + type*32, consistent with that layout.
What this does and does not say:
- It confirms 0x07/0x08 are simply "Power0"/"Power1" on the vendor side -
generic numbered rails with no supply semantics - which if anything
supports mapping them by what the consuming sensor driver requests, as
this patch does with "dvdd".
- It says the vendor calls 0x10 "Avdd" and 0x11 "Core", while mainline since
v7.0 names 0x10 INT3472_GPIO_TYPE_DOVDD and registers "dovdd". Worth
knowing, with two caveats: it is a single artifact and the electrical
claim is unproven (the Windows control logic raises every described line
in sequence regardless of name, so a working camera under Windows proves
nothing about which rail is which); and con_id in int3472 follows what
in-tree sensor drivers request rather than vendor naming anyway (0x0b is
"PowerEn" in this table and is registered as "avdd"). Empirically, on the
Surface Pro 8 the consumer of the 0x10 rail is the ST VD55G0, which
requests "vddio" - lining up with neither name and resolved there by a
per-HID mapping.
- For the enable-delay discussions, the same binary's power-on sequence
(discrete::DiscreteControl::SensorOn):
Enable -> 2ms -> Power0 -> 5ms -> Power1 -> 5ms -> PowerEn -> 2ms ->
Avdd -> 2ms -> Reset held -> 2ms -> Mclk (or the ACPI clock when there
is no Mclk GPIO) -> Reset released -> 2ms -> Enable asserted -> Handshake
fildunsky still has the binary and is happy to re-check it against specific
questions; anything for them is best routed through the PR thread above.
D. Manresa <dmanresa@gmail.com>
next prev parent reply other threads:[~2026-09-01 6:33 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-29 8:29 [PATCH v3] platform/x86: int3472: support the POWER1 GPIO type Jakob Berg Jespersen
2026-08-30 12:30 ` Hans de Goede
2026-09-01 6:33 ` D. Manresa [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-08-30 13:41 Sergey Lebedev
2026-08-31 9:21 ` Jakob Berg Jespersen
2026-08-31 9:34 ` Hans de Goede
2026-08-31 9:40 ` Jakob Berg Jespersen
2026-08-31 9:39 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260901063353.67252-1-dmanresa@gmail.com \
--to=dmanresa@gmail.com \
--cc=dan.scally@ideasonboard.com \
--cc=dev@berg.pm \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jlavig88@gmail.com \
--cc=johannes.goede@oss.qualcomm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=tooraj.taraz@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox