Lines Matching full:lcd
4 * ILI9320 LCD controller driver core.
14 #include <linux/lcd.h>
74 static void ili9320_reset(struct ili9320 *lcd) in ili9320_reset() argument
76 struct ili9320_platdata *cfg = lcd->platdata; in ili9320_reset()
88 static inline int ili9320_init_chip(struct ili9320 *lcd) in ili9320_init_chip() argument
92 ili9320_reset(lcd); in ili9320_init_chip()
94 ret = lcd->client->init(lcd, lcd->platdata); in ili9320_init_chip()
96 dev_err(lcd->dev, "failed to initialise display\n"); in ili9320_init_chip()
100 lcd->initialised = 1; in ili9320_init_chip()
104 static inline int ili9320_power_on(struct ili9320 *lcd) in ili9320_power_on() argument
106 if (!lcd->initialised) in ili9320_power_on()
107 ili9320_init_chip(lcd); in ili9320_power_on()
109 lcd->display1 |= (ILI9320_DISPLAY1_D(3) | ILI9320_DISPLAY1_BASEE); in ili9320_power_on()
110 ili9320_write(lcd, ILI9320_DISPLAY1, lcd->display1); in ili9320_power_on()
115 static inline int ili9320_power_off(struct ili9320 *lcd) in ili9320_power_off() argument
117 lcd->display1 &= ~(ILI9320_DISPLAY1_D(3) | ILI9320_DISPLAY1_BASEE); in ili9320_power_off()
118 ili9320_write(lcd, ILI9320_DISPLAY1, lcd->display1); in ili9320_power_off()
125 static int ili9320_power(struct ili9320 *lcd, int power) in ili9320_power() argument
129 dev_dbg(lcd->dev, "power %d => %d\n", lcd->power, power); in ili9320_power()
131 if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power)) in ili9320_power()
132 ret = ili9320_power_on(lcd); in ili9320_power()
133 else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power)) in ili9320_power()
134 ret = ili9320_power_off(lcd); in ili9320_power()
137 lcd->power = power; in ili9320_power()
139 dev_warn(lcd->dev, "failed to set power mode %d\n", power); in ili9320_power()
144 static inline struct ili9320 *to_our_lcd(struct lcd_device *lcd) in to_our_lcd() argument
146 return lcd_get_data(lcd); in to_our_lcd()
151 struct ili9320 *lcd = to_our_lcd(ld); in ili9320_set_power() local
153 return ili9320_power(lcd, power); in ili9320_set_power()
158 struct ili9320 *lcd = to_our_lcd(ld); in ili9320_get_power() local
160 return lcd->power; in ili9320_get_power()
200 struct lcd_device *lcd; in ili9320_probe_spi() local
232 lcd = devm_lcd_device_register(&spi->dev, "ili9320", dev, ili, in ili9320_probe_spi()
234 if (IS_ERR(lcd)) { in ili9320_probe_spi()
235 dev_err(dev, "failed to register lcd device\n"); in ili9320_probe_spi()
236 return PTR_ERR(lcd); in ili9320_probe_spi()
239 ili->lcd = lcd; in ili9320_probe_spi()
245 dev_err(dev, "failed to set lcd power state\n"); in ili9320_probe_spi()
260 int ili9320_suspend(struct ili9320 *lcd) in ili9320_suspend() argument
264 ret = ili9320_power(lcd, LCD_POWER_OFF); in ili9320_suspend()
266 if (lcd->platdata->suspend == ILI9320_SUSPEND_DEEP) { in ili9320_suspend()
267 ili9320_write(lcd, ILI9320_POWER1, lcd->power1 | in ili9320_suspend()
270 lcd->initialised = 0; in ili9320_suspend()
277 int ili9320_resume(struct ili9320 *lcd) in ili9320_resume() argument
279 dev_info(lcd->dev, "resuming from power state %d\n", lcd->power); in ili9320_resume()
281 if (lcd->platdata->suspend == ILI9320_SUSPEND_DEEP) in ili9320_resume()
282 ili9320_write(lcd, ILI9320_POWER1, 0x00); in ili9320_resume()
284 return ili9320_power(lcd, LCD_POWER_ON); in ili9320_resume()
290 void ili9320_shutdown(struct ili9320 *lcd) in ili9320_shutdown() argument
292 ili9320_power(lcd, LCD_POWER_OFF); in ili9320_shutdown()
297 MODULE_DESCRIPTION("ILI9320 LCD Driver");