• Home
  • Raw
  • Download

Lines Matching +full:lcd +full:- +full:bl

1 // SPDX-License-Identifier: GPL-2.0-only
3 * LCD / Backlight control code for Sharp SL-6000x (tosa)
17 #include <linux/lcd.h>
48 struct lcd_device *lcd; member
83 gpiod_set_value(data->gpiod_tg, 0); in tosa_lcd_tg_init()
88 tosa_tg_send(data->spi, TG_TPOSCTL, 0x00); in tosa_lcd_tg_init()
90 tosa_tg_send(data->spi, TG_GPOSR, 0x02); in tosa_lcd_tg_init()
95 struct spi_device *spi = data->spi; in tosa_lcd_tg_on()
98 if (data->is_vga) in tosa_lcd_tg_on()
103 /* TG LCD pannel power up */ in tosa_lcd_tg_on()
107 /* TG LCD GVSS */ in tosa_lcd_tg_on()
110 if (IS_ERR_OR_NULL(data->i2c)) { in tosa_lcd_tg_on()
117 .dev_name = "tosa-bl", in tosa_lcd_tg_on()
118 .type = "tosa-bl", in tosa_lcd_tg_on()
120 .platform_data = data->spi, in tosa_lcd_tg_on()
122 data->i2c = i2c_new_client_device(adap, &info); in tosa_lcd_tg_on()
128 struct spi_device *spi = data->spi; in tosa_lcd_tg_off()
130 /* TG LCD VHSA off */ in tosa_lcd_tg_off()
134 /* TG LCD signal off */ in tosa_lcd_tg_off()
139 gpiod_set_value(data->gpiod_tg, 1); in tosa_lcd_tg_off()
143 int tosa_lcd_set_power(struct lcd_device *lcd, int power) in tosa_lcd_set_power() argument
145 struct tosa_lcd_data *data = lcd_get_data(lcd); in tosa_lcd_set_power()
147 if (POWER_IS_ON(power) && !POWER_IS_ON(data->lcd_power)) in tosa_lcd_set_power()
150 if (!POWER_IS_ON(power) && POWER_IS_ON(data->lcd_power)) in tosa_lcd_set_power()
153 data->lcd_power = power; in tosa_lcd_set_power()
157 static int tosa_lcd_get_power(struct lcd_device *lcd) in tosa_lcd_get_power() argument
159 struct tosa_lcd_data *data = lcd_get_data(lcd); in tosa_lcd_get_power()
161 return data->lcd_power; in tosa_lcd_get_power()
164 static int tosa_lcd_set_mode(struct lcd_device *lcd, struct fb_videomode *mode) in tosa_lcd_set_mode() argument
166 struct tosa_lcd_data *data = lcd_get_data(lcd); in tosa_lcd_set_mode()
168 if (mode->xres == 320 || mode->yres == 320) in tosa_lcd_set_mode()
169 data->is_vga = false; in tosa_lcd_set_mode()
171 data->is_vga = true; in tosa_lcd_set_mode()
173 if (POWER_IS_ON(data->lcd_power)) in tosa_lcd_set_mode()
190 data = devm_kzalloc(&spi->dev, sizeof(struct tosa_lcd_data), in tosa_lcd_probe()
193 return -ENOMEM; in tosa_lcd_probe()
195 data->is_vga = true; /* default to VGA mode */ in tosa_lcd_probe()
200 spi->bits_per_word = 8; in tosa_lcd_probe()
206 data->spi = spi; in tosa_lcd_probe()
209 data->gpiod_tg = devm_gpiod_get(&spi->dev, "tg #pwr", GPIOD_OUT_LOW); in tosa_lcd_probe()
210 if (IS_ERR(data->gpiod_tg)) in tosa_lcd_probe()
211 return PTR_ERR(data->gpiod_tg); in tosa_lcd_probe()
219 data->lcd = devm_lcd_device_register(&spi->dev, "tosa-lcd", &spi->dev, in tosa_lcd_probe()
222 if (IS_ERR(data->lcd)) { in tosa_lcd_probe()
223 ret = PTR_ERR(data->lcd); in tosa_lcd_probe()
224 data->lcd = NULL; in tosa_lcd_probe()
239 i2c_unregister_device(data->i2c); in tosa_lcd_remove()
261 if (POWER_IS_ON(data->lcd_power)) in tosa_lcd_resume()
274 .name = "tosa-lcd",
285 MODULE_DESCRIPTION("LCD/Backlight control for Sharp SL-6000 PDA");
286 MODULE_ALIAS("spi:tosa-lcd");