[PATCH 3/4] arm64: dts: allwinner: a523: add IR receiver node
Andre Przywara
andre.przywara at arm.com
Mon Jul 6 02:21:29 PDT 2026
Hi Justin,
I checked the numbers below against the manual, they match up: MMIO base
address, interrupt number, clocks and resets.
One thing I figured is that the A523/T527 contains another CIR-RX
instance, in the "CPUX" domain. That's used for instance on the
Avaota-A1. So we need another node describing this instance.
Some more below...
On 7/2/26 23:47, Justin Suess wrote:
> The A523 has a CIR receiver in the RTC power domain, clocked from the
> R-CCU, with its RX signal available on PL11.
>
> Clock the module directly from the 24 MHz host oscillator; the driver
> selects a /256 sample divider on this SoC, giving a sample period
> close to the legacy 8 MHz / 64 configuration of older SoCs.
>
> Keep the node disabled by default; boards with an IR receiver can
> enable it.
>
> Signed-off-by: Justin Suess <utilityemal77 at gmail.com>
> ---
> .../arm64/boot/dts/allwinner/sun55i-a523.dtsi | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi
> index ca6a16807049..5e46c4b1ee61 100644
> --- a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi
> @@ -927,6 +927,25 @@ r_i2c_pins: r-i2c-pins {
> allwinner,pinmux = <2>;
> function = "r_i2c0";
> };
> +
> + r_ir_rx_pin: r-ir-rx-pin {
> + pins = "PL11";
> + allwinner,pinmux = <2>;
> + function = "s_cir";
> + };
> + };
> +
> + r_ir: ir at 7040000 {
> + compatible = "allwinner,sun55i-a523-ir";
As mentioned in the other email, I think we can use the fallback
compatible, so add this here.
> + reg = <0x07040000 0x400>;
> + interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&r_ccu CLK_BUS_R_IR_RX>, <&r_ccu CLK_R_IR_RX>;
> + clock-names = "apb", "ir";
> + clock-frequency = <24000000>;
As said in the other email, I think this property is misnamed and
misleading, just drop it, and let the driver select the sample rate.
> + resets = <&r_ccu RST_BUS_R_IR_RX>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&r_ir_rx_pin>;
There is another pin which carries the R-IR-RX signal, on pin PM8. In
those cases we do not add the pinctrl properties to the .dtsi DT node,
but let each board add it, right next to where they enable the IP.
So please drop those two lines from here.
Cheers,
Andre
> + status = "disabled";
> };
>
> pck600: power-controller at 7060000 {
More information about the linux-arm-kernel
mailing list