• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/staging/ti-st/
1/*
2 *  Shared Transport Header file
3 *	To be included by the protocol stack drivers for
4 *	Texas Instruments BT,FM and GPS combo chip drivers
5 *
6 *  Copyright (C) 2009 Texas Instruments
7 *
8 *  This program is free software; you can redistribute it and/or modify
9 *  it under the terms of the GNU General Public License version 2 as
10 *  published by the Free Software Foundation.
11 *
12 *  This program is distributed in the hope that it will be useful,
13 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *  GNU General Public License for more details.
16 *
17 *  You should have received a copy of the GNU General Public License
18 *  along with this program; if not, write to the Free Software
19 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20 *
21 */
22
23#ifndef ST_H
24#define ST_H
25
26#include <linux/skbuff.h>
27
28/* TODO:
29 * Move the following to tty.h upon acceptance
30 */
31#define N_TI_WL	20	/* Ldisc for TI's WL BT, FM, GPS combo chips */
32
33/**
34 * enum kim_gpio_state - Few protocols such as FM have ACTIVE LOW
35 *	gpio states for their chip/core enable gpios
36 */
37enum kim_gpio_state {
38	KIM_GPIO_INACTIVE,
39	KIM_GPIO_ACTIVE,
40};
41
42/**
43 * enum proto-type - The protocol on WiLink chips which share a
44 *	common physical interface like UART.
45 */
46enum proto_type {
47	ST_BT,
48	ST_FM,
49	ST_GPS,
50	ST_MAX,
51};
52
53/**
54 * struct st_proto_s - Per Protocol structure from BT/FM/GPS to ST
55 * @type: type of the protocol being registered among the
56 *	available proto_type(BT, FM, GPS the protocol which share TTY).
57 * @recv: the receiver callback pointing to a function in the
58 *	protocol drivers called by the ST driver upon receiving
59 *	relevant data.
60 * @match_packet: reserved for future use, to make ST more generic
61 * @reg_complete_cb: callback handler pointing to a function in protocol
62 *	handler called by ST when the pending registrations are complete.
63 *	The registrations are marked pending, in situations when fw
64 *	download is in progress.
65 * @write: pointer to function in ST provided to protocol drivers from ST,
66 *	to be made use when protocol drivers have data to send to TTY.
67 * @priv_data: privdate data holder for the protocol drivers, sent
68 *	from the protocol drivers during registration, and sent back on
69 *	reg_complete_cb and recv.
70 */
71struct st_proto_s {
72	enum proto_type type;
73	long (*recv) (void *, struct sk_buff *);
74	unsigned char (*match_packet) (const unsigned char *data);
75	void (*reg_complete_cb) (void *, char data);
76	long (*write) (struct sk_buff *skb);
77	void *priv_data;
78};
79
80extern long st_register(struct st_proto_s *);
81extern long st_unregister(enum proto_type);
82
83#endif /* ST_H */
84