[2/2] arm64: dts: ti: k3-am625-sk: Enable Type-C port for USB0

Message ID 20230324133150.43224-3-rogerq@kernel.org
State New
Headers
Series arm64: dts: ti: k3-am625-sk: Enable Type-C dual-role |

Commit Message

Roger Quadros March 24, 2023, 1:31 p.m. UTC
  USB0 is a Type-C port with dual data role and power sink.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
---
 arch/arm64/boot/dts/ti/k3-am625-sk.dts | 40 ++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)
  

Comments

Nishanth Menon March 24, 2023, 6:15 p.m. UTC | #1
On 15:31-20230324, Roger Quadros wrote:
> USB0 is a Type-C port with dual data role and power sink.
> 
> Signed-off-by: Roger Quadros <rogerq@kernel.org>
> ---
>  arch/arm64/boot/dts/ti/k3-am625-sk.dts | 40 ++++++++++++++++++++++++--
>  1 file changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
> index be027fad5f61..c80b12943881 100644
> --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
> @@ -315,6 +315,33 @@ &main_i2c0 {
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&main_i2c0_pins_default>;
>  	clock-frequency = <400000>;
> +
> +	tps6598x@3f {
> +		compatible = "ti,tps6598x";
> +		reg = <0x3f>;
> +		interrupt-parent = <&exp1>;
> +		interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
> +		interrupt-names = "irq";
> +
> +		connector {
> +			compatible = "usb-c-connector";
> +			label = "USB-C";
> +			self-powered;
> +			data-role = "dual";
> +			power-role = "sink";
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				port@0 {
> +					reg = <0>;
> +					usb_con_hs: endpoint {
> +						remote-endpoint = <&usb0_hs_ep>;
> +					};
> +				};
> +			};
> +		};
> +	};
>  };
>  
>  &main_i2c1 {
> @@ -336,7 +363,7 @@ exp1: gpio@22 {
>  				   "UART1_FET_BUF_EN", "WL_LT_EN",
>  				   "GPIO_HDMI_RSTn", "CSI_GPIO1",
>  				   "CSI_GPIO2", "PRU_3V3_EN",
> -				   "HDMI_INTn", "TEST_GPIO2",
> +				   "HDMI_INTn", "PD_I2C_IRQ",
>  				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
>  				   "MCASP1_FET_SEL", "UART1_FET_SEL",
>  				   "TSINT#", "IO_EXP_TEST_LED";
> @@ -486,7 +513,16 @@ &usbss1 {
>  };
>  
>  &usb0 {
> -	dr_mode = "peripheral";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	usb-role-switch;
> +
> +	port@0 {
> +		reg = <0>;
> +		usb0_hs_ep: endpoint {
> +			remote-endpoint = <&usb_con_hs>;
> +		};
> +	};
>  };
>  
>  &usb1 {
> -- 
> 2.34.1
> 

Please see thread: 
https://lore.kernel.org/all/20230321-am62-lp-sk-v2-0-0a56e1694804@ti.com/
you might need to rebase off that.
  
Roger Quadros March 25, 2023, 1:03 p.m. UTC | #2
On 24/03/2023 20:15, Nishanth Menon wrote:
> On 15:31-20230324, Roger Quadros wrote:
>> USB0 is a Type-C port with dual data role and power sink.
>>
>> Signed-off-by: Roger Quadros <rogerq@kernel.org>
>> ---
>>  arch/arm64/boot/dts/ti/k3-am625-sk.dts | 40 ++++++++++++++++++++++++--
>>  1 file changed, 38 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
>> index be027fad5f61..c80b12943881 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
>> @@ -315,6 +315,33 @@ &main_i2c0 {
>>  	pinctrl-names = "default";
>>  	pinctrl-0 = <&main_i2c0_pins_default>;
>>  	clock-frequency = <400000>;
>> +
>> +	tps6598x@3f {
>> +		compatible = "ti,tps6598x";
>> +		reg = <0x3f>;
>> +		interrupt-parent = <&exp1>;
>> +		interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
>> +		interrupt-names = "irq";
>> +
>> +		connector {
>> +			compatible = "usb-c-connector";
>> +			label = "USB-C";
>> +			self-powered;
>> +			data-role = "dual";
>> +			power-role = "sink";
>> +			ports {
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				port@0 {
>> +					reg = <0>;
>> +					usb_con_hs: endpoint {
>> +						remote-endpoint = <&usb0_hs_ep>;
>> +					};
>> +				};
>> +			};
>> +		};
>> +	};
>>  };
>>  
>>  &main_i2c1 {
>> @@ -336,7 +363,7 @@ exp1: gpio@22 {
>>  				   "UART1_FET_BUF_EN", "WL_LT_EN",
>>  				   "GPIO_HDMI_RSTn", "CSI_GPIO1",
>>  				   "CSI_GPIO2", "PRU_3V3_EN",
>> -				   "HDMI_INTn", "TEST_GPIO2",
>> +				   "HDMI_INTn", "PD_I2C_IRQ",
>>  				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
>>  				   "MCASP1_FET_SEL", "UART1_FET_SEL",
>>  				   "TSINT#", "IO_EXP_TEST_LED";
>> @@ -486,7 +513,16 @@ &usbss1 {
>>  };
>>  
>>  &usb0 {
>> -	dr_mode = "peripheral";
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +	usb-role-switch;
>> +
>> +	port@0 {
>> +		reg = <0>;
>> +		usb0_hs_ep: endpoint {
>> +			remote-endpoint = <&usb_con_hs>;
>> +		};
>> +	};
>>  };
>>  
>>  &usb1 {
>> -- 
>> 2.34.1
>>
> 
> Please see thread: 
> https://lore.kernel.org/all/20230321-am62-lp-sk-v2-0-0a56e1694804@ti.com/
> you might need to rebase off that.
> 

OK.

cheers,
-roger
  

Patch

diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
index be027fad5f61..c80b12943881 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
@@ -315,6 +315,33 @@  &main_i2c0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_i2c0_pins_default>;
 	clock-frequency = <400000>;
+
+	tps6598x@3f {
+		compatible = "ti,tps6598x";
+		reg = <0x3f>;
+		interrupt-parent = <&exp1>;
+		interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-names = "irq";
+
+		connector {
+			compatible = "usb-c-connector";
+			label = "USB-C";
+			self-powered;
+			data-role = "dual";
+			power-role = "sink";
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+					usb_con_hs: endpoint {
+						remote-endpoint = <&usb0_hs_ep>;
+					};
+				};
+			};
+		};
+	};
 };
 
 &main_i2c1 {
@@ -336,7 +363,7 @@  exp1: gpio@22 {
 				   "UART1_FET_BUF_EN", "WL_LT_EN",
 				   "GPIO_HDMI_RSTn", "CSI_GPIO1",
 				   "CSI_GPIO2", "PRU_3V3_EN",
-				   "HDMI_INTn", "TEST_GPIO2",
+				   "HDMI_INTn", "PD_I2C_IRQ",
 				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
 				   "MCASP1_FET_SEL", "UART1_FET_SEL",
 				   "TSINT#", "IO_EXP_TEST_LED";
@@ -486,7 +513,16 @@  &usbss1 {
 };
 
 &usb0 {
-	dr_mode = "peripheral";
+	#address-cells = <1>;
+	#size-cells = <0>;
+	usb-role-switch;
+
+	port@0 {
+		reg = <0>;
+		usb0_hs_ep: endpoint {
+			remote-endpoint = <&usb_con_hs>;
+		};
+	};
 };
 
 &usb1 {