* [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
@ 2025-02-12 13:22 ` Aman Kumar Pandey
0 siblings, 0 replies; 9+ messages in thread
From: Aman Kumar Pandey @ 2025-02-12 13:22 UTC (permalink / raw)
To: linux-kernel, linux-i3c, alexandre.belloni, krzk+dt, robh,
conor+dt, devicetree
Cc: vikash.bansal, priyanka.jain, shashank.rebbapragada, Frank.Li,
Aman Kumar Pandey
P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
device which connects to a host CPU via I3C/I2C/SMBus bus on one
side and to multiple peripheral devices on the other side.
Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
---
.../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
MAINTAINERS | 7 +
2 files changed, 411 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
diff --git a/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
new file mode 100644
index 000000000000..33ea524e5432
--- /dev/null
+++ b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
@@ -0,0 +1,404 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright 2024-2025 NXP
+
+%YAML 1.2
+
+$id: http://devicetree.org/schemas/i3c/p3h2x4x_i3c_hub.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: P3H2X4X I3C HUB
+
+maintainers:
+ - Vikash Bansal <vikash.bansal@nxp.com>
+ - Aman Kumar Pandey <aman.kumarpandey@nxp.com>
+
+description: |
+ P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) are multiport I3C hub devices
+ that connect to:-
+ 1. A host CPU via I3C/I2C/SMBus bus on one side and connect to multiple
+ peripheral devices on the other 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 devices with eight I3C/I2C Target Port.
+ 4. P3H2440/ P3H2441 are 4 port I3C hub devices with four I3C/I2C Target Port.
+ Target ports can be configured as I2C/SMBus, I3C or GPIO and connect to
+ peripherals.
+
+ Device tree node can be used for following configurations:-
+ 1. Controller Port can be configured via dt entry to support
+ 2. I2C/SMBus mode or I3C buses.
+ 3. Enabling voltage compatibility across I3C Controller and
+ Target devices.
+ 4. Up to eight target devices and their modes(I3C/I2C/SMbus modes).
+ 5. To support MCTP device
+ 6. To support In-band interrupts
+
+ Controller Port can be configured via dt entry to support I2C/SMBus mode or
+ I3C buses.
+
+ For I2C devices, use below format:
+ DT node: hub@static_address
+ reg: encodes the static I2C address.
+
+ For I3C devices, use below format:
+ DT node: hub@static_address,PID
+ reg: encodes the static I2C address (0 if the device does not have one), and the
+ Provisioned ID (PID) used to uniquely identify a device on a bus.
+ This PID contains information about the vendor, the part, and an instance ID so
+ that several devices of the same type can be connected on the same bus.
+ assigned-address: represents the dynamic address to be assigned to this device.
+
+allOf:
+ - $ref: i3c.yaml#
+
+properties:
+
+ cp0-ldo-en:
+ enum:
+ - disabled
+ - enabled
+ description: |
+ I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ cp1-ldo-en:
+ enum:
+ - disabled
+ - enabled
+
+ description: |
+ I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ tp0145-ldo-en:
+ enum:
+ - disabled
+ - enabled
+
+ description: |
+ I3C HUB Target Ports 0/1/4/5 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ tp2367-ldo-en:
+ enum:
+ - disabled
+ - enabled
+
+ description: |
+ I3C HUB Target Ports 2/3/6/7 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ cp0-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Controller Port 0 voltage level is controlled by the I3C HUB Controller Port 0
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ cp1-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Controller Port 1 voltage level is controlled by the I3C HUB Controller Port 1
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp0145-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Target Port 0/1/4/5 voltage level is controlled by the I3C HUB Target Port 0/1/4/5
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp2367-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Target Port 2/3/6/7 voltage level is controlled by the I3C HUB Target Port 2/3/6/7
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp0145-pullup:
+ enum:
+ - 250R
+ - 500R
+ - 1000R
+ - 2000R
+
+ description: |
+ Target Port 0/1/4/5 pull up setting is controlled by the I3C HUB Target Port 0/1/4/5
+ pull up resistance level.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp2367-pullup:
+ enum:
+ - 250R
+ - 500R
+ - 1000R
+ - 2000R
+
+ description: |
+ Target Port 2/3/6/7 pull up setting is controlled by the I3C HUB Target Port 2/3/6/7
+ pull up resistance level.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ cp0-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+
+ description: |
+ To regulate the output driver strength at Controller Port 0, use the I3C HUB Controller
+ Port 0 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ cp1-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+ description: |
+ To regulate the output driver strength at Controller Port 1, use the I3C HUB Controller
+ Port 1 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ tp0145-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+
+ description: |
+ To regulate the output driver strength at Target port 0/1/4/5, use the I3C HUB Target
+ port 0/1/4/5 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ tp2367-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+
+ description: |
+ To regulate the output driver strength at Target port 2/3/6/7, use the I3C HUB Target
+ port 2/3/6/7 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+patternProperties:
+ "@[0-7]$":
+ type: object
+ description: |
+ I3C HUB Target Port child, should be named: target-port@<target-port-id>
+
+ properties:
+ mode:
+ enum:
+ - i3c
+ - smbus
+ - i2c
+ - gpio
+
+ description: |
+ I3C HUB Target Port mode setting to control Target Port functionality.
+ As per now it is oly supporting SMBus, i2c and i3c( i2c mode will work
+ with hub network).
+
+ pullup:
+ enum:
+ - disabled
+ - enabled
+ description: |
+ I3C HUB Target Port pull-up setting to disable/enable Target Port pull-up.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ ibi_en:
+ enum:
+ - disabled
+ - enabled
+ description: |
+ I3C HUB Target Port IBI setting to disable/enable IBI for Target Port.
+ This property is optional. If not provided, Target Port IBI will disabled.
+
+ local_dev:
+ description: |
+ SMBus Target Agent can discard transactions of downstream device and not generate an IBI to upstream I3C Hub
+ Controller Port. Up to 8 device (addresses) can be configured as local Devices.
+
+ This property is optional. If not provided, local device list will empty.
+
+ always-enable:
+ description: |
+ Add this field to enable hub network(Controller port -> target port).
+
+ This property is optional. If not provided, by default hub network will disabled for respective port.
+
+ patternProperties:
+ "@slave-address,pid$":
+ type: object
+ description: |
+ Adding this node to install the downstream devices.
+
+ properties:
+ compatible:
+ description:
+ Compatible of the I2C/SMBus downstream device.
+
+ reg:
+ description:
+ Downstream device addresses which are connected to target port.
+
+ I3c HUB driver supports standerd i2c/i3c DT entry as it passes DT node to respective driver for
+ downstream device.
+
+additionalProperties: true
+
+examples:
+ - |
+ i3c_hub: hub@70,236153000c2{
+ reg = <0x70 0x236 0x3000c2>;
+ assigned-address = <0x50>;
+ dcr = <0xC2>;
+
+ cp0-ldo-en = "disabled";
+ cp1-ldo-en = "disabled";
+ cp0-ldo-volt = "1.8V";
+ cp1-ldo-volt = "1.8V";
+ tp0145-ldo-en = "disabled";
+ tp2367-ldo-en = "disabled";
+ tp0145-ldo-volt = "1.8V";
+ tp2367-ldo-volt = "1.8V";
+ tp0145-pullup= "1000R";
+ tp2367-pullup = "1000R";
+ tp0145-io-strength = "20Ohms";
+ tp2367-io-strength = "20Ohms";
+ cp0-io-strength = "20Ohms";
+ cp1-io-strength = "20Ohms";
+ target-port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "smbus";
+ pullup_en = "enabled";
+ ibi_en = "enabled";
+ local_dev = <0x30>, <0x40>, <0x50>;
+ backend@4c{
+ compatible = "i3c-hub";
+ reg = <0x4c>;
+ };
+ rtc@68 {
+ compatible = "dallas,ds3232";
+ reg = <0x68>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <20 0>;
+ trickle-resistor-ohms = <250>;
+ };
+
+ eeprom@57 {
+ compatible = "atmel,24c32";
+ reg = <0x57>;
+ pagesize = <32>;
+ wp-gpios = <&gpio2 2 0>;
+ num-addresses = <8>;
+ };
+ };
+ target-port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "smbus";
+ pullup_en = "enabled";
+ ibi_en = "enabled";
+ local_dev = <0x35>, <0x45>, <0x55>;
+ };
+ target-port@2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "i3c";
+ pullup_en = "enabled";
+ hub-test@4c,25400000000{
+ reg = <0x4c 0x254 0x0000>;
+ assigned-address = <0x50>;
+ };
+ };
+ target-port@3 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "i3c";
+ pullup_en = "enabled";
+ always-enable;
+ };
+ };
+
+ i3c_hub: hub@70 {
+ compatible = "nxp,p3h2x4x";
+ reg = <0x70>;
+
+ cp0-ldo-en = "disabled";
+ cp1-ldo-en = "disabled";
+ cp0-ldo-volt = "1.8V";
+ cp1-ldo-volt = "1.8V";
+ tp0145-ldo-en = "disabled";
+ tp2367-ldo-en = "disabled";
+ tp0145-ldo-volt = "1.8V";
+ tp2367-ldo-volt = "1.8V";
+ tp0145-pullup= "1000R";
+ tp2367-pullup = "1000R";
+ tp0145-io-strength = "20Ohms";
+ tp2367-io-strength = "20Ohms";
+ cp0-io-strength = "20Ohms";
+ cp1-io-strength = "20Ohms";
+ target-port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "smbus";
+ pullup_en = "enabled";
+ ibi_en = "enabled";
+ local_dev = <0x30>, <0x40>, <0x50>;
+
+ backend@4c{
+ compatible = "test-dvr";
+ reg = <0x4c>;
+ };
+ rtc@68 {
+ compatible = "dallas,ds3232";
+ reg = <0x68>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <20 0>;
+ trickle-resistor-ohms = <250>;
+ };
+
+ eeprom@57 {
+ compatible = "atmel,24c32";
+ reg = <0x57>;
+ pagesize = <32>;
+ wp-gpios = <&gpio2 2 0>;
+ num-addresses = <8>;
+ };
+ };
+ };
+- |
diff --git a/MAINTAINERS b/MAINTAINERS
index af686e0bb6d7..20aa3e987ac5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17167,6 +17167,13 @@ S: Maintained
F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
F: sound/soc/codecs/tfa989x.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
+S: Maintained
+F: Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
+
NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
M: Jonas Malaco <jonas@protocubo.io>
L: linux-hwmon@vger.kernel.org
--
2.25.1
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
@ 2025-02-12 13:22 ` Aman Kumar Pandey
0 siblings, 0 replies; 9+ messages in thread
From: Aman Kumar Pandey @ 2025-02-12 13:22 UTC (permalink / raw)
To: linux-kernel, linux-i3c, alexandre.belloni, krzk+dt, robh,
conor+dt, devicetree
Cc: vikash.bansal, priyanka.jain, shashank.rebbapragada, Frank.Li,
Aman Kumar Pandey
P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
device which connects to a host CPU via I3C/I2C/SMBus bus on one
side and to multiple peripheral devices on the other side.
Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
---
.../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
MAINTAINERS | 7 +
2 files changed, 411 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
diff --git a/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
new file mode 100644
index 000000000000..33ea524e5432
--- /dev/null
+++ b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
@@ -0,0 +1,404 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright 2024-2025 NXP
+
+%YAML 1.2
+
+$id: http://devicetree.org/schemas/i3c/p3h2x4x_i3c_hub.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: P3H2X4X I3C HUB
+
+maintainers:
+ - Vikash Bansal <vikash.bansal@nxp.com>
+ - Aman Kumar Pandey <aman.kumarpandey@nxp.com>
+
+description: |
+ P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) are multiport I3C hub devices
+ that connect to:-
+ 1. A host CPU via I3C/I2C/SMBus bus on one side and connect to multiple
+ peripheral devices on the other 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 devices with eight I3C/I2C Target Port.
+ 4. P3H2440/ P3H2441 are 4 port I3C hub devices with four I3C/I2C Target Port.
+ Target ports can be configured as I2C/SMBus, I3C or GPIO and connect to
+ peripherals.
+
+ Device tree node can be used for following configurations:-
+ 1. Controller Port can be configured via dt entry to support
+ 2. I2C/SMBus mode or I3C buses.
+ 3. Enabling voltage compatibility across I3C Controller and
+ Target devices.
+ 4. Up to eight target devices and their modes(I3C/I2C/SMbus modes).
+ 5. To support MCTP device
+ 6. To support In-band interrupts
+
+ Controller Port can be configured via dt entry to support I2C/SMBus mode or
+ I3C buses.
+
+ For I2C devices, use below format:
+ DT node: hub@static_address
+ reg: encodes the static I2C address.
+
+ For I3C devices, use below format:
+ DT node: hub@static_address,PID
+ reg: encodes the static I2C address (0 if the device does not have one), and the
+ Provisioned ID (PID) used to uniquely identify a device on a bus.
+ This PID contains information about the vendor, the part, and an instance ID so
+ that several devices of the same type can be connected on the same bus.
+ assigned-address: represents the dynamic address to be assigned to this device.
+
+allOf:
+ - $ref: i3c.yaml#
+
+properties:
+
+ cp0-ldo-en:
+ enum:
+ - disabled
+ - enabled
+ description: |
+ I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ cp1-ldo-en:
+ enum:
+ - disabled
+ - enabled
+
+ description: |
+ I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ tp0145-ldo-en:
+ enum:
+ - disabled
+ - enabled
+
+ description: |
+ I3C HUB Target Ports 0/1/4/5 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ tp2367-ldo-en:
+ enum:
+ - disabled
+ - enabled
+
+ description: |
+ I3C HUB Target Ports 2/3/6/7 LDO setting for turning on and off. If enabled, the dedicated
+ pin will provide the voltage generated by the on-die LDO. It is an optional property,
+ the configuration remains default if it is not supplied.
+
+ cp0-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Controller Port 0 voltage level is controlled by the I3C HUB Controller Port 0
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ cp1-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Controller Port 1 voltage level is controlled by the I3C HUB Controller Port 1
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp0145-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Target Port 0/1/4/5 voltage level is controlled by the I3C HUB Target Port 0/1/4/5
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp2367-ldo-volt:
+ enum:
+ - 1.0V
+ - 1.1V
+ - 1.2V
+ - 1.8V
+
+ description: |
+ Target Port 2/3/6/7 voltage level is controlled by the I3C HUB Target Port 2/3/6/7
+ LDO setting.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp0145-pullup:
+ enum:
+ - 250R
+ - 500R
+ - 1000R
+ - 2000R
+
+ description: |
+ Target Port 0/1/4/5 pull up setting is controlled by the I3C HUB Target Port 0/1/4/5
+ pull up resistance level.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ tp2367-pullup:
+ enum:
+ - 250R
+ - 500R
+ - 1000R
+ - 2000R
+
+ description: |
+ Target Port 2/3/6/7 pull up setting is controlled by the I3C HUB Target Port 2/3/6/7
+ pull up resistance level.
+ Since this parameter is optional, the configuration remains default if it is not supplied.
+
+ cp0-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+
+ description: |
+ To regulate the output driver strength at Controller Port 0, use the I3C HUB Controller
+ Port 0 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ cp1-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+ description: |
+ To regulate the output driver strength at Controller Port 1, use the I3C HUB Controller
+ Port 1 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ tp0145-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+
+ description: |
+ To regulate the output driver strength at Target port 0/1/4/5, use the I3C HUB Target
+ port 0/1/4/5 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ tp2367-io-strength:
+ enum:
+ - 20Ohms
+ - 30Ohms
+ - 40Ohms
+ - 50Ohms
+
+ description: |
+ To regulate the output driver strength at Target port 2/3/6/7, use the I3C HUB Target
+ port 2/3/6/7 IO strength setting.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+patternProperties:
+ "@[0-7]$":
+ type: object
+ description: |
+ I3C HUB Target Port child, should be named: target-port@<target-port-id>
+
+ properties:
+ mode:
+ enum:
+ - i3c
+ - smbus
+ - i2c
+ - gpio
+
+ description: |
+ I3C HUB Target Port mode setting to control Target Port functionality.
+ As per now it is oly supporting SMBus, i2c and i3c( i2c mode will work
+ with hub network).
+
+ pullup:
+ enum:
+ - disabled
+ - enabled
+ description: |
+ I3C HUB Target Port pull-up setting to disable/enable Target Port pull-up.
+ It is an optional property, the configuration remains default if it is not supplied.
+
+ ibi_en:
+ enum:
+ - disabled
+ - enabled
+ description: |
+ I3C HUB Target Port IBI setting to disable/enable IBI for Target Port.
+ This property is optional. If not provided, Target Port IBI will disabled.
+
+ local_dev:
+ description: |
+ SMBus Target Agent can discard transactions of downstream device and not generate an IBI to upstream I3C Hub
+ Controller Port. Up to 8 device (addresses) can be configured as local Devices.
+
+ This property is optional. If not provided, local device list will empty.
+
+ always-enable:
+ description: |
+ Add this field to enable hub network(Controller port -> target port).
+
+ This property is optional. If not provided, by default hub network will disabled for respective port.
+
+ patternProperties:
+ "@slave-address,pid$":
+ type: object
+ description: |
+ Adding this node to install the downstream devices.
+
+ properties:
+ compatible:
+ description:
+ Compatible of the I2C/SMBus downstream device.
+
+ reg:
+ description:
+ Downstream device addresses which are connected to target port.
+
+ I3c HUB driver supports standerd i2c/i3c DT entry as it passes DT node to respective driver for
+ downstream device.
+
+additionalProperties: true
+
+examples:
+ - |
+ i3c_hub: hub@70,236153000c2{
+ reg = <0x70 0x236 0x3000c2>;
+ assigned-address = <0x50>;
+ dcr = <0xC2>;
+
+ cp0-ldo-en = "disabled";
+ cp1-ldo-en = "disabled";
+ cp0-ldo-volt = "1.8V";
+ cp1-ldo-volt = "1.8V";
+ tp0145-ldo-en = "disabled";
+ tp2367-ldo-en = "disabled";
+ tp0145-ldo-volt = "1.8V";
+ tp2367-ldo-volt = "1.8V";
+ tp0145-pullup= "1000R";
+ tp2367-pullup = "1000R";
+ tp0145-io-strength = "20Ohms";
+ tp2367-io-strength = "20Ohms";
+ cp0-io-strength = "20Ohms";
+ cp1-io-strength = "20Ohms";
+ target-port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "smbus";
+ pullup_en = "enabled";
+ ibi_en = "enabled";
+ local_dev = <0x30>, <0x40>, <0x50>;
+ backend@4c{
+ compatible = "i3c-hub";
+ reg = <0x4c>;
+ };
+ rtc@68 {
+ compatible = "dallas,ds3232";
+ reg = <0x68>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <20 0>;
+ trickle-resistor-ohms = <250>;
+ };
+
+ eeprom@57 {
+ compatible = "atmel,24c32";
+ reg = <0x57>;
+ pagesize = <32>;
+ wp-gpios = <&gpio2 2 0>;
+ num-addresses = <8>;
+ };
+ };
+ target-port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "smbus";
+ pullup_en = "enabled";
+ ibi_en = "enabled";
+ local_dev = <0x35>, <0x45>, <0x55>;
+ };
+ target-port@2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "i3c";
+ pullup_en = "enabled";
+ hub-test@4c,25400000000{
+ reg = <0x4c 0x254 0x0000>;
+ assigned-address = <0x50>;
+ };
+ };
+ target-port@3 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "i3c";
+ pullup_en = "enabled";
+ always-enable;
+ };
+ };
+
+ i3c_hub: hub@70 {
+ compatible = "nxp,p3h2x4x";
+ reg = <0x70>;
+
+ cp0-ldo-en = "disabled";
+ cp1-ldo-en = "disabled";
+ cp0-ldo-volt = "1.8V";
+ cp1-ldo-volt = "1.8V";
+ tp0145-ldo-en = "disabled";
+ tp2367-ldo-en = "disabled";
+ tp0145-ldo-volt = "1.8V";
+ tp2367-ldo-volt = "1.8V";
+ tp0145-pullup= "1000R";
+ tp2367-pullup = "1000R";
+ tp0145-io-strength = "20Ohms";
+ tp2367-io-strength = "20Ohms";
+ cp0-io-strength = "20Ohms";
+ cp1-io-strength = "20Ohms";
+ target-port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mode = "smbus";
+ pullup_en = "enabled";
+ ibi_en = "enabled";
+ local_dev = <0x30>, <0x40>, <0x50>;
+
+ backend@4c{
+ compatible = "test-dvr";
+ reg = <0x4c>;
+ };
+ rtc@68 {
+ compatible = "dallas,ds3232";
+ reg = <0x68>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <20 0>;
+ trickle-resistor-ohms = <250>;
+ };
+
+ eeprom@57 {
+ compatible = "atmel,24c32";
+ reg = <0x57>;
+ pagesize = <32>;
+ wp-gpios = <&gpio2 2 0>;
+ num-addresses = <8>;
+ };
+ };
+ };
+- |
diff --git a/MAINTAINERS b/MAINTAINERS
index af686e0bb6d7..20aa3e987ac5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17167,6 +17167,13 @@ S: Maintained
F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
F: sound/soc/codecs/tfa989x.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
+S: Maintained
+F: Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
+
NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
M: Jonas Malaco <jonas@protocubo.io>
L: linux-hwmon@vger.kernel.org
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
2025-02-12 13:22 ` Aman Kumar Pandey
@ 2025-02-12 15:25 ` Rob Herring (Arm)
-1 siblings, 0 replies; 9+ messages in thread
From: Rob Herring (Arm) @ 2025-02-12 15:25 UTC (permalink / raw)
To: Aman Kumar Pandey
Cc: shashank.rebbapragada, Frank.Li, krzk+dt, conor+dt, priyanka.jain,
vikash.bansal, alexandre.belloni, linux-i3c, linux-kernel,
devicetree
On Wed, 12 Feb 2025 15:22:26 +0200, Aman Kumar Pandey wrote:
> P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
> device which connects to a host CPU via I3C/I2C/SMBus bus on one
> side and to multiple peripheral devices on the other side.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
> ---
> .../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
> MAINTAINERS | 7 +
> 2 files changed, 411 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:6:1: [error] syntax error: expected '<document start>', but found '<block mapping start>' (syntax)
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:251:111: [warning] line too long (118 > 110 characters) (line-length)
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:260:111: [warning] line too long (111 > 110 characters) (line-length)
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml: ignoring, error parsing file
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:6:1: expected '<document start>', but found ('<block mapping start>',)
make[2]: *** Deleting file 'Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.example.dts'
Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:6:1: expected '<document start>', but found ('<block mapping start>',)
make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.example.dts] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1511: dt_binding_check] Error 2
make: *** [Makefile:251: __sub-make] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250212132227.1348374-1-aman.kumarpandey@nxp.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
@ 2025-02-12 15:25 ` Rob Herring (Arm)
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring (Arm) @ 2025-02-12 15:25 UTC (permalink / raw)
To: Aman Kumar Pandey
Cc: shashank.rebbapragada, Frank.Li, krzk+dt, conor+dt, priyanka.jain,
vikash.bansal, alexandre.belloni, linux-i3c, linux-kernel,
devicetree
On Wed, 12 Feb 2025 15:22:26 +0200, Aman Kumar Pandey wrote:
> P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
> device which connects to a host CPU via I3C/I2C/SMBus bus on one
> side and to multiple peripheral devices on the other side.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
> ---
> .../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
> MAINTAINERS | 7 +
> 2 files changed, 411 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:6:1: [error] syntax error: expected '<document start>', but found '<block mapping start>' (syntax)
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:251:111: [warning] line too long (118 > 110 characters) (line-length)
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:260:111: [warning] line too long (111 > 110 characters) (line-length)
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml: ignoring, error parsing file
./Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:6:1: expected '<document start>', but found ('<block mapping start>',)
make[2]: *** Deleting file 'Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.example.dts'
Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml:6:1: expected '<document start>', but found ('<block mapping start>',)
make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.example.dts] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1511: dt_binding_check] Error 2
make: *** [Makefile:251: __sub-make] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250212132227.1348374-1-aman.kumarpandey@nxp.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
2025-02-12 13:22 ` Aman Kumar Pandey
@ 2025-02-12 16:23 ` Frank Li
-1 siblings, 0 replies; 9+ messages in thread
From: Frank Li @ 2025-02-12 16:23 UTC (permalink / raw)
To: Aman Kumar Pandey
Cc: linux-kernel, linux-i3c, alexandre.belloni, krzk+dt, robh,
conor+dt, devicetree, vikash.bansal, priyanka.jain,
shashank.rebbapragada
On Wed, Feb 12, 2025 at 03:22:26PM +0200, Aman Kumar Pandey wrote:
> P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
> device which connects to a host CPU via I3C/I2C/SMBus bus on one
> side and to multiple peripheral devices on the other side.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
> ---
You need run before post
make dt_binding_check DT_SCHEMA_FILES=p3h2x4x_i3c_hub.yaml
I just go through it.
> .../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
> MAINTAINERS | 7 +
> 2 files changed, 411 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
>
> diff --git a/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> new file mode 100644
> index 000000000000..33ea524e5432
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> @@ -0,0 +1,404 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright 2024-2025 NXP
> +
> +%YAML 1.2
> +
> +$id: http://devicetree.org/schemas/i3c/p3h2x4x_i3c_hub.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: P3H2X4X I3C HUB
> +
> +maintainers:
> + - Vikash Bansal <vikash.bansal@nxp.com>
> + - Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> +
> +description: |
> + P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) are multiport I3C hub devices
> + that connect to:-
> + 1. A host CPU via I3C/I2C/SMBus bus on one side and connect to multiple
> + peripheral devices on the other 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 devices with eight I3C/I2C Target Port.
> + 4. P3H2440/ P3H2441 are 4 port I3C hub devices with four I3C/I2C Target Port.
> + Target ports can be configured as I2C/SMBus, I3C or GPIO and connect to
> + peripherals.
> +
> + Device tree node can be used for following configurations:-
> + 1. Controller Port can be configured via dt entry to support
> + 2. I2C/SMBus mode or I3C buses.
> + 3. Enabling voltage compatibility across I3C Controller and
> + Target devices.
> + 4. Up to eight target devices and their modes(I3C/I2C/SMbus modes).
> + 5. To support MCTP device
> + 6. To support In-band interrupts
> +
> + Controller Port can be configured via dt entry to support I2C/SMBus mode or
> + I3C buses.
> +
> + For I2C devices, use below format:
> + DT node: hub@static_address
> + reg: encodes the static I2C address.
> +
> + For I3C devices, use below format:
> + DT node: hub@static_address,PID
> + reg: encodes the static I2C address (0 if the device does not have one), and the
> + Provisioned ID (PID) used to uniquely identify a device on a bus.
> + This PID contains information about the vendor, the part, and an instance ID so
> + that several devices of the same type can be connected on the same bus.
> + assigned-address: represents the dynamic address to be assigned to this device.
> +
> +allOf:
> + - $ref: i3c.yaml#
> +
> +properties:
> +
missed compatible string?
> + cp0-ldo-en:
> + enum:
> + - disabled
> + - enabled
vendor specic property should be start with vendor name.
nxp,cp0-ldo-en
bool property, simple use flag.
$ref: /schemas/types.yaml#/definitions/flag
The same as below other properties
> + description: |
Needn't "|", if not format below context.
> + I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + cp1-ldo-en:
> + enum:
> + - disabled
> + - enabled
> +
> + description: |
> + I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + tp0145-ldo-en:
> + enum:
> + - disabled
> + - enabled
> +
> + description: |
> + I3C HUB Target Ports 0/1/4/5 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + tp2367-ldo-en:
> + enum:
> + - disabled
> + - enabled
> +
> + description: |
> + I3C HUB Target Ports 2/3/6/7 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + cp0-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Controller Port 0 voltage level is controlled by the I3C HUB Controller Port 0
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + cp1-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Controller Port 1 voltage level is controlled by the I3C HUB Controller Port 1
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp0145-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Target Port 0/1/4/5 voltage level is controlled by the I3C HUB Target Port 0/1/4/5
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp2367-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Target Port 2/3/6/7 voltage level is controlled by the I3C HUB Target Port 2/3/6/7
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp0145-pullup:
> + enum:
> + - 250R
> + - 500R
> + - 1000R
> + - 2000R
> +
> + description: |
> + Target Port 0/1/4/5 pull up setting is controlled by the I3C HUB Target Port 0/1/4/5
> + pull up resistance level.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp2367-pullup:
> + enum:
> + - 250R
> + - 500R
> + - 1000R
> + - 2000R
> +
> + description: |
> + Target Port 2/3/6/7 pull up setting is controlled by the I3C HUB Target Port 2/3/6/7
> + pull up resistance level.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + cp0-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> +
> + description: |
> + To regulate the output driver strength at Controller Port 0, use the I3C HUB Controller
> + Port 0 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + cp1-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> + description: |
> + To regulate the output driver strength at Controller Port 1, use the I3C HUB Controller
> + Port 1 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + tp0145-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> +
> + description: |
> + To regulate the output driver strength at Target port 0/1/4/5, use the I3C HUB Target
> + port 0/1/4/5 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + tp2367-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> +
> + description: |
> + To regulate the output driver strength at Target port 2/3/6/7, use the I3C HUB Target
> + port 2/3/6/7 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> +patternProperties:
> + "@[0-7]$":
> + type: object
> + description: |
> + I3C HUB Target Port child, should be named: target-port@<target-port-id>
> +
> + properties:
> + mode:
> + enum:
> + - i3c
> + - smbus
> + - i2c
> + - gpio
> +
> + description: |
> + I3C HUB Target Port mode setting to control Target Port functionality.
> + As per now it is oly supporting SMBus, i2c and i3c( i2c mode will work
> + with hub network).
> +
> + pullup:
> + enum:
> + - disabled
> + - enabled
> + description: |
> + I3C HUB Target Port pull-up setting to disable/enable Target Port pull-up.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + ibi_en:
> + enum:
> + - disabled
> + - enabled
> + description: |
> + I3C HUB Target Port IBI setting to disable/enable IBI for Target Port.
> + This property is optional. If not provided, Target Port IBI will disabled.
> +
> + local_dev:
> + description: |
> + SMBus Target Agent can discard transactions of downstream device and not generate an IBI to upstream I3C Hub
> + Controller Port. Up to 8 device (addresses) can be configured as local Devices.
> +
> + This property is optional. If not provided, local device list will empty.
> +
> + always-enable:
> + description: |
> + Add this field to enable hub network(Controller port -> target port).
> +
> + This property is optional. If not provided, by default hub network will disabled for respective port.
> +
> + patternProperties:
> + "@slave-address,pid$":
> + type: object
> + description: |
> + Adding this node to install the downstream devices.
> +
> + properties:
> + compatible:
> + description:
> + Compatible of the I2C/SMBus downstream device.
> +
> + reg:
> + description:
> + Downstream device addresses which are connected to target port.
> +
> + I3c HUB driver supports standerd i2c/i3c DT entry as it passes DT node to respective driver for
> + downstream device.
> +
> +additionalProperties: true
should be false
unevaluatedProperties: false
> +
> +examples:
> + - |
> + i3c_hub: hub@70,236153000c2{
> + reg = <0x70 0x236 0x3000c2>;
> + assigned-address = <0x50>;
> + dcr = <0xC2>;
> +
> + cp0-ldo-en = "disabled";
> + cp1-ldo-en = "disabled";
> + cp0-ldo-volt = "1.8V";
> + cp1-ldo-volt = "1.8V";
> + tp0145-ldo-en = "disabled";
> + tp2367-ldo-en = "disabled";
> + tp0145-ldo-volt = "1.8V";
> + tp2367-ldo-volt = "1.8V";
> + tp0145-pullup= "1000R";
> + tp2367-pullup = "1000R";
> + tp0145-io-strength = "20Ohms";
> + tp2367-io-strength = "20Ohms";
> + cp0-io-strength = "20Ohms";
> + cp1-io-strength = "20Ohms";
> + target-port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "smbus";
> + pullup_en = "enabled";
> + ibi_en = "enabled";
> + local_dev = <0x30>, <0x40>, <0x50>;
> + backend@4c{
> + compatible = "i3c-hub";
> + reg = <0x4c>;
> + };
> + rtc@68 {
> + compatible = "dallas,ds3232";
> + reg = <0x68>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <20 0>;
> + trickle-resistor-ohms = <250>;
> + };
> +
> + eeprom@57 {
> + compatible = "atmel,24c32";
> + reg = <0x57>;
> + pagesize = <32>;
> + wp-gpios = <&gpio2 2 0>;
> + num-addresses = <8>;
> + };
> + };
> + target-port@1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "smbus";
> + pullup_en = "enabled";
> + ibi_en = "enabled";
> + local_dev = <0x35>, <0x45>, <0x55>;
> + };
> + target-port@2 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "i3c";
> + pullup_en = "enabled";
> + hub-test@4c,25400000000{
> + reg = <0x4c 0x254 0x0000>;
> + assigned-address = <0x50>;
> + };
> + };
> + target-port@3 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "i3c";
> + pullup_en = "enabled";
> + always-enable;
> + };
> + };
> +
> + i3c_hub: hub@70 {
> + compatible = "nxp,p3h2x4x";
> + reg = <0x70>;
> +
> + cp0-ldo-en = "disabled";
> + cp1-ldo-en = "disabled";
> + cp0-ldo-volt = "1.8V";
> + cp1-ldo-volt = "1.8V";
> + tp0145-ldo-en = "disabled";
> + tp2367-ldo-en = "disabled";
> + tp0145-ldo-volt = "1.8V";
> + tp2367-ldo-volt = "1.8V";
> + tp0145-pullup= "1000R";
> + tp2367-pullup = "1000R";
> + tp0145-io-strength = "20Ohms";
> + tp2367-io-strength = "20Ohms";
> + cp0-io-strength = "20Ohms";
> + cp1-io-strength = "20Ohms";
> + target-port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
align to 4 spaces
> + mode = "smbus";
> + pullup_en = "enabled";
> + ibi_en = "enabled";
> + local_dev = <0x30>, <0x40>, <0x50>;
> +
> + backend@4c{
> + compatible = "test-dvr";
> + reg = <0x4c>;
> + };
Need space line here
> + rtc@68 {
> + compatible = "dallas,ds3232";
> + reg = <0x68>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <20 0>;
> + trickle-resistor-ohms = <250>;
> + };
> +
> + eeprom@57 {
> + compatible = "atmel,24c32";
> + reg = <0x57>;
> + pagesize = <32>;
> + wp-gpios = <&gpio2 2 0>;
> + num-addresses = <8>;
> + };
> + };
> + };
> +- |
> diff --git a/MAINTAINERS b/MAINTAINERS
> index af686e0bb6d7..20aa3e987ac5 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -17167,6 +17167,13 @@ S: Maintained
> F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
> F: sound/soc/codecs/tfa989x.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
Need I3C and imx maillist.
> +S: Maintained
> +F: Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> +
> NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
> M: Jonas Malaco <jonas@protocubo.io>
> L: linux-hwmon@vger.kernel.org
> --
> 2.25.1
>
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
@ 2025-02-12 16:23 ` Frank Li
0 siblings, 0 replies; 9+ messages in thread
From: Frank Li @ 2025-02-12 16:23 UTC (permalink / raw)
To: Aman Kumar Pandey
Cc: linux-kernel, linux-i3c, alexandre.belloni, krzk+dt, robh,
conor+dt, devicetree, vikash.bansal, priyanka.jain,
shashank.rebbapragada
On Wed, Feb 12, 2025 at 03:22:26PM +0200, Aman Kumar Pandey wrote:
> P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
> device which connects to a host CPU via I3C/I2C/SMBus bus on one
> side and to multiple peripheral devices on the other side.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
> ---
You need run before post
make dt_binding_check DT_SCHEMA_FILES=p3h2x4x_i3c_hub.yaml
I just go through it.
> .../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
> MAINTAINERS | 7 +
> 2 files changed, 411 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
>
> diff --git a/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> new file mode 100644
> index 000000000000..33ea524e5432
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> @@ -0,0 +1,404 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright 2024-2025 NXP
> +
> +%YAML 1.2
> +
> +$id: http://devicetree.org/schemas/i3c/p3h2x4x_i3c_hub.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: P3H2X4X I3C HUB
> +
> +maintainers:
> + - Vikash Bansal <vikash.bansal@nxp.com>
> + - Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> +
> +description: |
> + P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) are multiport I3C hub devices
> + that connect to:-
> + 1. A host CPU via I3C/I2C/SMBus bus on one side and connect to multiple
> + peripheral devices on the other 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 devices with eight I3C/I2C Target Port.
> + 4. P3H2440/ P3H2441 are 4 port I3C hub devices with four I3C/I2C Target Port.
> + Target ports can be configured as I2C/SMBus, I3C or GPIO and connect to
> + peripherals.
> +
> + Device tree node can be used for following configurations:-
> + 1. Controller Port can be configured via dt entry to support
> + 2. I2C/SMBus mode or I3C buses.
> + 3. Enabling voltage compatibility across I3C Controller and
> + Target devices.
> + 4. Up to eight target devices and their modes(I3C/I2C/SMbus modes).
> + 5. To support MCTP device
> + 6. To support In-band interrupts
> +
> + Controller Port can be configured via dt entry to support I2C/SMBus mode or
> + I3C buses.
> +
> + For I2C devices, use below format:
> + DT node: hub@static_address
> + reg: encodes the static I2C address.
> +
> + For I3C devices, use below format:
> + DT node: hub@static_address,PID
> + reg: encodes the static I2C address (0 if the device does not have one), and the
> + Provisioned ID (PID) used to uniquely identify a device on a bus.
> + This PID contains information about the vendor, the part, and an instance ID so
> + that several devices of the same type can be connected on the same bus.
> + assigned-address: represents the dynamic address to be assigned to this device.
> +
> +allOf:
> + - $ref: i3c.yaml#
> +
> +properties:
> +
missed compatible string?
> + cp0-ldo-en:
> + enum:
> + - disabled
> + - enabled
vendor specic property should be start with vendor name.
nxp,cp0-ldo-en
bool property, simple use flag.
$ref: /schemas/types.yaml#/definitions/flag
The same as below other properties
> + description: |
Needn't "|", if not format below context.
> + I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + cp1-ldo-en:
> + enum:
> + - disabled
> + - enabled
> +
> + description: |
> + I3C HUB Controller Port 0 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + tp0145-ldo-en:
> + enum:
> + - disabled
> + - enabled
> +
> + description: |
> + I3C HUB Target Ports 0/1/4/5 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + tp2367-ldo-en:
> + enum:
> + - disabled
> + - enabled
> +
> + description: |
> + I3C HUB Target Ports 2/3/6/7 LDO setting for turning on and off. If enabled, the dedicated
> + pin will provide the voltage generated by the on-die LDO. It is an optional property,
> + the configuration remains default if it is not supplied.
> +
> + cp0-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Controller Port 0 voltage level is controlled by the I3C HUB Controller Port 0
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + cp1-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Controller Port 1 voltage level is controlled by the I3C HUB Controller Port 1
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp0145-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Target Port 0/1/4/5 voltage level is controlled by the I3C HUB Target Port 0/1/4/5
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp2367-ldo-volt:
> + enum:
> + - 1.0V
> + - 1.1V
> + - 1.2V
> + - 1.8V
> +
> + description: |
> + Target Port 2/3/6/7 voltage level is controlled by the I3C HUB Target Port 2/3/6/7
> + LDO setting.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp0145-pullup:
> + enum:
> + - 250R
> + - 500R
> + - 1000R
> + - 2000R
> +
> + description: |
> + Target Port 0/1/4/5 pull up setting is controlled by the I3C HUB Target Port 0/1/4/5
> + pull up resistance level.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + tp2367-pullup:
> + enum:
> + - 250R
> + - 500R
> + - 1000R
> + - 2000R
> +
> + description: |
> + Target Port 2/3/6/7 pull up setting is controlled by the I3C HUB Target Port 2/3/6/7
> + pull up resistance level.
> + Since this parameter is optional, the configuration remains default if it is not supplied.
> +
> + cp0-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> +
> + description: |
> + To regulate the output driver strength at Controller Port 0, use the I3C HUB Controller
> + Port 0 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + cp1-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> + description: |
> + To regulate the output driver strength at Controller Port 1, use the I3C HUB Controller
> + Port 1 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + tp0145-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> +
> + description: |
> + To regulate the output driver strength at Target port 0/1/4/5, use the I3C HUB Target
> + port 0/1/4/5 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + tp2367-io-strength:
> + enum:
> + - 20Ohms
> + - 30Ohms
> + - 40Ohms
> + - 50Ohms
> +
> + description: |
> + To regulate the output driver strength at Target port 2/3/6/7, use the I3C HUB Target
> + port 2/3/6/7 IO strength setting.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> +patternProperties:
> + "@[0-7]$":
> + type: object
> + description: |
> + I3C HUB Target Port child, should be named: target-port@<target-port-id>
> +
> + properties:
> + mode:
> + enum:
> + - i3c
> + - smbus
> + - i2c
> + - gpio
> +
> + description: |
> + I3C HUB Target Port mode setting to control Target Port functionality.
> + As per now it is oly supporting SMBus, i2c and i3c( i2c mode will work
> + with hub network).
> +
> + pullup:
> + enum:
> + - disabled
> + - enabled
> + description: |
> + I3C HUB Target Port pull-up setting to disable/enable Target Port pull-up.
> + It is an optional property, the configuration remains default if it is not supplied.
> +
> + ibi_en:
> + enum:
> + - disabled
> + - enabled
> + description: |
> + I3C HUB Target Port IBI setting to disable/enable IBI for Target Port.
> + This property is optional. If not provided, Target Port IBI will disabled.
> +
> + local_dev:
> + description: |
> + SMBus Target Agent can discard transactions of downstream device and not generate an IBI to upstream I3C Hub
> + Controller Port. Up to 8 device (addresses) can be configured as local Devices.
> +
> + This property is optional. If not provided, local device list will empty.
> +
> + always-enable:
> + description: |
> + Add this field to enable hub network(Controller port -> target port).
> +
> + This property is optional. If not provided, by default hub network will disabled for respective port.
> +
> + patternProperties:
> + "@slave-address,pid$":
> + type: object
> + description: |
> + Adding this node to install the downstream devices.
> +
> + properties:
> + compatible:
> + description:
> + Compatible of the I2C/SMBus downstream device.
> +
> + reg:
> + description:
> + Downstream device addresses which are connected to target port.
> +
> + I3c HUB driver supports standerd i2c/i3c DT entry as it passes DT node to respective driver for
> + downstream device.
> +
> +additionalProperties: true
should be false
unevaluatedProperties: false
> +
> +examples:
> + - |
> + i3c_hub: hub@70,236153000c2{
> + reg = <0x70 0x236 0x3000c2>;
> + assigned-address = <0x50>;
> + dcr = <0xC2>;
> +
> + cp0-ldo-en = "disabled";
> + cp1-ldo-en = "disabled";
> + cp0-ldo-volt = "1.8V";
> + cp1-ldo-volt = "1.8V";
> + tp0145-ldo-en = "disabled";
> + tp2367-ldo-en = "disabled";
> + tp0145-ldo-volt = "1.8V";
> + tp2367-ldo-volt = "1.8V";
> + tp0145-pullup= "1000R";
> + tp2367-pullup = "1000R";
> + tp0145-io-strength = "20Ohms";
> + tp2367-io-strength = "20Ohms";
> + cp0-io-strength = "20Ohms";
> + cp1-io-strength = "20Ohms";
> + target-port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "smbus";
> + pullup_en = "enabled";
> + ibi_en = "enabled";
> + local_dev = <0x30>, <0x40>, <0x50>;
> + backend@4c{
> + compatible = "i3c-hub";
> + reg = <0x4c>;
> + };
> + rtc@68 {
> + compatible = "dallas,ds3232";
> + reg = <0x68>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <20 0>;
> + trickle-resistor-ohms = <250>;
> + };
> +
> + eeprom@57 {
> + compatible = "atmel,24c32";
> + reg = <0x57>;
> + pagesize = <32>;
> + wp-gpios = <&gpio2 2 0>;
> + num-addresses = <8>;
> + };
> + };
> + target-port@1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "smbus";
> + pullup_en = "enabled";
> + ibi_en = "enabled";
> + local_dev = <0x35>, <0x45>, <0x55>;
> + };
> + target-port@2 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "i3c";
> + pullup_en = "enabled";
> + hub-test@4c,25400000000{
> + reg = <0x4c 0x254 0x0000>;
> + assigned-address = <0x50>;
> + };
> + };
> + target-port@3 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + mode = "i3c";
> + pullup_en = "enabled";
> + always-enable;
> + };
> + };
> +
> + i3c_hub: hub@70 {
> + compatible = "nxp,p3h2x4x";
> + reg = <0x70>;
> +
> + cp0-ldo-en = "disabled";
> + cp1-ldo-en = "disabled";
> + cp0-ldo-volt = "1.8V";
> + cp1-ldo-volt = "1.8V";
> + tp0145-ldo-en = "disabled";
> + tp2367-ldo-en = "disabled";
> + tp0145-ldo-volt = "1.8V";
> + tp2367-ldo-volt = "1.8V";
> + tp0145-pullup= "1000R";
> + tp2367-pullup = "1000R";
> + tp0145-io-strength = "20Ohms";
> + tp2367-io-strength = "20Ohms";
> + cp0-io-strength = "20Ohms";
> + cp1-io-strength = "20Ohms";
> + target-port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
align to 4 spaces
> + mode = "smbus";
> + pullup_en = "enabled";
> + ibi_en = "enabled";
> + local_dev = <0x30>, <0x40>, <0x50>;
> +
> + backend@4c{
> + compatible = "test-dvr";
> + reg = <0x4c>;
> + };
Need space line here
> + rtc@68 {
> + compatible = "dallas,ds3232";
> + reg = <0x68>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <20 0>;
> + trickle-resistor-ohms = <250>;
> + };
> +
> + eeprom@57 {
> + compatible = "atmel,24c32";
> + reg = <0x57>;
> + pagesize = <32>;
> + wp-gpios = <&gpio2 2 0>;
> + num-addresses = <8>;
> + };
> + };
> + };
> +- |
> diff --git a/MAINTAINERS b/MAINTAINERS
> index af686e0bb6d7..20aa3e987ac5 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -17167,6 +17167,13 @@ S: Maintained
> F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
> F: sound/soc/codecs/tfa989x.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
Need I3C and imx maillist.
> +S: Maintained
> +F: Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> +
> NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
> M: Jonas Malaco <jonas@protocubo.io>
> L: linux-hwmon@vger.kernel.org
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
2025-02-12 13:22 ` Aman Kumar Pandey
@ 2025-02-12 16:49 ` Krzysztof Kozlowski
-1 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-12 16:49 UTC (permalink / raw)
To: Aman Kumar Pandey, linux-kernel, linux-i3c, alexandre.belloni,
krzk+dt, robh, conor+dt, devicetree
Cc: vikash.bansal, priyanka.jain, shashank.rebbapragada, Frank.Li
On 12/02/2025 14:22, Aman Kumar Pandey wrote:
> P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
> device which connects to a host CPU via I3C/I2C/SMBus bus on one
> side and to multiple peripheral devices on the other side.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
> ---
> .../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
> MAINTAINERS | 7 +
> 2 files changed, 411 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
>
> diff --git a/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> new file mode 100644
> index 000000000000..33ea524e5432
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
Nothing here looks like being even close to existing coding style. Look
how other files are written, including file naming, blank lines, style
of properties and entire layout.
Your current code is not only unreadable but also incorrect. But due to
unreadability, I won't waste time to review.
You should have make internal review of all this.
> L: linux-hwmon@vger.kernel.org
Best regards,
Krzysztof
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
@ 2025-02-12 16:49 ` Krzysztof Kozlowski
0 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-12 16:49 UTC (permalink / raw)
To: Aman Kumar Pandey, linux-kernel, linux-i3c, alexandre.belloni,
krzk+dt, robh, conor+dt, devicetree
Cc: vikash.bansal, priyanka.jain, shashank.rebbapragada, Frank.Li
On 12/02/2025 14:22, Aman Kumar Pandey wrote:
> P3H2x4x (P3H2440/P3H2441/P3H2840/P3H2841) is multiport I3C hub
> device which connects to a host CPU via I3C/I2C/SMBus bus on one
> side and to multiple peripheral devices on the other side.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
> Signed-off-by: Vikash Bansal <vikash.bansal@nxp.com>
> ---
> .../bindings/i3c/p3h2x4x_i3c_hub.yaml | 404 ++++++++++++++++++
> MAINTAINERS | 7 +
> 2 files changed, 411 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
>
> diff --git a/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
> new file mode 100644
> index 000000000000..33ea524e5432
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml
Nothing here looks like being even close to existing coding style. Look
how other files are written, including file naming, blank lines, style
of properties and entire layout.
Your current code is not only unreadable but also incorrect. But due to
unreadability, I won't waste time to review.
You should have make internal review of all this.
> L: linux-hwmon@vger.kernel.org
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
@ 2025-02-13 2:59 kernel test robot
0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2025-02-13 2:59 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "dtcheck: binding changes may go via different trees"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250212132227.1348374-1-aman.kumarpandey@nxp.com>
References: <20250212132227.1348374-1-aman.kumarpandey@nxp.com>
TO: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
TO: linux-kernel@vger.kernel.org
TO: linux-i3c@lists.infradead.org
TO: alexandre.belloni@bootlin.com
TO: krzk+dt@kernel.org
TO: robh@kernel.org
TO: conor+dt@kernel.org
TO: devicetree@vger.kernel.org
CC: vikash.bansal@nxp.com
CC: priyanka.jain@nxp.com
CC: shashank.rebbapragada@nxp.com
CC: Frank.Li@nxp.com
CC: Aman Kumar Pandey <aman.kumarpandey@nxp.com>
Hi Aman,
kernel test robot noticed the following build warnings:
[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v6.14-rc2 next-20250212]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Aman-Kumar-Pandey/drivers-i3c-Add-driver-for-NXP-P3H2x4x-i3c-hub-device/20250212-213659
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20250212132227.1348374-1-aman.kumarpandey%40nxp.com
patch subject: [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
config: csky-randconfig-051-20250213 (https://download.01.org/0day-ci/archive/20250213/202502131052.8HFnoETf-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 14.2.0
dtschema version: 2024.12.dev6+gc4da38d
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250213/202502131052.8HFnoETf-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202502131052.8HFnoETf-lkp@intel.com/
dtcheck warnings: (new ones prefixed by >>)
>> Documentation/devicetree/bindings/i3c/p3h2x4x_i3c_hub.yaml: ignoring, error parsing file
Documentation/devicetree/bindings/net/snps,dwmac.yaml: mac-mode: missing type definition
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-02-13 7:34 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-13 2:59 [PATCH 1/2] dt-bindings: i3c: Add NXP P3H2x4x i3c-hub support kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2025-02-12 13:22 Aman Kumar Pandey
2025-02-12 13:22 ` Aman Kumar Pandey
2025-02-12 15:25 ` Rob Herring (Arm)
2025-02-12 15:25 ` Rob Herring (Arm)
2025-02-12 16:23 ` Frank Li
2025-02-12 16:23 ` Frank Li
2025-02-12 16:49 ` Krzysztof Kozlowski
2025-02-12 16:49 ` Krzysztof Kozlowski
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.