1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/arch/m68k/include/asm/nettel.h
Greg Ungerer 7bc3db03e3 m68knommu: fix compilation for ColdFire/Cleopatra boards
The ColdFire based Cleopatra family of boards use mostly the same
external pin arrangements as the NETtel board family. The build uses the
NETtel specific code as needed, but not all the conditional defines
allow for this. If you have the CONFIG_NETtel config option set
everything compiles as expected, but if you only select the
CONFIG_CLEOPATRA board type then you will get compile failures:

    arch/m68k/coldfire/nettel.c: In function ‘nettel_smc91x_init’:
    arch/m68k/coldfire/nettel.c:126:2: error: implicit declaration of function ‘mcf_setppdata’; did you mean ‘xas_set_update’? [-Werror=implicit-function-declaration]
      mcf_setppdata(0, 0x0080);
      ^~~~~~~~~~~~~
      xas_set_update

Fix the nettel.h include conditional checks to cover all board types.
This also means some code paths need to check for the 5407 SoC - since
one of the Cleopatra board types is based on that. It is very similar
to the 5307 specific code, and it can use that "as-is".

Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
2023-10-23 08:22:22 +10:00

105 lines
3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/****************************************************************************/
/*
* nettel.h -- Lineo (formerly Moreton Bay) NETtel support.
*
* (C) Copyright 1999-2000, Moreton Bay (www.moretonbay.com)
* (C) Copyright 2000-2001, Lineo Inc. (www.lineo.com)
* (C) Copyright 2001-2002, SnapGear Inc., (www.snapgear.com)
*/
/****************************************************************************/
#ifndef nettel_h
#define nettel_h
/****************************************************************************/
/****************************************************************************/
#if defined(CONFIG_NETtel) || defined(CONFIG_CLEOPATRA)
/****************************************************************************/
#ifdef CONFIG_COLDFIRE
#include <asm/coldfire.h>
#include <asm/mcfsim.h>
#include <asm/io.h>
#endif
/*---------------------------------------------------------------------------*/
#if defined(CONFIG_M5307) || defined(CONFIG_M5407)
/*
* NETtel/5307 based hardware first. DTR/DCD lines are wired to
* GPIO lines. Most of the LED's are driver through a latch
* connected to CS2.
*/
#define MCFPP_DCD1 0x0001
#define MCFPP_DCD0 0x0002
#define MCFPP_DTR1 0x0004
#define MCFPP_DTR0 0x0008
#define NETtel_LEDADDR 0x30400000
#ifndef __ASSEMBLY__
extern volatile unsigned short ppdata;
/*
* These functions defined to give quasi generic access to the
* PPIO bits used for DTR/DCD.
*/
static __inline__ unsigned int mcf_getppdata(void)
{
volatile unsigned short *pp;
pp = (volatile unsigned short *) MCFSIM_PADAT;
return((unsigned int) *pp);
}
static __inline__ void mcf_setppdata(unsigned int mask, unsigned int bits)
{
volatile unsigned short *pp;
pp = (volatile unsigned short *) MCFSIM_PADAT;
ppdata = (ppdata & ~mask) | bits;
*pp = ppdata;
}
#endif
/*---------------------------------------------------------------------------*/
#elif defined(CONFIG_M5206e)
/*
* NETtel/5206e based hardware has leds on latch on CS3.
* No support modem for lines??
*/
#define NETtel_LEDADDR 0x50000000
/*---------------------------------------------------------------------------*/
#elif defined(CONFIG_M5272)
/*
* NETtel/5272 based hardware. DTR/DCD lines are wired to GPB lines.
*/
#define MCFPP_DCD0 0x0080
#define MCFPP_DCD1 0x0000 /* Port 1 no DCD support */
#define MCFPP_DTR0 0x0040
#define MCFPP_DTR1 0x0000 /* Port 1 no DTR support */
#ifndef __ASSEMBLY__
/*
* These functions defined to give quasi generic access to the
* PPIO bits used for DTR/DCD.
*/
static __inline__ unsigned int mcf_getppdata(void)
{
return readw(MCFSIM_PBDAT);
}
static __inline__ void mcf_setppdata(unsigned int mask, unsigned int bits)
{
writew((readw(MCFSIM_PBDAT) & ~mask) | bits, MCFSIM_PBDAT);
}
#endif
#endif
/*---------------------------------------------------------------------------*/
/****************************************************************************/
#endif /* CONFIG_NETtel */
/****************************************************************************/
#endif /* nettel_h */