Lines Matching refs:data
56 static int tosa_tg_send(struct spi_device *spi, int adrs, uint8_t data)
66 buf[0] = ((adrs & 0x07) << 5) | (data & 0x1f);
80 static void tosa_lcd_tg_init(struct tosa_lcd_data *data)
83 gpiod_set_value(data->gpiod_tg, 0);
88 tosa_tg_send(data->spi, TG_TPOSCTL, 0x00);
90 tosa_tg_send(data->spi, TG_GPOSR, 0x02);
93 static void tosa_lcd_tg_on(struct tosa_lcd_data *data)
95 struct spi_device *spi = data->spi;
98 if (data->is_vga)
110 if (IS_ERR_OR_NULL(data->i2c)) {
120 .platform_data = data->spi,
122 data->i2c = i2c_new_client_device(adap, &info);
126 static void tosa_lcd_tg_off(struct tosa_lcd_data *data)
128 struct spi_device *spi = data->spi;
139 gpiod_set_value(data->gpiod_tg, 1);
145 struct tosa_lcd_data *data = lcd_get_data(lcd);
147 if (POWER_IS_ON(power) && !POWER_IS_ON(data->lcd_power))
148 tosa_lcd_tg_on(data);
150 if (!POWER_IS_ON(power) && POWER_IS_ON(data->lcd_power))
151 tosa_lcd_tg_off(data);
153 data->lcd_power = power;
159 struct tosa_lcd_data *data = lcd_get_data(lcd);
161 return data->lcd_power;
166 struct tosa_lcd_data *data = lcd_get_data(lcd);
169 data->is_vga = false;
171 data->is_vga = true;
173 if (POWER_IS_ON(data->lcd_power))
174 tosa_lcd_tg_on(data);
188 struct tosa_lcd_data *data;
190 data = devm_kzalloc(&spi->dev, sizeof(struct tosa_lcd_data),
192 if (!data)
195 data->is_vga = true; /* default to VGA mode */
198 * bits_per_word cannot be configured in platform data
206 data->spi = spi;
207 spi_set_drvdata(spi, data);
209 data->gpiod_tg = devm_gpiod_get(&spi->dev, "tg #pwr", GPIOD_OUT_LOW);
210 if (IS_ERR(data->gpiod_tg))
211 return PTR_ERR(data->gpiod_tg);
215 tosa_lcd_tg_init(data);
217 tosa_lcd_tg_on(data);
219 data->lcd = devm_lcd_device_register(&spi->dev, "tosa-lcd", &spi->dev,
220 data, &tosa_lcd_ops);
222 if (IS_ERR(data->lcd)) {
223 ret = PTR_ERR(data->lcd);
224 data->lcd = NULL;
231 tosa_lcd_tg_off(data);
237 struct tosa_lcd_data *data = spi_get_drvdata(spi);
239 i2c_unregister_device(data->i2c);
241 tosa_lcd_tg_off(data);
249 struct tosa_lcd_data *data = dev_get_drvdata(dev);
251 tosa_lcd_tg_off(data);
258 struct tosa_lcd_data *data = dev_get_drvdata(dev);
260 tosa_lcd_tg_init(data);
261 if (POWER_IS_ON(data->lcd_power))
262 tosa_lcd_tg_on(data);
264 tosa_lcd_tg_off(data);