1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * dst-bt878.h: part of the DST driver for the TwinHan DST Frontend 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2003 Jamie Honan 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun struct dst_gpio_enable { 9*4882a593Smuzhiyun u32 mask; 10*4882a593Smuzhiyun u32 enable; 11*4882a593Smuzhiyun }; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun struct dst_gpio_output { 14*4882a593Smuzhiyun u32 mask; 15*4882a593Smuzhiyun u32 highvals; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun struct dst_gpio_read { 19*4882a593Smuzhiyun unsigned long value; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun union dst_gpio_packet { 23*4882a593Smuzhiyun struct dst_gpio_enable enb; 24*4882a593Smuzhiyun struct dst_gpio_output outp; 25*4882a593Smuzhiyun struct dst_gpio_read rd; 26*4882a593Smuzhiyun int psize; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define DST_IG_ENABLE 0 30*4882a593Smuzhiyun #define DST_IG_WRITE 1 31*4882a593Smuzhiyun #define DST_IG_READ 2 32*4882a593Smuzhiyun #define DST_IG_TS 3 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun struct bt878; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun int bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet *mp); 37