Merge branch 'tpmdd-next-v3.6' of git://github.com/shpedoikal/linux into for-linus
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / cxt1e1 / pmcc4.h
CommitLineData
50ee11fe
BB
1#ifndef _INC_PMCC4_H_
2#define _INC_PMCC4_H_
3
4/*-----------------------------------------------------------------------------
5 * pmcc4.h -
6 *
7 * Copyright (C) 2005 SBE, Inc.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * For further information, contact via email: support@sbei.com
20 * SBE, Inc. San Ramon, California U.S.A.
21 *-----------------------------------------------------------------------------
50ee11fe
BB
22 */
23
50ee11fe 24#include <linux/types.h>
50ee11fe
BB
25
26typedef int status_t;
27
28#define SBE_DRVR_FAIL 0
29#define SBE_DRVR_SUCCESS 1
30
50ee11fe
BB
31/********************/
32/* PMCC4 memory Map */
33/********************/
34
35#define COMET_OFFSET(x) (0x80000+(x)*0x10000)
36#define EEPROM_OFFSET 0xC0000
37#define CPLD_OFFSET 0xD0000
38
39 struct pmcc4_timeslot_param
40 {
41 u_int8_t card; /* the card number */
42 u_int8_t port; /* the port number */
43 u_int8_t _reserved1;
44 u_int8_t _reserved2;
45
46 /*
47 * each byte in bitmask below represents one timeslot (bitmask[0] is
48 * for timeslot 0 and so on), each bit in the byte selects timeslot
49 * bits for this channel (0xff - whole timeslot, 0x7f - 56kbps mode)
50 */
51 u_int8_t bitmask[32];
52 };
53
54 struct c4_musycc_param
55 {
56 u_int8_t RWportnum;
57 u_int16_t offset;
58 u_int32_t value;
59 };
60
61/*Alarm values */
62#define sbeE1RMAI 0x100
63#define sbeYelAlm 0x04
64#define sbeRedAlm 0x02
65#define sbeAISAlm 0x01
66
67#define sbeE1errSMF 0x02
68#define sbeE1CRC 0x01
69
50ee11fe
BB
70#ifdef __KERNEL__
71
72/*
73 * Device Driver interface, routines are for internal use only.
74 */
75
76#include "pmcc4_private.h"
9c770f3b
JK
77
78char *get_hdlc_name (hdlc_device *);
50ee11fe
BB
79
80/*
81 * external interface
82 */
83
84void c4_cleanup (void);
85status_t c4_chan_up (ci_t *, int channum);
86status_t c4_del_chan_stats (int channum);
87status_t c4_del_chan (int channum);
88status_t c4_get_iidinfo (ci_t * ci, struct sbe_iid_info * iip);
89int c4_is_chan_up (int channum);
90
91void *getuserbychan (int channum);
92void pci_flush_write (ci_t * ci);
93void sbecom_set_loglevel (int debuglevel);
94char *sbeid_get_bdname (ci_t * ci);
95void sbeid_set_bdtype (ci_t * ci);
96void sbeid_set_hdwbid (ci_t * ci);
97u_int32_t sbeCrc (u_int8_t *, u_int32_t, u_int32_t, u_int32_t *);
98
99void VMETRO_TRACE (void *); /* put data into 8 LEDs */
100void VMETRO_TRIGGER (ci_t *, int); /* Note: int = 0(default)
101 * thru 15 */
102
103#if defined (SBE_ISR_TASKLET)
104void musycc_intr_bh_tasklet (ci_t *);
105
106#endif
107
108#endif /*** __KERNEL __ ***/
109#endif /* _INC_PMCC4_H_ */