From: Rob Herring <robh@kernel.org>
To: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
Cc: linux-kernel@vger.kernel.org, linux-i3c@lists.infradead.org,
alexandre.belloni@bootlin.com, krzk+dt@kernel.org,
conor+dt@kernel.org, devicetree@vger.kernel.org,
broonie@kernel.org, lee@kernel.org, Frank.Li@nxp.com,
lgirdwood@gmail.com, vikash.bansal@nxp.com,
priyanka.jain@nxp.com, shashank.rebbapragada@nxp.com
Subject: Re: [PATCH v5 2/5] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
Date: Mon, 9 Feb 2026 20:33:54 -0600 [thread overview]
Message-ID: <20260210023354.GA2357771-robh@kernel.org> (raw)
In-Reply-To: <20260206120121.856471-2-aman.kumarpandey@nxp.com>
On Fri, Feb 06, 2026 at 02:01:18PM +0200, Aman Kumar Pandey wrote:
> Add bindings for the NXP P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841)
> multiport I3C hub family. These devices connect to a host via
> I3C/I2C/SMBus and allow communication with multiple downstream
> peripherals.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
>
> ---
> Changes in v5:
> - Removed SW properties: cp0-ldo-microvolt,cp1-ldo-microvolt,
> tp0145-ldo-microvolt, tp2367-ldo-microvolt
> - Changed supply entries and its descriptions
>
> Changes in v4:
> - Fixed DT binding check warning
> - Removed SW properties: ibi-enable, local-dev, and always-enable
>
> Changes in v3:
> - Added MFD (Multi-Function Device) support for I3C hub and on-die regulator
> - Added Regulator supply node
>
> Changes in v2:
> - Fixed DT binding check warning
> - Revised logic for parsing DTS nodes
> ---
> ---
> .../devicetree/bindings/i3c/nxp,p3h2840.yaml | 209 ++++++++++++++++++
> MAINTAINERS | 8 +
> 2 files changed, 217 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
>
> diff --git a/Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml b/Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
> new file mode 100644
> index 000000000000..edc1f988c0d5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
> @@ -0,0 +1,209 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright 2025 NXP
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/i3c/nxp,p3h2840.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP P3H2X4X I3C HUB
> +
> +maintainers:
> + - Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> + - Vikash Bansal <vikash.bansal@nxp.com>
> +
> +description: |
> + P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is a family of multiport I3C
> + hub devices that connect to:-
> + 1. A host CPU via I3C/I2C/SMBus bus on upstream side and connect to multiple
> + peripheral devices on the downstream side.
> + 2. Have two Controller Ports which can support either
> + I2C/SMBus or I3C buses and connect to a CPU, BMC or SOC.
> + 3. P3H2840/ P3H2841 are 8 port I3C hub with eight I3C/I2C Target Port.
> + 4. P3H2440/ P3H2441 are 4 port I3C hub with four I3C/I2C Target Port.
> + Target ports can be configured as I2C/SMBus, I3C or GPIO and connect to
> + peripherals.
> +
> +allOf:
> + - $ref: /schemas/i3c/i3c.yaml#
> +
> +properties:
> + compatible:
> + const: nxp,p3h2840
> +
> + tp0145-pullup-ohms:
Needs vendor prefix. And on the rest of the -ohms properties.
> + description:
> + Selects the pull up resistance for target Port 0/1/4/5, in ohms.
> + enum: [250, 500, 1000, 2000]
> + default: 500
> +
> + tp2367-pullup-ohms:
> + description:
> + Selects the pull up resistance for target Port 2/3/6/7, in ohms.
> + enum: [250, 500, 1000, 2000]
> + default: 500
> +
> + cp0-io-strength-ohms:
> + description:
> + Selects the IO drive strength for controller Port 0, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + cp1-io-strength-ohms:
> + description:
> + Selects the IO drive strength for controller Port 1, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + tp0145-io-strength-ohms:
> + description:
> + Selects the IO drive strength for target port 0/1/4/5, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + tp2367-io-strength-ohms:
> + description:
> + Selects the IO drive strength for target port 2/3/6/7, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + vcc1-supply:
> + description: Controller port 0 power supply.
> +
> + vcc2-supply:
> + description: Controller port 1 power supply.
> +
> + vcc3-supply:
> + description: Target port 0/1/4/5 power supply.
> +
> + vcc4-supply:
> + description: Target port 2/3/6/7 power supply.
> +
> + regulators:
> + type: object
> + additionalProperties: false
> +
> + properties:
> + LDO_CP0:
Lowercase and use '-' rather than '_'.
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> + LDO_CP1:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> + LDO_TPG0:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> + LDO_TPG1:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> +patternProperties:
> + "^i3c@[0-7]$":
> + type: object
> + $ref: /schemas/i3c/i3c.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + reg:
> + description:
> + The I3C HUB Target Port number.
> + maxItems: 1
maximum: 7
Instead of maxItems.
> +
> + pullup-enable:
> + type: boolean
> + description:
> + Enables the on-die pull-up for Target Port.
> +
> + "^(i2c|smbus)@[0-7]$":
> + type: object
> + $ref: /schemas/i2c/i2c-controller.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + reg:
> + description:
> + The I3C HUB Target Port number.
> + maxItems: 1
maximum: 7
> +
> + pullup-enable:
> + type: boolean
> + description:
> + Enables the on-die pull-up for Target Port.
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + i3c {
> + #address-cells = <3>;
> + #size-cells = <0>;
> +
> + hub@70,236153000c2 {
> + reg = <0x70 0x236 0x3000c2>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + assigned-address = <0x50>;
> +
> + tp0145-pullup-ohm = <1000>;
> + tp2367-pullup-ohm = <1000>;
> + cp0-io-strength-ohm = <50>;
> + cp1-io-strength-ohm = <50>;
> + tp0145-io-strength-ohm = <50>;
> + tp2367-io-strength-ohm = <50>;
> + vcc3-supply = <®_tpg0>;
> + vcc4-supply = <®_tpg1>;
> +
> + regulators {
> + reg_cp0: LDO_CP0 {
> + regulator-name = "ldo_cp0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_cp1: LDO_CP1 {
> + regulator-name = "ldo_cp1";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_tpg0: LDO_TPG0 {
> + regulator-name = "ldo_tpg0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_tpg1: LDO_TPG1 {
> + regulator-name = "ldo_tpg1";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> + };
> +
> + smbus@0 {
> + reg = <0x0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pullup-enable;
> + };
> +
> + i2c@1 {
> + reg = <0x1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pullup-enable;
> + };
> +
> + i3c@2 {
> + reg = <0x2>;
> + #address-cells = <3>;
> + #size-cells = <0>;
> + pullup-enable;
> + };
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e08767323763..7e1a6cb22ca3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18906,6 +18906,14 @@ S: Maintained
> F: Documentation/devicetree/bindings/ptp/nxp,ptp-netc.yaml
> F: drivers/ptp/ptp_netc.c
>
> +NXP P3H2X4X I3C-HUB DRIVER
> +M: Vikash Bansal <vikash.bansal@nxp.com>
> +M: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> +L: linux-kernel@vger.kernel.org
> +L: linux-i3c-owner@lists.infradead.org
> +S: Maintained
> +F: Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
> +
> NXP PF5300/PF5301/PF5302 PMIC REGULATOR DEVICE DRIVER
> M: Woodrow Douglass <wdouglass@carnegierobotics.com>
> S: Maintained
> --
> 2.25.1
>
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
Cc: linux-kernel@vger.kernel.org, linux-i3c@lists.infradead.org,
alexandre.belloni@bootlin.com, krzk+dt@kernel.org,
conor+dt@kernel.org, devicetree@vger.kernel.org,
broonie@kernel.org, lee@kernel.org, Frank.Li@nxp.com,
lgirdwood@gmail.com, vikash.bansal@nxp.com,
priyanka.jain@nxp.com, shashank.rebbapragada@nxp.com
Subject: Re: [PATCH v5 2/5] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
Date: Mon, 9 Feb 2026 20:33:54 -0600 [thread overview]
Message-ID: <20260210023354.GA2357771-robh@kernel.org> (raw)
In-Reply-To: <20260206120121.856471-2-aman.kumarpandey@nxp.com>
On Fri, Feb 06, 2026 at 02:01:18PM +0200, Aman Kumar Pandey wrote:
> Add bindings for the NXP P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841)
> multiport I3C hub family. These devices connect to a host via
> I3C/I2C/SMBus and allow communication with multiple downstream
> peripherals.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
>
> ---
> Changes in v5:
> - Removed SW properties: cp0-ldo-microvolt,cp1-ldo-microvolt,
> tp0145-ldo-microvolt, tp2367-ldo-microvolt
> - Changed supply entries and its descriptions
>
> Changes in v4:
> - Fixed DT binding check warning
> - Removed SW properties: ibi-enable, local-dev, and always-enable
>
> Changes in v3:
> - Added MFD (Multi-Function Device) support for I3C hub and on-die regulator
> - Added Regulator supply node
>
> Changes in v2:
> - Fixed DT binding check warning
> - Revised logic for parsing DTS nodes
> ---
> ---
> .../devicetree/bindings/i3c/nxp,p3h2840.yaml | 209 ++++++++++++++++++
> MAINTAINERS | 8 +
> 2 files changed, 217 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
>
> diff --git a/Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml b/Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
> new file mode 100644
> index 000000000000..edc1f988c0d5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
> @@ -0,0 +1,209 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright 2025 NXP
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/i3c/nxp,p3h2840.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP P3H2X4X I3C HUB
> +
> +maintainers:
> + - Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> + - Vikash Bansal <vikash.bansal@nxp.com>
> +
> +description: |
> + P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is a family of multiport I3C
> + hub devices that connect to:-
> + 1. A host CPU via I3C/I2C/SMBus bus on upstream side and connect to multiple
> + peripheral devices on the downstream side.
> + 2. Have two Controller Ports which can support either
> + I2C/SMBus or I3C buses and connect to a CPU, BMC or SOC.
> + 3. P3H2840/ P3H2841 are 8 port I3C hub with eight I3C/I2C Target Port.
> + 4. P3H2440/ P3H2441 are 4 port I3C hub with four I3C/I2C Target Port.
> + Target ports can be configured as I2C/SMBus, I3C or GPIO and connect to
> + peripherals.
> +
> +allOf:
> + - $ref: /schemas/i3c/i3c.yaml#
> +
> +properties:
> + compatible:
> + const: nxp,p3h2840
> +
> + tp0145-pullup-ohms:
Needs vendor prefix. And on the rest of the -ohms properties.
> + description:
> + Selects the pull up resistance for target Port 0/1/4/5, in ohms.
> + enum: [250, 500, 1000, 2000]
> + default: 500
> +
> + tp2367-pullup-ohms:
> + description:
> + Selects the pull up resistance for target Port 2/3/6/7, in ohms.
> + enum: [250, 500, 1000, 2000]
> + default: 500
> +
> + cp0-io-strength-ohms:
> + description:
> + Selects the IO drive strength for controller Port 0, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + cp1-io-strength-ohms:
> + description:
> + Selects the IO drive strength for controller Port 1, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + tp0145-io-strength-ohms:
> + description:
> + Selects the IO drive strength for target port 0/1/4/5, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + tp2367-io-strength-ohms:
> + description:
> + Selects the IO drive strength for target port 2/3/6/7, in ohms.
> + enum: [20, 30, 40, 50]
> + default: 20
> +
> + vcc1-supply:
> + description: Controller port 0 power supply.
> +
> + vcc2-supply:
> + description: Controller port 1 power supply.
> +
> + vcc3-supply:
> + description: Target port 0/1/4/5 power supply.
> +
> + vcc4-supply:
> + description: Target port 2/3/6/7 power supply.
> +
> + regulators:
> + type: object
> + additionalProperties: false
> +
> + properties:
> + LDO_CP0:
Lowercase and use '-' rather than '_'.
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> + LDO_CP1:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> + LDO_TPG0:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> + LDO_TPG1:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + unevaluatedProperties: false
> +
> +patternProperties:
> + "^i3c@[0-7]$":
> + type: object
> + $ref: /schemas/i3c/i3c.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + reg:
> + description:
> + The I3C HUB Target Port number.
> + maxItems: 1
maximum: 7
Instead of maxItems.
> +
> + pullup-enable:
> + type: boolean
> + description:
> + Enables the on-die pull-up for Target Port.
> +
> + "^(i2c|smbus)@[0-7]$":
> + type: object
> + $ref: /schemas/i2c/i2c-controller.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + reg:
> + description:
> + The I3C HUB Target Port number.
> + maxItems: 1
maximum: 7
> +
> + pullup-enable:
> + type: boolean
> + description:
> + Enables the on-die pull-up for Target Port.
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + i3c {
> + #address-cells = <3>;
> + #size-cells = <0>;
> +
> + hub@70,236153000c2 {
> + reg = <0x70 0x236 0x3000c2>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + assigned-address = <0x50>;
> +
> + tp0145-pullup-ohm = <1000>;
> + tp2367-pullup-ohm = <1000>;
> + cp0-io-strength-ohm = <50>;
> + cp1-io-strength-ohm = <50>;
> + tp0145-io-strength-ohm = <50>;
> + tp2367-io-strength-ohm = <50>;
> + vcc3-supply = <®_tpg0>;
> + vcc4-supply = <®_tpg1>;
> +
> + regulators {
> + reg_cp0: LDO_CP0 {
> + regulator-name = "ldo_cp0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_cp1: LDO_CP1 {
> + regulator-name = "ldo_cp1";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_tpg0: LDO_TPG0 {
> + regulator-name = "ldo_tpg0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_tpg1: LDO_TPG1 {
> + regulator-name = "ldo_tpg1";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> + };
> +
> + smbus@0 {
> + reg = <0x0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pullup-enable;
> + };
> +
> + i2c@1 {
> + reg = <0x1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pullup-enable;
> + };
> +
> + i3c@2 {
> + reg = <0x2>;
> + #address-cells = <3>;
> + #size-cells = <0>;
> + pullup-enable;
> + };
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e08767323763..7e1a6cb22ca3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18906,6 +18906,14 @@ S: Maintained
> F: Documentation/devicetree/bindings/ptp/nxp,ptp-netc.yaml
> F: drivers/ptp/ptp_netc.c
>
> +NXP P3H2X4X I3C-HUB DRIVER
> +M: Vikash Bansal <vikash.bansal@nxp.com>
> +M: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> +L: linux-kernel@vger.kernel.org
> +L: linux-i3c-owner@lists.infradead.org
> +S: Maintained
> +F: Documentation/devicetree/bindings/i3c/nxp,p3h2840.yaml
> +
> NXP PF5300/PF5301/PF5302 PMIC REGULATOR DEVICE DRIVER
> M: Woodrow Douglass <wdouglass@carnegierobotics.com>
> S: Maintained
> --
> 2.25.1
>
next prev parent reply other threads:[~2026-02-10 2:33 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-06 12:01 [PATCH v5 1/5] i3c: master: Expose the APIs to support I3C hub Aman Kumar Pandey
2026-02-06 12:01 ` Aman Kumar Pandey
2026-02-06 12:01 ` [PATCH v5 2/5] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support Aman Kumar Pandey
2026-02-06 12:01 ` Aman Kumar Pandey
2026-02-10 2:33 ` Rob Herring [this message]
2026-02-10 2:33 ` Rob Herring
2026-02-06 12:01 ` [PATCH v5 3/5] mfd: p3h2x4x: Add driver for NXP P3H2x4x i3c hub and on-die regulator Aman Kumar Pandey
2026-02-06 12:01 ` Aman Kumar Pandey
2026-02-06 12:52 ` Krzysztof Kozlowski
2026-02-06 12:52 ` Krzysztof Kozlowski
2026-02-06 12:01 ` [PATCH v5 4/5] regulator: p3h2x4x: Add driver for on-die regulators in NXP P3H2x4x i3c hub Aman Kumar Pandey
2026-02-06 12:01 ` Aman Kumar Pandey
2026-02-06 17:19 ` Frank Li
2026-02-06 17:19 ` Frank Li
2026-02-06 22:19 ` kernel test robot
2026-02-06 22:19 ` kernel test robot
2026-02-06 12:01 ` [PATCH v5 5/5] i3c: hub: p3h2x4x: Add support for NXP P3H2x4x I3C hub functionality Aman Kumar Pandey
2026-02-06 12:01 ` Aman Kumar Pandey
2026-02-06 17:33 ` Frank Li
2026-02-06 17:33 ` Frank Li
2026-02-06 21:25 ` kernel test robot
2026-02-06 21:25 ` kernel test robot
2026-02-06 17:06 ` [PATCH v5 1/5] i3c: master: Expose the APIs to support I3C hub Frank Li
2026-02-06 17:06 ` Frank Li
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=20260210023354.GA2357771-robh@kernel.org \
--to=robh@kernel.org \
--cc=Frank.Li@nxp.com \
--cc=alexandre.belloni@bootlin.com \
--cc=aman.kumarpandey@nxp.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=priyanka.jain@nxp.com \
--cc=shashank.rebbapragada@nxp.com \
--cc=vikash.bansal@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.