On Wed, Sep 16, 2026 at 11:10:57PM +0200, Francesco Valla wrote:
> Add rings for multiple vdevs, as well as the required virtio nodes for
> I2C, SPI and GPIO functionalities. On top of that, add example
> peripherals using all of them.
>
> NOTE: this is a Proof-Of-Concept, not meant to be integrated!
>
> Signed-off-by: Francesco Valla <[email protected]>
> ---
> arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts | 128
> +++++++++++++++++++--
> 1 file changed, 119 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
> b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
> index bd14ba28690c..dfa3b122ac5f 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
> @@ -53,6 +53,32 @@ button-k3 {
> };
> };
>
> + gpio-keys-virtio {
> + compatible = "gpio-keys-polled";
> + poll-interval = <100>;
> +
> + button-v1 {
> + label = "Button V1";
> + linux,code = <BTN_3>;
> + gpios = <&v_gpio 23 GPIO_ACTIVE_LOW>;
> + };
> +
> + button-v2 {
> + label = "Button V2";
> + linux,code = <BTN_4>;
> + gpios = <&v_gpio 24 GPIO_ACTIVE_LOW>;
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + led {
> + gpios = <&v_gpio 18 GPIO_ACTIVE_HIGH>;
> + label = "LED V";
> + };
> + };
> +
> reg_usdhc2_vmmc: regulator-usdhc2 {
> compatible = "regulator-fixed";
> off-on-delay-us = <12000>;
> @@ -89,11 +115,6 @@ linux,cma {
> linux,cma-default;
> };
>
> - rsc_table: rsc-table@2021e000 {
> - reg = <0 0x2021e000 0 0x1000>;
> - no-map;
> - };
> -
Why is the resource table removed? There is no mention of that in the
changelog...
> vdev0vring0: vdev0vring0@a4000000 {
> reg = <0 0xa4000000 0 0x8000>;
> no-map;
> @@ -105,12 +126,42 @@ vdev0vring1: vdev0vring1@a4008000 {
> };
>
> vdev1vring0: vdev1vring0@a4010000 {
> - reg = <0 0xa4010000 0 0x8000>;
> + reg = <0 0xa4010000 0 0x1000>;
> + no-map;
> + };
> +
> + vdev2vring0: vdev2vring0@a4011000 {
> + reg = <0 0xa4011000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev2vring1: vdev2vring1@a4013000 {
> + reg = <0 0xa4013000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev3vring0: vdev3vring0@a4015000 {
> + reg = <0 0xa4015000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev4vring0: vdev4vring0@a4017000 {
> + reg = <0 0xa4017000 0 0x4000>;
> + no-map;
> + };
> +
> + vdev5vring0: vdev5vring0@a401B000 {
> + reg = <0 0xa401B000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev5vring1: vdev5vring1@a401D000 {
> + reg = <0 0xa401D000 0 0x2000>;
> no-map;
> };
>
> - vdev1vring1: vdev1vring1@a4018000 {
> - reg = <0 0xa4018000 0 0x8000>;
> + vdev5vring2: vdev5vring2@a401F000 {
> + reg = <0 0xa401F000 0 0x1000>;
> no-map;
> };
>
> @@ -149,8 +200,67 @@ &cm33 {
> <&mu1 3 1>;
> mbox-names = "tx", "rx", "rxdb";
> memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
> - <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
> + <&vdev1vring0>, <&vdev2vring0>, <&vdev2vring1>,
> + <&vdev3vring0>, <&vdev4vring0>,
> + <&vdev5vring0>, <&vdev5vring1>, <&vdev5vring2>;
Who is using vdev5 vrings?
> status = "okay";
> +
> + virtio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + vdev@2 {
> + reg = <2>;
> +
> + v_gpio: gpio {
> + compatible = "virtio,device29";
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> + };
> +
> + vdev@3 {
> + reg = <3>;
> +
> + i2c {
> + compatible = "virtio,device22";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + eeprom@50 {
> + compatible = "atmel,24c1025";
> + reg = <0x50>;
> + };
> + };
> + };
> +
> + vdev@4 {
> + reg = <4>;
> +
> + spi {
> + compatible = "virtio,device2d";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + sram@0 {
> + compatible = "microchip,mchp23k256";
> + reg = <0>;
> + spi-max-frequency = <20000000>;
> + };
> +
> + lcd@1 {
> + compatible = "adafruit,yx240qv29",
> "ilitek,ili9341";
> + reg = <1>;
> + spi-max-frequency = <10000000>;
> + dc-gpios = <&v_gpio 21
> GPIO_ACTIVE_HIGH>;
> + reset-gpios = <&v_gpio 20
> GPIO_ACTIVE_HIGH>;
> + rotation = <90>;
> + };
> + };
> + };
> + };
> };
>
> &eqos {
>
> --
> 2.55.0
>