[PATCH 2/2] arm64: dts: amlogic: add the type-c controller on Radxa Zero 2

Neil Armstrong neil.armstrong at linaro.org
Thu Jan 15 05:00:05 PST 2026


Hi,

On 1/14/26 23:48, Ricardo Pardini via B4 Relay wrote:
> From: Ricardo Pardini <ricardo at pardini.net>
> 
> The Radxa Zero2 has an FUSB302 controller on i2c3 at address 0x22 and
> INT# wired to GPIOA-13.
> 
> Signed-off-by: Ricardo Pardini <ricardo at pardini.net>
> ---
>   .../boot/dts/amlogic/meson-g12b-radxa-zero2.dts    | 32 ++++++++++++++++++++++
>   1 file changed, 32 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
> index a37776d22b09e..125b064a15c1e 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
> @@ -364,12 +364,44 @@ hdmi_tx_tmds_out: endpoint {
>   	};
>   };
>   
> +/* Also exposed on the 40-pin header: SDA pin 3, SCL pin 5 */
> +&i2c3 {
> +	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +
> +	fusb302 at 22 {
> +		compatible = "fcs,fusb302";
> +		reg = <0x22>;
> +
> +		pinctrl-0 = <&fusb302_irq_pins>;
> +		pinctrl-names = "default";
> +		interrupt-parent = <&gpio_intc>;
> +		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;

OK it seems I did read too fast, this should be 74 !

S922X Datasheet (same as A311D for this)

Table 6-32 GPIO Interrupt Sources

---------------------------------------------
| Input Mux Location	|	Description |
---------------------------------------------
| [76:61]		|	gpioA[15:0] |
---------------------------------------------

So gpioA13 ==> 74

> +
> +		vbus-supply = <&ao_5v>;
> +
> +		status = "okay";

And I get:

   DTC [C] arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dtb
arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dtb: fusb302 at 22 (fcs,fusb302): 'connector' is a required property
         from schema $id: http://devicetree.org/schemas/usb/fcs,fusb302.yaml#

Please add a minimal connector, like:

+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       data-role = "host";
+                       power-role = "source";
+                       source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
+               };

I'll drop this change from my tree.

And you may also add support for the superspeed mux to switch the USB3 polarity.

I have a prototype at https://gitlab.com/superna9999/linux/-/tree/topic/amlogic/radxa-zero2/fusb302?ref_type=heads


Neil


> +	};
> +};
> +
>   &ir {
>   	status = "disabled";
>   	pinctrl-0 = <&remote_input_ao_pins>;
>   	pinctrl-names = "default";
>   };
>   
> +&periphs_pinctrl {
> +	fusb302_irq_pins: fusb302-irq {
> +		mux {
> +			groups = "GPIOA_13";
> +			function = "gpio_periphs";
> +			bias-pull-up;
> +			output-disable;
> +		};
> +	};
> +};
> +
>   &pwm_ab {
>   	pinctrl-0 = <&pwm_a_e_pins>;
>   	pinctrl-names = "default";
> 




More information about the linux-arm-kernel mailing list