Out of tree LVGL driver

I am attempting to interface an nRF54L15 to an NV3007 LCD display and make use of LVGL.
From what I can see, there is an nv3007 driver in LVGL, but not in the version of LVGL bundled with any of the Zephyr nRF SDKs
github.com/.../lv_nv3007.c

I am attempting to build the above driver by adding it to my app code. However, it fails to link.

/src/lv_nv3007.c:186: undefined reference to `lv_lcd_generic_mipi_create'
/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd: lv_nv3007.c:193: undefined reference to `lv_lcd_generic_mipi_send_cmd_list'

1. Is it possible to build this driver out of tree as part of my app code, or is lvgl.a perhaps not exporting these symbols?
2. Is it possible to use the latest lvgl with Zephyr on nRF54L15?
3. Is there some other way to resolve this?

Thanks

Parents Reply
  • Thank you for the advice. It turned out that I was taking the wrong approach.
    Rather than build lvgl's own nv3007 driver, I needed to write a new Zephyr nv3007 display driver on mipi-dbi-spi. Zephyr's LVGL then runs cleanly on top of this.

    Initially, I developed the driver inside of ncs (`/opt/nordic/ncs/v3.1.1`) as it allowed cloning and modifying existing drivers.
    However, when I brought the driver into my own project to be build "out of tree" it would always fail to link the devicetree node.

    The solution is here: devzone.nordicsemi.com/.../out-of-tree-driver---zephyr-freestanding-app specifically, replacing:

    `add_subdirectory(drivers)` with `list(APPEND ZEPHYR_EXTRA_MODULES ${CMAKE_CURRENT_SOURCE_DIR}/drivers)`

Children
Related