[PATCH RFC 12/12] PoC: arm64: dts: imx93-11x11-frdm: add multiple vdevs
Mathieu Poirier
mathieu.poirier at linaro.org
Tue Sep 22 08:43:52 PDT 2026
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 <francesco at valla.it>
> ---
> 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 at 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 at a4000000 {
> reg = <0 0xa4000000 0 0x8000>;
> no-map;
> @@ -105,12 +126,42 @@ vdev0vring1: vdev0vring1 at a4008000 {
> };
>
> vdev1vring0: vdev1vring0 at a4010000 {
> - reg = <0 0xa4010000 0 0x8000>;
> + reg = <0 0xa4010000 0 0x1000>;
> + no-map;
> + };
> +
> + vdev2vring0: vdev2vring0 at a4011000 {
> + reg = <0 0xa4011000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev2vring1: vdev2vring1 at a4013000 {
> + reg = <0 0xa4013000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev3vring0: vdev3vring0 at a4015000 {
> + reg = <0 0xa4015000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev4vring0: vdev4vring0 at a4017000 {
> + reg = <0 0xa4017000 0 0x4000>;
> + no-map;
> + };
> +
> + vdev5vring0: vdev5vring0 at a401B000 {
> + reg = <0 0xa401B000 0 0x2000>;
> + no-map;
> + };
> +
> + vdev5vring1: vdev5vring1 at a401D000 {
> + reg = <0 0xa401D000 0 0x2000>;
> no-map;
> };
>
> - vdev1vring1: vdev1vring1 at a4018000 {
> - reg = <0 0xa4018000 0 0x8000>;
> + vdev5vring2: vdev5vring2 at 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 at 2 {
> + reg = <2>;
> +
> + v_gpio: gpio {
> + compatible = "virtio,device29";
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> + };
> +
> + vdev at 3 {
> + reg = <3>;
> +
> + i2c {
> + compatible = "virtio,device22";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + eeprom at 50 {
> + compatible = "atmel,24c1025";
> + reg = <0x50>;
> + };
> + };
> + };
> +
> + vdev at 4 {
> + reg = <4>;
> +
> + spi {
> + compatible = "virtio,device2d";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + sram at 0 {
> + compatible = "microchip,mchp23k256";
> + reg = <0>;
> + spi-max-frequency = <20000000>;
> + };
> +
> + lcd at 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
>
More information about the linux-arm-kernel
mailing list