Linux Media Controller development
 help / color / mirror / Atom feed
From: Sergey Lebedev <lsa.uz@pm.me>
To: Daniel Scally <dan.scally@ideasonboard.com>
Cc: Hans de Goede <hansg@kernel.org>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	platform-driver-x86@vger.kernel.org, linux-media@vger.kernel.org
Subject: int3472: the vendor GPIO type table, and four values that differ
Date: Mon, 31 Aug 2026 18:08:42 +0000	[thread overview]
Message-ID: <20260831180837.69000-1-lsa.uz@pm.me> (raw)

Working on the cameras of a Surface Pro 11 (Lunar Lake) I pulled the
complete GPIO type table out of Intel's Windows camera driver,
iactrllogic64.sys. Ten of its twenty entries correspond to constants in
int3472.h. Six agree. Four do not, and I cannot tell from here which side
is right, so this is a question rather than a patch.

The table as the vendor driver indexes it:

  0x00 Reset          0x01 Enable         0x02 Strobe        0x03 Torch
  0x04 Flash          0x05 LedRear        0x06 LedFront      0x07 Power0
  0x08 Power1         0x09 Standby        0x0a WriteProtect  0x0b PowerEn
  0x0c Mclk           0x0d PrivateLED     0x0e Avdd          0x0f Core
  0x10 Handshake      0x11 HDMI_INT_IO    0x12 HDMIDetect    0x13 Reserved

Why I believe the indexing rather than a coincidence: five entries land
exactly on values the kernel arrived at independently. 0x00 Reset, 0x07
and 0x08 Power0 and Power1, 0x0b POWER_ENABLE against the vendor's
PowerEn, 0x0c CLK_ENABLE against Mclk, and 0x0d PRIVACY_LED against
PrivateLED. Five independent hits on a plain array index is not chance.

Where we disagree:

  value   int3472.h              vendor driver
  0x01    POWERDOWN              Enable
  0x10    DOVDD                  Handshake
  0x12    HANDSHAKE              HDMIDetect
  0x13    HOTPLUG_DETECT         Reserved

0x12 is the interesting one, because HANDSHAKE appears on both sides but
two slots apart. If the kernel's 0x12 came from observing a machine
rather than from documentation, one of these is off by the distance
between 0x10 and 0x12.

I have no machine that exercises any of the four, so I cannot test them.
If the kernel's values were derived from hardware that works, they are
the better evidence, and this table is Intel's internal naming for a
different set of platforms. If any of them were inferred, this is worth
a second look.

The ten values with no kernel constant may be useful when one turns up
in an unfamiliar _DSM: Strobe, Torch, Flash, LedRear, LedFront, Standby,
WriteProtect, Avdd, Core, HDMI_INT_IO. Two are already relevant
elsewhere. 0x02 Strobe is what an infrared illuminator uses on sensors
that route it through the sensor's own GPIOs, and 0x0e Avdd names a rail
int3472 already registers under that name from a different type.

Provenance: read out of the driver binary shipped in the Windows
DriverStore on my own machine. I am not attaching the binary or quoting
code from it.

Sergey Lebedev


             reply	other threads:[~2026-08-31 18:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 18:08 Sergey Lebedev [this message]
2026-09-01 13:35 ` int3472: the vendor GPIO type table, and four values that differ Hans de Goede
2026-09-01 17:58 ` Sergey Lebedev

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=20260831180837.69000-1-lsa.uz@pm.me \
    --to=lsa.uz@pm.me \
    --cc=dan.scally@ideasonboard.com \
    --cc=hansg@kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sakari.ailus@linux.intel.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