[PATCH 11/12] riscv: dts: thead: Add Lichee Pi 4A IO expansions
Icenowy Zheng
uwu at icenowy.me
Fri Jul 10 07:56:08 PDT 2026
在 2026-05-07四的 16:17 +0800,Icenowy Zheng写道:
> From: Emil Renner Berthing <emil.renner.berthing at canonical.com>
>
> Lichee Pi 4A has 3 I2C IO expansion chips onboard, connected to the
> I2C0/1/3 busses.
>
> Add device tree nodes for them.
>
> Signed-off-by: Emil Renner Berthing
> <emil.renner.berthing at canonical.com>
> [Icenowy: added commit description]
> Signed-off-by: Icenowy Zheng <zhengxingda at iscas.ac.cn>
I am going to send a newer revision of PATCH 9~11 in a few days,
because the I2C1 controller is already added to the mainline device
tree for Wi-Fi support, although the already-merged patches are a
little weird.
Thanks,
Icenowy
> ---
> .../boot/dts/thead/th1520-lichee-pi-4a.dts | 111
> ++++++++++++++++++
> 1 file changed, 111 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/thead/th1520-lichee-pi-4a.dts
> b/arch/riscv/boot/dts/thead/th1520-lichee-pi-4a.dts
> index 4198dbf953f06..354f3893aa8cf 100644
> --- a/arch/riscv/boot/dts/thead/th1520-lichee-pi-4a.dts
> +++ b/arch/riscv/boot/dts/thead/th1520-lichee-pi-4a.dts
> @@ -16,6 +16,9 @@ aliases {
> gpio3 = &gpio3;
> gpio4 = &gpio4;
> gpio5 = &aogpio;
> + i2c0 = &i2c0;
> + i2c1 = &i2c1;
> + i2c3 = &i2c3;
> serial0 = &uart0;
> serial1 = &uart1;
> serial2 = &uart2;
> @@ -110,6 +113,76 @@ hdmi_out_con: endpoint {
> };
> };
>
> +&i2c0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c0_pins>;
> + clock-frequency = <100000>;
> + i2c-sda-hold-time-ns = <300>;
> + i2c-sda-falling-time-ns = <510>;
> + i2c-scl-falling-time-ns = <510>;
> + status = "okay";
> +
> + ioexp1: gpio at 18 {
> + compatible = "nxp,pca9557";
> + reg = <0x18>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-line-names = "cam0_dvdd12",
> + "cam0_avdd28",
> + "cam0_dovdd18";
> + };
> +};
> +
> +&i2c1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c1_pins>;
> + clock-frequency = <100000>;
> + i2c-sda-hold-time-ns = <300>;
> + i2c-sda-falling-time-ns = <510>;
> + i2c-scl-falling-time-ns = <510>;
> + status = "okay";
> +
> + ioexp2: gpio at 18 {
> + compatible = "nxp,pca9557";
> + reg = <0x18>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-line-names = "",
> + "cam0_reset",
> + "cam1_reset",
> + "cam2_reset",
> + "wl_host_wake",
> + "bt_resetn",
> + "",
> + "bt_host_wake";
> + };
> +};
> +
> +&i2c3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c3_pins>;
> + clock-frequency = <100000>;
> + i2c-sda-hold-time-ns = <300>;
> + i2c-sda-falling-time-ns = <510>;
> + i2c-scl-falling-time-ns = <510>;
> + status = "okay";
> +
> + ioexp3: gpio at 18 {
> + compatible = "nxp,pca9557";
> + reg = <0x18>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-line-names = "tp0_rst",
> + "",
> + "",
> + "vcc5v_usb",
> + "vdd28_tp0",
> + "vdd33_lcd0",
> + "vdd18_lcd0",
> + "lcd0_reset";
> + };
> +};
> +
> &padctrl0_apsys {
> fan_pins: fan-0 {
> pwm1-pins {
> @@ -123,6 +196,18 @@ pwm1-pins {
> };
> };
>
> + i2c3_pins: i2c3-0 {
> + i2c-pins {
> + pins = "I2C3_SCL", "I2C3_SDA";
> + function = "i2c";
> + bias-disable; /* external pull-up */
> + drive-strength = <7>;
> + input-enable;
> + input-schmitt-enable;
> + slew-rate = <0>;
> + };
> + };
> +
> uart0_pins: uart0-0 {
> tx-pins {
> pins = "UART0_TXD";
> @@ -146,6 +231,32 @@ rx-pins {
> };
> };
>
> +&padctrl1_apsys {
> + i2c0_pins: i2c0-0 {
> + i2c-pins {
> + pins = "I2C0_SCL", "I2C0_SDA";
> + function = "i2c";
> + bias-disable; /* external pull-up */
> + drive-strength = <7>;
> + input-enable;
> + input-schmitt-enable;
> + slew-rate = <0>;
> + };
> + };
> +
> + i2c1_pins: i2c1-0 {
> + i2c-pins {
> + pins = "I2C1_SCL", "I2C1_SDA";
> + function = "i2c";
> + bias-disable; /* external pull-up */
> + drive-strength = <7>;
> + input-enable;
> + input-schmitt-enable;
> + slew-rate = <0>;
> + };
> + };
> +};
> +
> &uart0 {
> pinctrl-names = "default";
> pinctrl-0 = <&uart0_pins>;
More information about the linux-riscv
mailing list