Lines Matching +full:pd +full:- +full:samsung
1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Copyright (c) 2011 Samsung Electronics Co., Ltd.
6 * Author: Jingoo Han <jg1.han@samsung.com>
173 return spi_sync(lcd->spi, &msg); in ams369fg06_spi_write_byte()
219 dev_err(lcd->dev, "failed to set gamma table.\n"); in _ams369fg06_gamma_ctl()
309 struct lcd_platform_data *pd; in ams369fg06_power_on() local
312 pd = lcd->lcd_pd; in ams369fg06_power_on()
313 bd = lcd->bd; in ams369fg06_power_on()
315 if (pd->power_on) { in ams369fg06_power_on()
316 pd->power_on(lcd->ld, 1); in ams369fg06_power_on()
317 msleep(pd->power_on_delay); in ams369fg06_power_on()
320 if (!pd->reset) { in ams369fg06_power_on()
321 dev_err(lcd->dev, "reset is NULL.\n"); in ams369fg06_power_on()
322 return -EINVAL; in ams369fg06_power_on()
325 pd->reset(lcd->ld); in ams369fg06_power_on()
326 msleep(pd->reset_delay); in ams369fg06_power_on()
330 dev_err(lcd->dev, "failed to initialize ldi.\n"); in ams369fg06_power_on()
336 dev_err(lcd->dev, "failed to enable ldi.\n"); in ams369fg06_power_on()
341 ret = ams369fg06_gamma_ctl(lcd, bd->props.brightness); in ams369fg06_power_on()
343 dev_err(lcd->dev, "lcd gamma setting failed.\n"); in ams369fg06_power_on()
353 struct lcd_platform_data *pd; in ams369fg06_power_off() local
355 pd = lcd->lcd_pd; in ams369fg06_power_off()
359 dev_err(lcd->dev, "lcd setting failed.\n"); in ams369fg06_power_off()
360 return -EIO; in ams369fg06_power_off()
363 msleep(pd->power_off_delay); in ams369fg06_power_off()
365 if (pd->power_on) in ams369fg06_power_off()
366 pd->power_on(lcd->ld, 0); in ams369fg06_power_off()
376 !ams369fg06_power_is_on(lcd->power)) in ams369fg06_power()
379 ams369fg06_power_is_on(lcd->power)) in ams369fg06_power()
383 lcd->power = power; in ams369fg06_power()
392 return lcd->power; in ams369fg06_get_power()
401 dev_err(lcd->dev, "power value should be 0, 1 or 4.\n"); in ams369fg06_set_power()
402 return -EINVAL; in ams369fg06_set_power()
411 int brightness = bd->props.brightness; in ams369fg06_set_brightness()
415 brightness > bd->props.max_brightness) { in ams369fg06_set_brightness()
416 dev_err(&bd->dev, "lcd brightness should be %d to %d.\n", in ams369fg06_set_brightness()
418 return -EINVAL; in ams369fg06_set_brightness()
421 ret = ams369fg06_gamma_ctl(lcd, bd->props.brightness); in ams369fg06_set_brightness()
423 dev_err(&bd->dev, "lcd brightness setting failed.\n"); in ams369fg06_set_brightness()
424 return -EIO; in ams369fg06_set_brightness()
447 lcd = devm_kzalloc(&spi->dev, sizeof(struct ams369fg06), GFP_KERNEL); in ams369fg06_probe()
449 return -ENOMEM; in ams369fg06_probe()
451 /* ams369fg06 lcd panel uses 3-wire 16bits SPI Mode. */ in ams369fg06_probe()
452 spi->bits_per_word = 16; in ams369fg06_probe()
456 dev_err(&spi->dev, "spi setup failed.\n"); in ams369fg06_probe()
460 lcd->spi = spi; in ams369fg06_probe()
461 lcd->dev = &spi->dev; in ams369fg06_probe()
463 lcd->lcd_pd = dev_get_platdata(&spi->dev); in ams369fg06_probe()
464 if (!lcd->lcd_pd) { in ams369fg06_probe()
465 dev_err(&spi->dev, "platform data is NULL\n"); in ams369fg06_probe()
466 return -EINVAL; in ams369fg06_probe()
469 ld = devm_lcd_device_register(&spi->dev, "ams369fg06", &spi->dev, lcd, in ams369fg06_probe()
474 lcd->ld = ld; in ams369fg06_probe()
480 bd = devm_backlight_device_register(&spi->dev, "ams369fg06-bl", in ams369fg06_probe()
481 &spi->dev, lcd, in ams369fg06_probe()
486 bd->props.brightness = DEFAULT_BRIGHTNESS; in ams369fg06_probe()
487 lcd->bd = bd; in ams369fg06_probe()
489 if (!lcd->lcd_pd->lcd_enabled) { in ams369fg06_probe()
495 lcd->power = FB_BLANK_POWERDOWN; in ams369fg06_probe()
499 lcd->power = FB_BLANK_UNBLANK; in ams369fg06_probe()
504 dev_info(&spi->dev, "ams369fg06 panel driver has been probed.\n"); in ams369fg06_probe()
522 dev_dbg(dev, "lcd->power = %d\n", lcd->power); in ams369fg06_suspend()
535 lcd->power = FB_BLANK_POWERDOWN; in ams369fg06_resume()
563 MODULE_AUTHOR("Jingoo Han <jg1.han@samsung.com>");