blob: 0299f6a2deeb62f548129f269a150218570b8789 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/****************************************************************************/
2
3/*
4 * nettel.h -- Lineo (formerly Moreton Bay) NETtel support.
5 *
6 * (C) Copyright 1999-2000, Moreton Bay (www.moretonbay.com)
7 * (C) Copyright 2000-2001, Lineo Inc. (www.lineo.com)
8 * (C) Copyright 2001-2002, SnapGear Inc., (www.snapgear.com)
9 */
10
11/****************************************************************************/
12#ifndef nettel_h
13#define nettel_h
14/****************************************************************************/
15
Linus Torvalds1da177e2005-04-16 15:20:36 -070016
17/****************************************************************************/
18#ifdef CONFIG_NETtel
19/****************************************************************************/
20
21#ifdef CONFIG_COLDFIRE
22#include <asm/coldfire.h>
23#include <asm/mcfsim.h>
24#endif
25
26/*---------------------------------------------------------------------------*/
27#if defined(CONFIG_M5307)
28/*
29 * NETtel/5307 based hardware first. DTR/DCD lines are wired to
30 * GPIO lines. Most of the LED's are driver through a latch
31 * connected to CS2.
32 */
33#define MCFPP_DCD1 0x0001
34#define MCFPP_DCD0 0x0002
35#define MCFPP_DTR1 0x0004
36#define MCFPP_DTR0 0x0008
37
38#define NETtel_LEDADDR 0x30400000
39
40#ifndef __ASSEMBLY__
41
42extern volatile unsigned short ppdata;
43
44/*
45 * These functions defined to give quasi generic access to the
46 * PPIO bits used for DTR/DCD.
47 */
48static __inline__ unsigned int mcf_getppdata(void)
49{
50 volatile unsigned short *pp;
51 pp = (volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT);
52 return((unsigned int) *pp);
53}
54
55static __inline__ void mcf_setppdata(unsigned int mask, unsigned int bits)
56{
57 volatile unsigned short *pp;
58 pp = (volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT);
59 ppdata = (ppdata & ~mask) | bits;
60 *pp = ppdata;
61}
62#endif
63
64/*---------------------------------------------------------------------------*/
65#elif defined(CONFIG_M5206e)
66/*
67 * NETtel/5206e based hardware has leds on latch on CS3.
68 * No support modem for lines??
69 */
70#define NETtel_LEDADDR 0x50000000
71
72/*---------------------------------------------------------------------------*/
73#elif defined(CONFIG_M5272)
74/*
75 * NETtel/5272 based hardware. DTR/DCD lines are wired to GPB lines.
76 */
77#define MCFPP_DCD0 0x0080
78#define MCFPP_DCD1 0x0000 /* Port 1 no DCD support */
79#define MCFPP_DTR0 0x0040
80#define MCFPP_DTR1 0x0000 /* Port 1 no DTR support */
81
82#ifndef __ASSEMBLY__
83/*
84 * These functions defined to give quasi generic access to the
85 * PPIO bits used for DTR/DCD.
86 */
87static __inline__ unsigned int mcf_getppdata(void)
88{
89 volatile unsigned short *pp;
90 pp = (volatile unsigned short *) (MCF_MBAR + MCFSIM_PBDAT);
91 return((unsigned int) *pp);
92}
93
94static __inline__ void mcf_setppdata(unsigned int mask, unsigned int bits)
95{
96 volatile unsigned short *pp;
97 pp = (volatile unsigned short *) (MCF_MBAR + MCFSIM_PBDAT);
98 *pp = (*pp & ~mask) | bits;
99}
100#endif
101
102#endif
103/*---------------------------------------------------------------------------*/
104
105/****************************************************************************/
106#endif /* CONFIG_NETtel */
107/****************************************************************************/
108#endif /* nettel_h */