From: Seifelden Abdelmonem <saif.elden.hatim@gmail.com>
To: "Mario Limonciello" <superm1@kernel.org>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Hans de Goede" <hansg@kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: "Bin Du" <bin.du@amd.com>,
"Nirujogi Pratap" <pratap.nirujogi@amd.com>,
"Benjamin Chan" <benjamin.chan@amd.com>,
"King Li" <King.Li@amd.com>,
"Caspar Adriani" <caspar.adriani@proton.me>,
"Christian König" <christian.koenig@amd.com>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Arec Kao" <arec.kao@intel.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
platform-driver-x86@vger.kernel.org, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Seifelden Abdelmonem" <saif.elden.hatim@gmail.com>
Subject: [RFC PATCH 2/3] platform/x86: amd_isp4: add the OV13B10 (OMNI13B1) board configuration
Date: Tue, 3 Nov 2026 18:53:12 +0300 [thread overview]
Message-ID: <20261103155313.114347-3-saif.elden.hatim@gmail.com> (raw)
In-Reply-To: <20261103155313.114347-1-saif.elden.hatim@gmail.com>
The rear camera of the ASUS ROG Flow Z13 (GZ302EA) is an OmniVision
OV13B10 behind the AMD ISP 4.1.1, exposed in ACPI as \_SB.CAMB with
_HID "OMNI13B1". Like the OV05C10 reference platform, its ACPI device
has no resources and no endpoint graph, so add a platform
configuration with the software-node graph for it:
- I2C address 0x10, where the sensor answers on the ISP's I2C bus (the
camera's _DSM also returns this value);
- a 24 MHz sensor clock, the rate declared for the OV05C10 reference
platform;
- four CSI-2 lanes at 560 MHz, the link of the ov13b10 driver's
full-resolution mode.
If the host ov13b10 driver binds to the sensor, it currently accepts
only a 19.2 MHz external clock, so it does not probe with this
configuration until it supports 24 MHz. The sensor's reset GPIO is
registered by amdgpu together with the other ISP GPIOs.
Signed-off-by: Seifelden Abdelmonem <saif.elden.hatim@gmail.com>
---
drivers/platform/x86/amd/amd_isp4.c | 127 ++++++++++++++++++++++++++++
1 file changed, 127 insertions(+)
diff --git a/drivers/platform/x86/amd/amd_isp4.c b/drivers/platform/x86/amd/amd_isp4.c
index 0d4948995..6b850e0fc 100644
--- a/drivers/platform/x86/amd/amd_isp4.c
+++ b/drivers/platform/x86/amd/amd_isp4.c
@@ -19,10 +19,13 @@
#define AMDISP_OV05C10_I2C_ADDR 0x10
#define AMDISP_OV05C10_HID "OMNI5C10"
#define AMDISP_OV05C10_REMOTE_EP_NAME "ov05c10_isp_4_1_1"
+#define AMDISP_OV13B10_I2C_ADDR 0x10
+#define AMDISP_OV13B10_HID "OMNI13B1"
#define AMD_ISP_PLAT_DRV_NAME "amd-isp4"
static const struct software_node isp4_mipi1_endpoint_node;
static const struct software_node ov05c10_endpoint_node;
+static const struct software_node ov13b10_endpoint_node;
/*
* AMD ISP platform info definition to initialize sensor
@@ -245,8 +248,132 @@ static const struct amdisp_platform_info ov05c10_platform_config = {
.swnodes = amd_isp4_nodes,
};
+/*
+ * ASUS ROG Flow Z13 (GZ302EA) rear camera. Its ACPI camera device has no
+ * resources or endpoint graph, so provide the same complete software-node
+ * graph used by the reference OV05C10 platform. The ISP supplies the
+ * sensor clock at 24 MHz, as on that platform; four CSI-2 lanes at 560 MHz
+ * are the link of the ov13b10 driver's full-resolution mode.
+ */
+static const struct software_node ov13b10_amd_camera_node = {
+ .name = "amd_camera",
+};
+
+static const struct software_node ov13b10_isp4_node = {
+ .name = "isp4",
+ .parent = &ov13b10_amd_camera_node,
+};
+
+static const struct software_node ov13b10_isp4_ports = {
+ .name = "ports",
+ .parent = &ov13b10_isp4_node,
+};
+
+static const struct software_node ov13b10_isp4_port_node = {
+ .name = "port@0",
+ .parent = &ov13b10_isp4_ports,
+};
+
+static const struct software_node_ref_args ov13b10_isp4_refs[] = {
+ SOFTWARE_NODE_REFERENCE(&ov13b10_endpoint_node),
+};
+
+static const struct property_entry ov13b10_isp4_endpoint_props[] = {
+ PROPERTY_ENTRY_REF_ARRAY("remote-endpoint", ov13b10_isp4_refs),
+ { }
+};
+
+static const struct software_node ov13b10_isp4_endpoint_node = {
+ .name = "endpoint",
+ .parent = &ov13b10_isp4_port_node,
+ .properties = ov13b10_isp4_endpoint_props,
+};
+
+static const struct property_entry ov13b10_i2c1_props[] = {
+ PROPERTY_ENTRY_U32("clock-frequency", 1 * HZ_PER_MHZ),
+ { }
+};
+
+static const struct software_node ov13b10_i2c1_node = {
+ .name = "i2c1",
+ .parent = &ov13b10_amd_camera_node,
+ .properties = ov13b10_i2c1_props,
+};
+
+static const struct property_entry ov13b10_camera_props[] = {
+ PROPERTY_ENTRY_U32("clock-frequency", 24 * HZ_PER_MHZ),
+ { }
+};
+
+static const struct software_node ov13b10_camera_node = {
+ .name = AMDISP_OV13B10_HID,
+ .parent = &ov13b10_i2c1_node,
+ .properties = ov13b10_camera_props,
+};
+
+static const struct software_node ov13b10_ports = {
+ .name = "ports",
+ .parent = &ov13b10_camera_node,
+};
+
+static const struct software_node ov13b10_port_node = {
+ .name = "port@0",
+ .parent = &ov13b10_ports,
+};
+
+static const struct software_node_ref_args ov13b10_refs[] = {
+ SOFTWARE_NODE_REFERENCE(&ov13b10_isp4_endpoint_node),
+};
+
+static const u64 ov13b10_link_freqs[] = {
+ 560 * HZ_PER_MHZ,
+};
+
+static const u32 ov13b10_data_lanes[] = {
+ 1, 2, 3, 4,
+};
+
+static const struct property_entry ov13b10_endpoint_props[] = {
+ PROPERTY_ENTRY_U32("bus-type", 4),
+ PROPERTY_ENTRY_U32_ARRAY_LEN("data-lanes", ov13b10_data_lanes,
+ ARRAY_SIZE(ov13b10_data_lanes)),
+ PROPERTY_ENTRY_U64_ARRAY_LEN("link-frequencies", ov13b10_link_freqs,
+ ARRAY_SIZE(ov13b10_link_freqs)),
+ PROPERTY_ENTRY_REF_ARRAY("remote-endpoint", ov13b10_refs),
+ { }
+};
+
+static const struct software_node ov13b10_endpoint_node = {
+ .name = "endpoint",
+ .parent = &ov13b10_port_node,
+ .properties = ov13b10_endpoint_props,
+};
+
+static const struct software_node *ov13b10_amd_isp4_nodes[] = {
+ &ov13b10_amd_camera_node,
+ &ov13b10_isp4_node,
+ &ov13b10_isp4_ports,
+ &ov13b10_isp4_port_node,
+ &ov13b10_isp4_endpoint_node,
+ &ov13b10_i2c1_node,
+ &ov13b10_camera_node,
+ &ov13b10_ports,
+ &ov13b10_port_node,
+ &ov13b10_endpoint_node,
+ NULL
+};
+
+static const struct amdisp_platform_info ov13b10_platform_config = {
+ .board_info = {
+ .dev_name = "ov13b10",
+ I2C_BOARD_INFO("ov13b10", AMDISP_OV13B10_I2C_ADDR),
+ },
+ .swnodes = ov13b10_amd_isp4_nodes,
+};
+
static const struct acpi_device_id amdisp_sensor_ids[] = {
{ AMDISP_OV05C10_HID, (kernel_ulong_t)&ov05c10_platform_config },
+ { AMDISP_OV13B10_HID, (kernel_ulong_t)&ov13b10_platform_config },
{ }
};
MODULE_DEVICE_TABLE(acpi, amdisp_sensor_ids);
--
2.56.0
next prev parent reply other threads:[~2026-11-03 15:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 15:53 [RFC PATCH 0/3] GZ302 rear camera (OMNI13B1, OV13B10) board data Seifelden Abdelmonem
2026-11-03 15:53 ` [RFC PATCH 1/3] media: i2c: ov13b10: add an I2C device ID table Seifelden Abdelmonem
2026-11-03 15:53 ` Seifelden Abdelmonem [this message]
2026-11-03 15:53 ` [RFC PATCH 3/3] drm/amdgpu: add the OMNI13B1 (OV13B10) ISP sensor Seifelden Abdelmonem
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=20261103155313.114347-3-saif.elden.hatim@gmail.com \
--to=saif.elden.hatim@gmail.com \
--cc=King.Li@amd.com \
--cc=airlied@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=arec.kao@intel.com \
--cc=benjamin.chan@amd.com \
--cc=bin.du@amd.com \
--cc=caspar.adriani@proton.me \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=pratap.nirujogi@amd.com \
--cc=sakari.ailus@linux.intel.com \
--cc=simona@ffwll.ch \
--cc=superm1@kernel.org \
/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
all inboxes | Powered by JetHome®