Adds storing of the zephyr display device struct inside of the windows
user_data, so it can be used inside of the SDL touch driver context for
checking the origin window of a received event.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Clear display only when display pixel format is actually supported
since buffer size depends on it.
Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
Change pinctrl-0 dts prop as optional in case DSI display is used
Add these APIs support: set_brightness, set_contrast, get_framebuffer
Add a new config to select frame buffer section
Signed-off-by: Danh Doan <danh.doan.ue@bp.renesas.com>
Implement the '.clear' interface in the SDL driver
to allow the upper layers to use the display_clear
function.
Signed-off-by: James Roy <rruuaanng@outlook.com>
Add support for using shared multi-heap (when available) to allocate
the display's framebuffer. This change allows the driver to co-exist
with other drivers that use shared multi-heap (such as video_common.c).
Signed-off-by: Ibrahim Abdalkader <i.abdalkader@gmail.com>
Since the RA2L1 uses the macro "ICU_EVENT" instead of
"ELC_EVENT" (which is currently used) to input into
the IELSR register, the ek_ra2l1 board cannot assign
any interrupts for any driver.
This commit aim to correct the Event macro to input correct
value for IELSR register on all the Renesas SoC by using
"BSP_PRV_IELS_ENUM" macro.
Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
Initialize row_index to avoid a compile warning.
The warning seems incorrect, as row_index is initialized in the first
interation of the loop, but the overhead of initializing it is trivial,
so we may as well just do it.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Add additional property to allow a configurable delay to the display
initialization to allow the st7789v to be ready to receive commands.
Signed-off-by: Peter Johanson <peter@peterjohanson.com>
Fixes a multitude of Kconfigs that wrongly appear on devices
where support is literally impossible
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Use the mipi_dbi_configure_te API within the st7796s display driver.
If the MIPI DBI controller supports the tearing enable signal, then
configure the ST7796S to output the TE line signal.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Check the return value of gpio_add_callback() in the display init
function, to resolve an issue flagged by static analysis.
Fixes#81921
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
"wlen" variable set to return value of mipi_dsi_transfer should be a
ssize_t type, so that if a negative value is returned the error will be
caught and returned.
Fixes#81929
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Fix dead code within the set_pixel_format() function for the RM67162.
This function should set the relevant data fields for the driver, then
send the MIPI DCS command to change pixel format.
Fixes#81945
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
The ili9xxx driver is used for multiple variants, but did not support
different ones at the same time.
Use unique variable names for each variant.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Similar to `stm32_ltdc_display_blanking_off()`, use local device variable
instead of accessing the config's structure member again.
Signed-off-by: Haiyue Wang <haiyuewa@163.com>
mipi api allows only buffers where pitch is equal to width.
buffers with smaller width get split into multiple transmissions
but mipi buffer size was set incorrectly.
Signed-off-by: Manuel Martin <martiman89+github@gmail.com>
Use a string for the mipi-mode property over an integer value, as this
significantly improves the readability of the MIPI DBI device binding.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Non-alpha colors were converted to colors with `0x00` alpha, which makes
them fully transparent.
The correct way would be to add a `0xff` alpha, which this change does.
Signed-off-by: Martin Stumpf <finomnis@gmail.com>
While the driver was already capable of processing `ARGB8888` data,
it did not actually show the alpha value in any way.
This change adds a checkerboard background that shows transparent
regions.
Signed-off-by: Martin Stumpf <finomnis@gmail.com>
Obviously, everyone knows that there are 8 bits per byte, so
there isn't a lot of magic happening, per se, but it's also
helpful to clearly denote where the magic number 8 is referring
to the number of bits in a byte.
Occasionally, 8 will refer to a field size or offset in a
structure, MMR, or word. Occasionally, the number 8 will refer
to the number of bytes in a 64-bit value (which should probably
be replaced with `sizeof(uint64_t)`).
For converting bits to bytes, or vice-versa, let's use
`BITS_PER_BYTE` for clarity (or other appropriate `BITS_PER_*`
macros).
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
The newly introduced `frame_incomplete` flag of
`display_buffer_descriptor` needed to be added at several places to
avoid uninitialized memory.
Signed-off-by: Martin Stumpf <finomnis@gmail.com>
Only the first chunk of the desired image is displayed repeatedly over
the screen height (at least on an NHD-2.7-12864WDW3 display). Fix it
by computing the internal mono01 to 4bit grayscale conversion buffer
size correctly so it can fit the entire image.
Signed-off-by: Johan Lafon <johan.lafon@syslinbit.com>
In case more than one segment per pixel is required, only part of the
segments were written resulting in low and uneven pixel brightness (at
least on NHD-2.7-12864WDW3). Fix it by writing all required segments.
Signed-off-by: Johan Lafon <johan.lafon@syslinbit.com>
A call to the write API function was never returning as we were trapped
into an infinite loop. This was caused by the pixel_count pointer not
being incremented properly.
Signed-off-by: Johan Lafon <johan.lafon@syslinbit.com>
This reverts commit 206897658a.
We must keep the frame completion interrupt disabled until we send a new
frame to the eLCDIF, as the frame completion interrupt fires at each
vertical blank interval. If we keep it enabled, then the semaphore we
use to indicate the frame has been loaded by the eLCDIF will be posted
to when we do not have a frame queued, and calls to `display_write` will
return before the eLCDIF has actually loaded the new framebuffer.
Fixes#80590
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Initial support for SSD1322 OLED display driver. Only 1 bit color mode is
supported.
Most options map directly to values documented in the datasheet,
except segments-per-pixel, which I had to add to support the Newhaven
NHD-2.7-12864WDW3. This is a slightly odd feature, but in practice
it is a lot nicer to support it in the driver, and since we're currently
remapping pixels anyway, it makes sense to implement here.
This driver also has a configurable buffer size for the pixel conversion.
By using a larger buffer, we can potentially use DMA for the SPI transfer.
The default is set to 8, which is the smallest value that supports
segments-per-pixel = 2
Initial driver implementation by Lukasz Hawrylko <lukasz@hawrylko.pl>.
Additional options and configurability by Tobias Pisani <mail@topisani.dev>
Signed-off-by: Lukasz Hawrylko <lukasz@hawrylko.pl>
Signed-off-by: Tobias Pisani <mail@topisani.dev>
Co-authored-by: Lukasz Hawrylko <lukasz@hawrylko.pl>
Co-authored-by: Tobias Pisani <mail@topisani.dev>
The Drivers using Pinctrl should be turning Pinctrl on
this should not be the responsibility of the board. This
commit removes CONFIG_PINCTRL from the boards side for nxp boards.
Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
Update ST7796s display driver to respect the setting of rgb_is_inverted
in 8080 8 bit mode, as it was previously not applied for this mode.
Also, simplify the logic check for 16 bit mode- the new check is
functionally equivalent, but no longer inverts both boolean values.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Instead of always using the SPI MIPI DBI mode (type C), look up the
mipi-mode from the device tree and only set the mode to
MIPI_DBI_MODE_SPI_4WIRE as a fallback in case the property is not given.
Signed-off-by: Stefan Gloor <code@stefan-gloor.ch>
Blanking On/Off calls should not return 0 when there is no panel
controller to forward them to, instead they should return ENOSYS to
signal to the application that they were not actually executed.
"device_is_ready" does check for null, but also for
"dev->state->initialized == false", so we need to isolate the
"dev == NULL" case.
Signed-off-by: Abderrahmane Jarmouni <git@jarmouni.me>
Add the driver of diplay controller ist3931, i2c/spi
128x64 monocolor display driver. Only the i2c mode
driver of the controller is implemented and tested.
Signed-off-by: Shen Xuyang <shenxuyang@shlinyuantech.com>
Select PINCTRL subsystem by drivers which require it.
Prevent the need from enabling this symbol at board or soc level.
Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
Implements the driver for the OLED SSD1327 controller.
This driver is based on the ssd1306 driver due to their similarities.
Only the SPI control bus is supported.
Signed-off-by: Luc BEAUFILS <luc.beaufils@savoirfairelinux.com>