>From hardware perspective: - i.MX8ULP/93 GPIO supports two interrupts, 1st for Trustzone non-secure irq, 2nd for Trustzone secure irq. - i.MX8ULP/93 only has one register base The current linux gpio-vf610.c could work with i.MX8ULP/i.MX93, it is because some trick did in device tree node with offset added to base: reg = <0x2d010080 0x1000>, <0x2d010040 0x40>; But actually the register base should be 0x2d010000. So i.MX8ULP/93 is not HW compatible with i.MX7ULP. i.MX93 GPIO is directly derived from i.MX8ULP, so make i.MX93 compatible with i.MX8ULP. i.MX95 GPIO is same as i.MX93, so also compatible with i.MX8ULP There maybe dtbs_check failure if only test the 1st patch. After the patchset applied, no failure. To make avoid break old bindings from work, update the driver to support both old/new bindings. --- Changes in v3: Update patch v2 2/6 Update commit log in patch v2 5/6 Add A-b from DT maintainer for patch v2 1/6, 3/6 - Link to v2: https://lore.kernel.org/r/20230916-vf610-gpio-v2-0-40823da788d7@xxxxxxx Changes in v2: - Update bindings with describe items, add one reg base for i.MX8ULP/93 - Update driver to support one reg base, support both new/old bindings - Add a new patch 1 to update gpio-ranges found in dtbs_check - Link to v1: https://lore.kernel.org/r/20230914-vf610-gpio-v1-0-3ed418182a6a@xxxxxxx --- Peng Fan (6): dt-bindings: gpio: vf610: update gpio-ranges dt-bindings: gpio: vf610: correct i.MX8ULP and i.MX93 dt-bindings: gpio: vf610: add i.MX95 compatible gpio: vf610: add i.MX8ULP of_device_id entry arm64: dts: imx8ulp: update gpio node arm64: dts: imx93: update gpio node .../devicetree/bindings/gpio/gpio-vf610.yaml | 40 +++++++++++++--- arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 21 +++++---- arch/arm64/boot/dts/freescale/imx93.dtsi | 28 ++++++----- drivers/gpio/gpio-vf610.c | 55 +++++++++++++++++++--- 4 files changed, 111 insertions(+), 33 deletions(-) --- base-commit: e143016b56ecb0fcda5bb6026b0a25fe55274f56 change-id: 20230914-vf610-gpio-46edacd2b513 Best regards, -- Peng Fan <peng.fan@xxxxxxx>