Lines Matching defs:lcd

16 #include <linux/lcd.h>
33 int (*adj_mode)(struct tdo24m *lcd, int mode);
175 static int tdo24m_writes(struct tdo24m *lcd, const uint32_t *array)
177 struct spi_transfer *x = &lcd->xfer;
183 if (!lcd->color_invert && *p == CMD0(0x21))
191 lcd->buf[0] = (data >> 8) & 0xff;
192 lcd->buf[1] = data & 0xff;
195 lcd->buf[0] = (data >> 16) & 0xff;
196 lcd->buf[1] = (data >> 8) & 0xff;
197 lcd->buf[2] = data & 0xff;
200 lcd->buf[0] = (data >> 24) & 0xff;
201 lcd->buf[1] = (data >> 16) & 0xff;
202 lcd->buf[2] = (data >> 8) & 0xff;
203 lcd->buf[3] = data & 0xff;
209 err = spi_sync(lcd->spi_dev, &lcd->msg);
217 static int tdo24m_adj_mode(struct tdo24m *lcd, int mode)
221 tdo24m_writes(lcd, lcd_vga_pass_through_tdo24m);
222 tdo24m_writes(lcd, lcd_panel_config);
223 tdo24m_writes(lcd, lcd_vga_transfer_tdo24m);
226 tdo24m_writes(lcd, lcd_qvga_pass_through_tdo24m);
227 tdo24m_writes(lcd, lcd_panel_config);
228 tdo24m_writes(lcd, lcd_qvga_transfer);
234 lcd->mode = mode;
238 static int tdo35s_adj_mode(struct tdo24m *lcd, int mode)
242 tdo24m_writes(lcd, lcd_vga_pass_through_tdo35s);
243 tdo24m_writes(lcd, lcd_panel_config);
244 tdo24m_writes(lcd, lcd_vga_transfer_tdo35s);
247 tdo24m_writes(lcd, lcd_qvga_pass_through_tdo35s);
248 tdo24m_writes(lcd, lcd_panel_config);
249 tdo24m_writes(lcd, lcd_qvga_transfer);
255 lcd->mode = mode;
259 static int tdo24m_power_on(struct tdo24m *lcd)
263 err = tdo24m_writes(lcd, lcd_panel_on);
267 err = tdo24m_writes(lcd, lcd_panel_reset);
271 err = lcd->adj_mode(lcd, lcd->mode);
276 static int tdo24m_power_off(struct tdo24m *lcd)
278 return tdo24m_writes(lcd, lcd_panel_off);
281 static int tdo24m_power(struct tdo24m *lcd, int power)
285 if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
286 ret = tdo24m_power_on(lcd);
287 else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
288 ret = tdo24m_power_off(lcd);
291 lcd->power = power;
299 struct tdo24m *lcd = lcd_get_data(ld);
301 return tdo24m_power(lcd, power);
306 struct tdo24m *lcd = lcd_get_data(ld);
308 return lcd->power;
313 struct tdo24m *lcd = lcd_get_data(ld);
319 if (lcd->mode == mode)
322 return lcd->adj_mode(lcd, mode);
333 struct tdo24m *lcd;
352 lcd = devm_kzalloc(&spi->dev, sizeof(struct tdo24m), GFP_KERNEL);
353 if (!lcd)
356 lcd->spi_dev = spi;
357 lcd->power = FB_BLANK_POWERDOWN;
358 lcd->mode = MODE_VGA; /* default to VGA */
360 lcd->buf = devm_kzalloc(&spi->dev, TDO24M_SPI_BUFF_SIZE, GFP_KERNEL);
361 if (lcd->buf == NULL)
364 m = &lcd->msg;
365 x = &lcd->xfer;
370 x->tx_buf = &lcd->buf[0];
375 lcd->color_invert = 1;
376 lcd->adj_mode = tdo24m_adj_mode;
379 lcd->adj_mode = tdo35s_adj_mode;
380 lcd->color_invert = 0;
387 lcd->lcd_dev = devm_lcd_device_register(&spi->dev, "tdo24m", &spi->dev,
388 lcd, &tdo24m_ops);
389 if (IS_ERR(lcd->lcd_dev))
390 return PTR_ERR(lcd->lcd_dev);
392 spi_set_drvdata(spi, lcd);
393 err = tdo24m_power(lcd, FB_BLANK_UNBLANK);
402 struct tdo24m *lcd = spi_get_drvdata(spi);
404 tdo24m_power(lcd, FB_BLANK_POWERDOWN);
411 struct tdo24m *lcd = dev_get_drvdata(dev);
413 return tdo24m_power(lcd, FB_BLANK_POWERDOWN);
418 struct tdo24m *lcd = dev_get_drvdata(dev);
420 return tdo24m_power(lcd, FB_BLANK_UNBLANK);
429 struct tdo24m *lcd = spi_get_drvdata(spi);
431 tdo24m_power(lcd, FB_BLANK_POWERDOWN);