Lines Matching +full:output +full:- +full:pixel +full:- +full:format

4  * SPDX-License-Identifier: Apache-2.0
69 const struct ssd1322_config *config = dev->config; in ssd1322_write_command()
71 return mipi_dbi_command_write(config->mipi_dev, &config->dbi_config, cmd, buf, len); in ssd1322_write_command()
85 * The controller uses 4-bit grayscale format, so one pixel is represented by 4 bits.
86 * Zephyr's display API does not support this format, so this uses mono01, and converts each 1-bit
87 * pixel to 1111 or 0000.
89 * buf_in: pointer to input buffer in mono01 format. This value will bel updated to point to
90 * the first byte after the last converted pixel.
99 /* Output buffer size gets rounded down to avoid splitting chunks in the middle of input in ssd1322_conv_mono01_grayscale()
122 *pixel_count -= pixels_in_chunk; in ssd1322_conv_mono01_grayscale()
128 const struct ssd1322_config *config = dev->config; in ssd1322_write_pixels()
136 len = ssd1322_conv_mono01_grayscale(&buf, &pixel_count, config->conversion_buf, in ssd1322_write_pixels()
137 config->conversion_buf_size, in ssd1322_write_pixels()
138 config->segments_per_pixel); in ssd1322_write_pixels()
142 * with some mipi-dbi implementations, the SPI-based driver ignores this metadata, in ssd1322_write_pixels()
149 ret = mipi_dbi_write_display(config->mipi_dev, &config->dbi_config, in ssd1322_write_pixels()
150 config->conversion_buf, &mipi_desc, in ssd1322_write_pixels()
162 const struct ssd1322_config *config = dev->config; in ssd1322_write()
166 int32_t pixel_count = desc->width * desc->height; in ssd1322_write()
168 if (desc->pitch < desc->width) { in ssd1322_write()
170 return -EINVAL; in ssd1322_write()
173 buf_len = MIN(desc->buf_size, desc->height * desc->width / 8); in ssd1322_write()
176 return -EINVAL; in ssd1322_write()
179 if (desc->pitch > desc->width) { in ssd1322_write()
181 return -EINVAL; in ssd1322_write()
184 LOG_DBG("x %u, y %u, pitch %u, width %u, height %u, buf_len %u", x, y, desc->pitch, in ssd1322_write()
185 desc->width, desc->height, buf_len); in ssd1322_write()
187 cmd_data[0] = config->column_offset + (x >> 2) * config->segments_per_pixel; in ssd1322_write()
189 config->column_offset + ((x + desc->width) >> 2) * config->segments_per_pixel - 1; in ssd1322_write()
196 cmd_data[1] = y + desc->height - 1; in ssd1322_write()
217 const struct ssd1322_config *config = dev->config; in ssd1322_get_capabilities()
220 caps->x_resolution = config->width; in ssd1322_get_capabilities()
221 caps->y_resolution = config->height; in ssd1322_get_capabilities()
222 caps->supported_pixel_formats = PIXEL_FORMAT_MONO01; in ssd1322_get_capabilities()
223 caps->current_pixel_format = PIXEL_FORMAT_MONO01; in ssd1322_get_capabilities()
230 const struct ssd1322_config *config = dev->config; in ssd1322_init_device()
232 ret = mipi_dbi_reset(config->mipi_dev, 1); in ssd1322_init_device()
249 data[0] = config->mux_ratio - 1; in ssd1322_init_device()
255 data[0] = config->start_line; in ssd1322_init_device()
261 data[0] = config->row_offset; in ssd1322_init_device()
269 WRITE_BIT(data[0], 0, config->remap_row_first); in ssd1322_init_device()
270 WRITE_BIT(data[0], 1, config->remap_columns); in ssd1322_init_device()
271 WRITE_BIT(data[0], 2, config->remap_nibble); in ssd1322_init_device()
272 WRITE_BIT(data[0], 4, config->remap_rows); in ssd1322_init_device()
273 WRITE_BIT(data[0], 5, config->remap_com_odd_even_split); in ssd1322_init_device()
274 WRITE_BIT(data[1], 4, config->remap_com_dual); in ssd1322_init_device()
335 const struct ssd1322_config *config = dev->config; in ssd1322_init()
337 if (!device_is_ready(config->mipi_dev)) { in ssd1322_init()
339 return -ENODEV; in ssd1322_init()
346 return -EIO; in ssd1322_init()