2025-10-12 goal: work on extracting key details from the VS035ZSM display datasheet — things like the interface type, number of data lanes, pixel format, and initialization sequence — so we can correctly configure our Linux display driver.
PUT THEM IN HERE
File structure?
drivers/
panel-vs035zsm.c # the driver (this template)
overlays/
vs035zsm-overlay.dts # minimal DT overlay wiring to DSI + reset/backlight
dkms.conf # builds the module
Makefile # obj-m += panel_vs035zsm.o
Core includes
So this is likely the libraries we definitely need, are
#include <linux/module.h>
#include <linux/of.h>
#include <linux/gpio/consumer.h>
#include <linux/delay.h>
#include <drm/drm_panel.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_modes.h>
Display context???? Some sort of memory for your driver?? is it like before the program actually runs then it runs this
struct vs035_ctx {
struct drm_panel panel;
struct mipi_dsi_device *dsi;
struct gpio_desc *reset; // optional
bool prepared;
};
WE NEED THESE FUNCTIONS
// "boilerplate helpers" - what does this mean
static inline struct vs035_ctx *to_ctx(struct drm_panel *p);
static int vs035_dcs_write(struct vs035_ctx *ctx, const void *buf, size_t len);
/* Minimal init sequence: Sleep Out (0x11), wait, Display On (0x29).
Add other init commands here if your panel/datasheet requires them. */
// do we need these? they were only in aadi's chat
static int vs035_on(struct vs035 *ctx)
static int vs035_off(struct vs035 *ctx)
// panel lifecycle
static int vs035_prepare(struct drm_panel *panel);
static int vs035_unprepare(struct drm_panel *panel);
static int vs035_enable(struct drm_panel *panel);
static int vs035_disable(struct drm_panel *panel);
static int vs035_get_modes(struct drm_panel *panel);
// dsi device driver entry points
static int vs035_probe(struct mipi_dsi_device *dsi);
static void vs035_remove(struct mipi_dsi_device *dsi);
// OF match + module boilerplate
// I wish it didn't use acronyms
static const struct of_device_id vs035_of_match[]
static const struct drm_panel_funcs vs035_funcs
static struct mipi_dsi_driver vs035_driver