All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226
@ 2023-01-27 15:10 Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller Jon Hunter
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

Add device-tree support for Cypress CYPD4226 Type-C controller and
enable for the Jetson AGX Orin board. This series is derived from the
series to enable USB host and device support for Jetson AGX Orin [0].
I have split this out from that series because it was getting quite
big.

[0] https://lore.kernel.org/linux-tegra/20221114124053.1873316-1-waynec@nvidia.com/

Jon Hunter (2):
  arm64: tegra: Populate USB Type-C Controller for Jetson AGX Orin
  arm64: defconfig: Enable UCSI support

Wayne Chang (4):
  dt-bindings: usb: Add Cypress cypd4226 Type-C controller
  i2c: nvidia-gpu: Add ACPI property to align with device-tree
  usb: typec: ucsi_ccg: Add OF support
  i2c: nvidia-gpu: Remove ccgx,firmware-build property

 .../bindings/usb/cypress,cypd4226.yaml        | 92 +++++++++++++++++++
 .../nvidia/tegra234-p3737-0000+p3701-0000.dts | 14 +++
 arch/arm64/configs/defconfig                  |  2 +
 drivers/i2c/busses/i2c-nvidia-gpu.c           |  4 +-
 drivers/usb/typec/ucsi/ucsi_ccg.c             | 22 ++++-
 5 files changed, 128 insertions(+), 6 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml

-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller
  2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
@ 2023-01-27 15:10 ` Jon Hunter
  2023-01-28 10:29   ` Krzysztof Kozlowski
  2023-01-27 15:10 ` [PATCH V9 2/6] i2c: nvidia-gpu: Add ACPI property to align with device-tree Jon Hunter
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

From: Wayne Chang <waynec@nvidia.com>

Add the device-tree binding documentation for Cypress cypd4226 dual
Type-C controller.

Signed-off-by: Wayne Chang <waynec@nvidia.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
V9: added 'unevaluatedProperties' and 'additionalProperties'
V8: removed 'additionalProperties'
V7: updated example to use 'typec' for the node name
V6: no changes
V5: updated subject and updated binding to use 'firmware-name'.
V4: no changes
V3: fix additionalProperties warning on new schema
V2: based on the review comments. Fix some addressed issues on

 .../bindings/usb/cypress,cypd4226.yaml        | 92 +++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml

diff --git a/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml b/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
new file mode 100644
index 000000000000..b68f9ba621ee
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/cypress,cypd4226.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cypress cypd4226 Type-C Controller
+
+maintainers:
+  - Wayne Chang <waynec@nvidia.com>
+
+description:
+  The Cypress cypd4226 is a dual Type-C controller that is controlled
+  via an I2C interface.
+
+properties:
+  compatible:
+    const: cypress,cypd4226
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  reg:
+    const: 0x08
+
+  interrupts:
+    items:
+      - description: cypd4226 host interrupt
+
+  firmware-name:
+    enum:
+      - nvidia,gpu
+      - nvidia,jetson-agx-xavier
+    description: |
+      The name of the CCGx firmware built for product series.
+      should be set one of following:
+      - "nvidia,gpu" for the NVIDIA RTX product series
+      - "nvidia,jetson-agx-xavier" for the NVIDIA Jetson product series
+
+patternProperties:
+  '^connector@[0-1]+$':
+    $ref: /schemas/connector/usb-connector.yaml#
+    unevaluatedProperties: false
+    properties:
+      reg:
+        maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/tegra194-gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      #interrupt-cells = <2>;
+
+      typec@8 {
+        compatible = "cypress,cypd4226";
+        reg = <0x08>;
+        interrupt-parent = <&gpio_aon>;
+        interrupts = <TEGRA194_AON_GPIO(BB, 2) IRQ_TYPE_LEVEL_LOW>;
+        firmware-name = "nvidia,jetson-agx-xavier";
+        #address-cells = <1>;
+        #size-cells = <0>;
+        connector@0 {
+          compatible = "usb-c-connector";
+          reg = <0>;
+          label = "USB-C";
+          data-role = "dual";
+          ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+            port@0 {
+              reg = <0>;
+              endpoint {
+                remote-endpoint = <&usb_role_switch0>;
+              };
+            };
+          };
+        };
+      };
+    };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V9 2/6] i2c: nvidia-gpu: Add ACPI property to align with device-tree
  2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller Jon Hunter
@ 2023-01-27 15:10 ` Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 3/6] usb: typec: ucsi_ccg: Add OF support Jon Hunter
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

From: Wayne Chang <waynec@nvidia.com>

Device-tree uses the 'firmware-name' string property to pass a name of
the firmware build to the Cypress CCGx driver. Add a new ACPI string
property to the NVIDIA GPU I2C driver to align with device-tree so that
we can migrate to using a common property name for both ACPI and
device-tree.

Signed-off-by: Wayne Chang <waynec@nvidia.com>
Co-developed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
V9: no changes
V8: no changes
V7: Added Heikki's reviewed-by
V6: no changes
V5: Added this patch from V3

 drivers/i2c/busses/i2c-nvidia-gpu.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-nvidia-gpu.c b/drivers/i2c/busses/i2c-nvidia-gpu.c
index 12e330cd7635..6d81ea530a83 100644
--- a/drivers/i2c/busses/i2c-nvidia-gpu.c
+++ b/drivers/i2c/busses/i2c-nvidia-gpu.c
@@ -261,6 +261,7 @@ MODULE_DEVICE_TABLE(pci, gpu_i2c_ids);
 static const struct property_entry ccgx_props[] = {
 	/* Use FW built for NVIDIA (nv) only */
 	PROPERTY_ENTRY_U16("ccgx,firmware-build", ('n' << 8) | 'v'),
+	PROPERTY_ENTRY_STRING("firmware-name", "nvidia,gpu"),
 	{ }
 };
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V9 3/6] usb: typec: ucsi_ccg: Add OF support
  2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 2/6] i2c: nvidia-gpu: Add ACPI property to align with device-tree Jon Hunter
@ 2023-01-27 15:10 ` Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 4/6] i2c: nvidia-gpu: Remove ccgx,firmware-build property Jon Hunter
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

From: Wayne Chang <waynec@nvidia.com>

Add device-tree support for the Cypress CCG UCSI driver. The device-tree
binding for the Cypress CCG device uses the standard device-tree
'firmware-name' string property to indicate the firmware build that is
used.

The NVIDIA GPU I2C driver has been updated to use an ACPI string
property that is also named 'firmware-build' and given that this was the
only users of the 'ccgx,firmware-build' property, we can now remove
support for this legacy property.

Signed-off-by: Wayne Chang <waynec@nvidia.com>
Co-developed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
V9: no changes
V8: Add Heikki's reviewed-by and fixed unnecessary line wrapping
V7: removed 'ccgx,firmware-build' property
V6: fixed compilation
V5: add support for 'firmware-name'
V1 -> V4: nothing has changed

 drivers/usb/typec/ucsi/ucsi_ccg.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c
index 46441f1477f2..e0ed465bd518 100644
--- a/drivers/usb/typec/ucsi/ucsi_ccg.c
+++ b/drivers/usb/typec/ucsi/ucsi_ccg.c
@@ -643,7 +643,7 @@ static int ccg_request_irq(struct ucsi_ccg *uc)
 {
 	unsigned long flags = IRQF_ONESHOT;
 
-	if (!has_acpi_companion(uc->dev))
+	if (!dev_fwnode(uc->dev))
 		flags |= IRQF_TRIGGER_HIGH;
 
 	return request_threaded_irq(uc->irq, NULL, ccg_irq_handler, flags, dev_name(uc->dev), uc);
@@ -1342,6 +1342,7 @@ static int ucsi_ccg_probe(struct i2c_client *client)
 {
 	struct device *dev = &client->dev;
 	struct ucsi_ccg *uc;
+	const char *fw_name;
 	int status;
 
 	uc = devm_kzalloc(dev, sizeof(*uc), GFP_KERNEL);
@@ -1357,9 +1358,15 @@ static int ucsi_ccg_probe(struct i2c_client *client)
 	INIT_WORK(&uc->pm_work, ccg_pm_workaround_work);
 
 	/* Only fail FW flashing when FW build information is not provided */
-	status = device_property_read_u16(dev, "ccgx,firmware-build",
-					  &uc->fw_build);
-	if (status)
+	status = device_property_read_string(dev, "firmware-name", &fw_name);
+	if (!status) {
+		if (!strcmp(fw_name, "nvidia,jetson-agx-xavier"))
+			uc->fw_build = CCG_FW_BUILD_NVIDIA_TEGRA;
+		else if (!strcmp(fw_name, "nvidia,gpu"))
+			uc->fw_build = CCG_FW_BUILD_NVIDIA;
+	}
+
+	if (!uc->fw_build)
 		dev_err(uc->dev, "failed to get FW build information\n");
 
 	/* reset ccg device and initialize ucsi */
@@ -1426,6 +1433,12 @@ static void ucsi_ccg_remove(struct i2c_client *client)
 	free_irq(uc->irq, uc);
 }
 
+static const struct of_device_id ucsi_ccg_of_match_table[] = {
+		{ .compatible = "cypress,cypd4226", },
+		{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, ucsi_ccg_of_match_table);
+
 static const struct i2c_device_id ucsi_ccg_device_id[] = {
 	{"ccgx-ucsi", 0},
 	{}
@@ -1480,6 +1493,7 @@ static struct i2c_driver ucsi_ccg_driver = {
 		.pm = &ucsi_ccg_pm,
 		.dev_groups = ucsi_ccg_groups,
 		.acpi_match_table = amd_i2c_ucsi_match,
+		.of_match_table = ucsi_ccg_of_match_table,
 	},
 	.probe_new = ucsi_ccg_probe,
 	.remove = ucsi_ccg_remove,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V9 4/6] i2c: nvidia-gpu: Remove ccgx,firmware-build property
  2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
                   ` (2 preceding siblings ...)
  2023-01-27 15:10 ` [PATCH V9 3/6] usb: typec: ucsi_ccg: Add OF support Jon Hunter
@ 2023-01-27 15:10 ` Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 5/6] arm64: tegra: Populate USB Type-C Controller for Jetson AGX Orin Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 6/6] arm64: defconfig: Enable UCSI support Jon Hunter
  5 siblings, 0 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

From: Wayne Chang <waynec@nvidia.com>

Now the Cypress CCG driver has been updated to support the
'firmware-name' property to align with device-tree, remove the
'ccgx,firmware-build' property as this is no longer needed.

Signed-off-by: Wayne Chang <waynec@nvidia.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
V9: no changes
V8: no changes
V7: no changes
V6: no changes
V5: Added this patch from V3

 drivers/i2c/busses/i2c-nvidia-gpu.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-nvidia-gpu.c b/drivers/i2c/busses/i2c-nvidia-gpu.c
index 6d81ea530a83..a8b99e7f6262 100644
--- a/drivers/i2c/busses/i2c-nvidia-gpu.c
+++ b/drivers/i2c/busses/i2c-nvidia-gpu.c
@@ -259,8 +259,7 @@ static const struct pci_device_id gpu_i2c_ids[] = {
 MODULE_DEVICE_TABLE(pci, gpu_i2c_ids);
 
 static const struct property_entry ccgx_props[] = {
-	/* Use FW built for NVIDIA (nv) only */
-	PROPERTY_ENTRY_U16("ccgx,firmware-build", ('n' << 8) | 'v'),
+	/* Use FW built for NVIDIA GPU only */
 	PROPERTY_ENTRY_STRING("firmware-name", "nvidia,gpu"),
 	{ }
 };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V9 5/6] arm64: tegra: Populate USB Type-C Controller for Jetson AGX Orin
  2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
                   ` (3 preceding siblings ...)
  2023-01-27 15:10 ` [PATCH V9 4/6] i2c: nvidia-gpu: Remove ccgx,firmware-build property Jon Hunter
@ 2023-01-27 15:10 ` Jon Hunter
  2023-01-27 15:10 ` [PATCH V9 6/6] arm64: defconfig: Enable UCSI support Jon Hunter
  5 siblings, 0 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

Add the USB Type-C controller that is present on the Jetson AGX Orin
board. The ports for the Type-C controller are not populated yet, but
will be added later once the USB host and device support for Jetson AGX
Orin is enabled.

This is based upon a patch from Wayne Chang <waynec@nvidia.com>.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
V9: no changes
V8: no changes
V7: updated to use 'typec' for the node name
V6: no changes
V5: no changes
V4: added in this version

 .../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts  | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts
index 8a9747855d6b..3beb510996f4 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts
@@ -2190,6 +2190,20 @@ TEGRA234_AON_GPIO(AA, 4)
 			phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
 				    "p2u-5", "p2u-6", "p2u-7";
 		};
+
+		i2c@c240000 {
+			status = "okay";
+			typec@8 {
+				compatible = "cypress,cypd4226";
+				reg = <0x08>;
+				interrupt-parent = <&gpio>;
+				interrupts = <TEGRA234_MAIN_GPIO(Y, 4) IRQ_TYPE_LEVEL_LOW>;
+				firmware-name = "nvidia,jetson-agx-xavier";
+				status = "okay";
+				#address-cells = <1>;
+				#size-cells = <0>;
+			};
+		};
 	};
 
 	gpio-keys {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V9 6/6] arm64: defconfig: Enable UCSI support
  2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
                   ` (4 preceding siblings ...)
  2023-01-27 15:10 ` [PATCH V9 5/6] arm64: tegra: Populate USB Type-C Controller for Jetson AGX Orin Jon Hunter
@ 2023-01-27 15:10 ` Jon Hunter
  5 siblings, 0 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-27 15:10 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang, Jon Hunter

Enable the TYPEC UCSI support and the Cypress UCSI driver that is used
on the NVIDIA Jetson platforms.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
V9: no changes
V8: no changes
V7: Added in V7

 arch/arm64/configs/defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 984553d55e17..d487d0e2b8e0 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -959,6 +959,8 @@ CONFIG_TYPEC_TCPCI=m
 CONFIG_TYPEC_FUSB302=m
 CONFIG_TYPEC_TPS6598X=m
 CONFIG_TYPEC_HD3SS3220=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_UCSI_CCG=m
 CONFIG_MMC=y
 CONFIG_MMC_BLOCK_MINORS=32
 CONFIG_MMC_ARMMMCI=y
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller
  2023-01-27 15:10 ` [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller Jon Hunter
@ 2023-01-28 10:29   ` Krzysztof Kozlowski
  2023-01-30  9:09     ` Jon Hunter
  2023-01-30 21:10     ` Jon Hunter
  0 siblings, 2 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-01-28 10:29 UTC (permalink / raw)
  To: Jon Hunter, Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang

On 27/01/2023 16:10, Jon Hunter wrote:
> From: Wayne Chang <waynec@nvidia.com>
> 
> Add the device-tree binding documentation for Cypress cypd4226 dual
> Type-C controller.
> 
> Signed-off-by: Wayne Chang <waynec@nvidia.com>
> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> ---
> V9: added 'unevaluatedProperties' and 'additionalProperties'
> V8: removed 'additionalProperties'
> V7: updated example to use 'typec' for the node name
> V6: no changes
> V5: updated subject and updated binding to use 'firmware-name'.
> V4: no changes
> V3: fix additionalProperties warning on new schema
> V2: based on the review comments. Fix some addressed issues on

Thanks, this is looking good, although few more questions popped up
while comparing it with other bindings.

(...)

> +  firmware-name:
> +    enum:
> +      - nvidia,gpu
> +      - nvidia,jetson-agx-xavier
> +    description: |
> +      The name of the CCGx firmware built for product series.
> +      should be set one of following:
> +      - "nvidia,gpu" for the NVIDIA RTX product series
> +      - "nvidia,jetson-agx-xavier" for the NVIDIA Jetson product series
> +
> +patternProperties:
> +  '^connector@[0-1]+$':

How many connectors do you expect/support? 1111 is valid? I guess you
wanted only [01]?

> +    $ref: /schemas/connector/usb-connector.yaml#
> +    unevaluatedProperties: false
> +    properties:
> +      reg:
> +        maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts

I would assume that at least one connector is required (oneOf: required:).

> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/tegra194-gpio.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      #interrupt-cells = <2>;
> +
> +      typec@8 {
> +        compatible = "cypress,cypd4226";
> +        reg = <0x08>;
> +        interrupt-parent = <&gpio_aon>;
> +        interrupts = <TEGRA194_AON_GPIO(BB, 2) IRQ_TYPE_LEVEL_LOW>;
> +        firmware-name = "nvidia,jetson-agx-xavier";
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        connector@0 {
> +          compatible = "usb-c-connector";
> +          reg = <0>;
> +          label = "USB-C";
> +          data-role = "dual";
> +          ports {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            port@0 {
> +              reg = <0>;
> +              endpoint {
> +                remote-endpoint = <&usb_role_switch0>;
> +              };
> +            };
> +          };
> +        };
> +      };
> +    };

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller
  2023-01-28 10:29   ` Krzysztof Kozlowski
@ 2023-01-30  9:09     ` Jon Hunter
  2023-01-30 21:10     ` Jon Hunter
  1 sibling, 0 replies; 11+ messages in thread
From: Jon Hunter @ 2023-01-30  9:09 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Heikki Krogerus, Greg Kroah-Hartman,
	Rob Herring, Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang


On 28/01/2023 10:29, Krzysztof Kozlowski wrote:
> On 27/01/2023 16:10, Jon Hunter wrote:
>> From: Wayne Chang <waynec@nvidia.com>
>>
>> Add the device-tree binding documentation for Cypress cypd4226 dual
>> Type-C controller.
>>
>> Signed-off-by: Wayne Chang <waynec@nvidia.com>
>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
>> ---
>> V9: added 'unevaluatedProperties' and 'additionalProperties'
>> V8: removed 'additionalProperties'
>> V7: updated example to use 'typec' for the node name
>> V6: no changes
>> V5: updated subject and updated binding to use 'firmware-name'.
>> V4: no changes
>> V3: fix additionalProperties warning on new schema
>> V2: based on the review comments. Fix some addressed issues on
> 
> Thanks, this is looking good, although few more questions popped up
> while comparing it with other bindings.
> 
> (...)
> 
>> +  firmware-name:
>> +    enum:
>> +      - nvidia,gpu
>> +      - nvidia,jetson-agx-xavier
>> +    description: |
>> +      The name of the CCGx firmware built for product series.
>> +      should be set one of following:
>> +      - "nvidia,gpu" for the NVIDIA RTX product series
>> +      - "nvidia,jetson-agx-xavier" for the NVIDIA Jetson product series
>> +
>> +patternProperties:
>> +  '^connector@[0-1]+$':
> 
> How many connectors do you expect/support? 1111 is valid? I guess you
> wanted only [01]?


Yes only two are supported. So yes this should be just [01].

>> +    $ref: /schemas/connector/usb-connector.yaml#
>> +    unevaluatedProperties: false
>> +    properties:
>> +      reg:
>> +        maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - interrupts
> 
> I would assume that at least one connector is required (oneOf: required:).


Yes there should be at least one. OK, thanks, I will add this.

Jon

-- 
nvpublic

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller
  2023-01-28 10:29   ` Krzysztof Kozlowski
  2023-01-30  9:09     ` Jon Hunter
@ 2023-01-30 21:10     ` Jon Hunter
  2023-01-31 16:49       ` Krzysztof Kozlowski
  1 sibling, 1 reply; 11+ messages in thread
From: Jon Hunter @ 2023-01-30 21:10 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Heikki Krogerus, Greg Kroah-Hartman,
	Rob Herring, Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang


On 28/01/2023 10:29, Krzysztof Kozlowski wrote:

...

>> +    $ref: /schemas/connector/usb-connector.yaml#
>> +    unevaluatedProperties: false
>> +    properties:
>> +      reg:
>> +        maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - interrupts
> 
> I would assume that at least one connector is required (oneOf: required:).


I have been looking at this and wondered if we need the 'oneOf' in this 
case? Shouldn't we just add 'connector@0' to the required properties?

At first I added ...

oneOf:
     - required:
         - connector@0
     - required:
         - connector@1

But this is not correct, because the above will cause warnings if both 
connector@0 and connector@1 are present.

Jon

-- 
nvpublic

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller
  2023-01-30 21:10     ` Jon Hunter
@ 2023-01-31 16:49       ` Krzysztof Kozlowski
  0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-01-31 16:49 UTC (permalink / raw)
  To: Jon Hunter, Heikki Krogerus, Greg Kroah-Hartman, Rob Herring,
	Krzysztof Kozlowski, Thierry Reding
  Cc: linux-usb, devicetree, linux-tegra, Wayne Chang

On 30/01/2023 22:10, Jon Hunter wrote:
> 
> On 28/01/2023 10:29, Krzysztof Kozlowski wrote:
> 
> ...
> 
>>> +    $ref: /schemas/connector/usb-connector.yaml#
>>> +    unevaluatedProperties: false
>>> +    properties:
>>> +      reg:
>>> +        maxItems: 1
>>> +
>>> +required:
>>> +  - compatible
>>> +  - reg
>>> +  - interrupts
>>
>> I would assume that at least one connector is required (oneOf: required:).
> 
> 
> I have been looking at this and wondered if we need the 'oneOf' in this 
> case? Shouldn't we just add 'connector@0' to the required properties?
> 
> At first I added ...
> 
> oneOf:
>      - required:
>          - connector@0
>      - required:
>          - connector@1
> 
> But this is not correct, because the above will cause warnings if both 
> connector@0 and connector@1 are present.

Right, then anyOf should do the trick.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-01-31 16:49 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-27 15:10 [PATCH V9 0/6] Add device-tree support for Cypress CYPD4226 Jon Hunter
2023-01-27 15:10 ` [PATCH V9 1/6] dt-bindings: usb: Add Cypress cypd4226 Type-C controller Jon Hunter
2023-01-28 10:29   ` Krzysztof Kozlowski
2023-01-30  9:09     ` Jon Hunter
2023-01-30 21:10     ` Jon Hunter
2023-01-31 16:49       ` Krzysztof Kozlowski
2023-01-27 15:10 ` [PATCH V9 2/6] i2c: nvidia-gpu: Add ACPI property to align with device-tree Jon Hunter
2023-01-27 15:10 ` [PATCH V9 3/6] usb: typec: ucsi_ccg: Add OF support Jon Hunter
2023-01-27 15:10 ` [PATCH V9 4/6] i2c: nvidia-gpu: Remove ccgx,firmware-build property Jon Hunter
2023-01-27 15:10 ` [PATCH V9 5/6] arm64: tegra: Populate USB Type-C Controller for Jetson AGX Orin Jon Hunter
2023-01-27 15:10 ` [PATCH V9 6/6] arm64: defconfig: Enable UCSI support Jon Hunter

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.