Lines Matching refs:ts

58 #define RPI_DSI_DRIVER_NAME "rpi-ts-dsi"
219 static int rpi_touchscreen_i2c_read(struct rpi_touchscreen *ts, u8 reg)
221 return i2c_smbus_read_byte_data(ts->i2c, reg);
224 static void rpi_touchscreen_i2c_write(struct rpi_touchscreen *ts,
229 ret = i2c_smbus_write_byte_data(ts->i2c, reg, val);
231 dev_err(&ts->i2c->dev, "I2C write failed: %d\n", ret);
234 static int rpi_touchscreen_write(struct rpi_touchscreen *ts, u16 reg, u32 val)
245 mipi_dsi_generic_write(ts->dsi, msg, sizeof(msg));
252 struct rpi_touchscreen *ts = panel_to_ts(panel);
254 rpi_touchscreen_i2c_write(ts, REG_PWM, 0);
256 rpi_touchscreen_i2c_write(ts, REG_POWERON, 0);
269 struct rpi_touchscreen *ts = panel_to_ts(panel);
272 rpi_touchscreen_i2c_write(ts, REG_POWERON, 1);
275 if (rpi_touchscreen_i2c_read(ts, REG_PORTB) & 1)
279 rpi_touchscreen_write(ts, DSI_LANEENABLE,
282 rpi_touchscreen_write(ts, PPI_D0S_CLRSIPOCOUNT, 0x05);
283 rpi_touchscreen_write(ts, PPI_D1S_CLRSIPOCOUNT, 0x05);
284 rpi_touchscreen_write(ts, PPI_D0S_ATMR, 0x00);
285 rpi_touchscreen_write(ts, PPI_D1S_ATMR, 0x00);
286 rpi_touchscreen_write(ts, PPI_LPTXTIMECNT, 0x03);
288 rpi_touchscreen_write(ts, SPICMR, 0x00);
289 rpi_touchscreen_write(ts, LCDCTRL, 0x00100150);
290 rpi_touchscreen_write(ts, SYSCTRL, 0x040f);
293 rpi_touchscreen_write(ts, PPI_STARTPPI, 0x01);
294 rpi_touchscreen_write(ts, DSI_STARTDSI, 0x01);
302 struct rpi_touchscreen *ts = panel_to_ts(panel);
305 rpi_touchscreen_i2c_write(ts, REG_PWM, 255);
312 rpi_touchscreen_i2c_write(ts, REG_PORTA, BIT(2));
366 struct rpi_touchscreen *ts;
376 ts = devm_kzalloc(dev, sizeof(*ts), GFP_KERNEL);
377 if (!ts)
380 i2c_set_clientdata(i2c, ts);
382 ts->i2c = i2c;
384 ver = rpi_touchscreen_i2c_read(ts, REG_ID);
400 rpi_touchscreen_i2c_write(ts, REG_POWERON, 0);
424 ts->dsi = mipi_dsi_device_register_full(host, &info);
425 if (IS_ERR(ts->dsi)) {
427 PTR_ERR(ts->dsi));
428 return PTR_ERR(ts->dsi);
431 drm_panel_init(&ts->base, dev, &rpi_touchscreen_funcs,
437 drm_panel_add(&ts->base);
448 struct rpi_touchscreen *ts = i2c_get_clientdata(i2c);
450 mipi_dsi_detach(ts->dsi);
452 drm_panel_remove(&ts->base);
454 mipi_dsi_device_unregister(ts->dsi);