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

Neil Armstrong neil.armstrong at linaro.org
Tue Jan 20 00:30:07 PST 2026


On 1/15/26 18:52, 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; include a minimal connector.
> 
> Signed-off-by: Ricardo Pardini <ricardo at pardini.net>
> ---
> This series adds a few things missing from the Radxa Zero 2:
> 
> 1) NPU (etnaviv), just enable the node, similar to what was done for VIM3
>     (dropped as was already picked up in [1])
> 2) i2c3 (also exposed on the 40-pin header) and the FUSB302 at 0x22.
>     Describes it minimally, adding no functionality, but reserving the 0x22
>     address since i2c3 is also exposed on user-accessible 40-pin header.
> 
> Krzysztof: v1 followed the node name I had found used in amlogic; I've
>             looked around more broadly and found 'fusb0: typec-portc at 22'
>             to be quite popular, so went with this. Hope it is acceptable.
> 
> Neil: I've fixed the interrupts pin, and described the required connector
>        even more minimally than you suggested, as to avoid including pd.h.
>        It is also done this way in a few other boards, hope it's correct.
>        I've rebased your/Christian's full-enablement patches on top of this,
>        tested with an r8152 which then works both ways, it's available at [2]
> 
> [1] https://git.kernel.org/amlogic/c/29deec49146162d06b17739c627d062191e03814
> [2] https://github.com/rpardini/linux/tree/radxa-zero2-fusb302-minimal-plus-full-impl-rebase
> ---
> Changes in v2:
> - npu: dropped NPU enablement patch as it was already picked up by Neil
> - fusb302: dropped 'status = "okay"'
> - fusb302: declare as 'fusb0: typec-portc at 22' instead of 'fusb302 at 22'
> - fusb302: use correct pin (74 -> gpioA13) for interrupts
> - fusb302: add a (very minimal) connector so dtbs_check passes
> - Link to v1: https://lore.kernel.org/r/20260114-arm64-dts-amlogic-radxa-zero2-additions-v1-0-8b5cdf328fde@pardini.net
> ---
>   .../boot/dts/amlogic/meson-g12b-radxa-zero2.dts    | 34 ++++++++++++++++++++++
>   1 file changed, 34 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 1e5c6f9849456..5d32c04de938e 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,46 @@ 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";
> +
> +	fusb0: typec-portc at 22 {
> +		compatible = "fcs,fusb302";
> +		reg = <0x22>;
> +
> +		pinctrl-0 = <&fusb302_irq_pins>;
> +		pinctrl-names = "default";
> +		interrupt-parent = <&gpio_intc>;
> +		interrupts = <74 IRQ_TYPE_LEVEL_LOW>;
> +
> +		vbus-supply = <&ao_5v>;
> +
> +		connector {
> +			compatible = "usb-c-connector";
> +		};
> +	};
> +};
> +
>   &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";
> 
> ---
> base-commit: 0f61b1860cc3f52aef9036d7235ed1f017632193
> change-id: 20260114-arm64-dts-amlogic-radxa-zero2-additions-905549fbed3e
> 
> Best regards,

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>

Thanks,
Neil



More information about the linux-arm-kernel mailing list