Add functions:
- com_opb_cnattach - com_opb_device_register
This commit is contained in:
parent
67cab6c14c
commit
d2306c8cf3
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: com_opb.c,v 1.11 2003/07/15 02:54:44 lukem Exp $ */
|
||||
/* $NetBSD: com_opb.c,v 1.12 2004/12/24 14:55:50 shige Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2001 Wasabi Systems, Inc.
|
||||
|
@ -35,8 +35,33 @@
|
|||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998
|
||||
* Matthias Drochner. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: com_opb.c,v 1.11 2003/07/15 02:54:44 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: com_opb.c,v 1.12 2004/12/24 14:55:50 shige Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/device.h>
|
||||
|
@ -48,9 +73,13 @@ __KERNEL_RCSID(0, "$NetBSD: com_opb.c,v 1.11 2003/07/15 02:54:44 lukem Exp $");
|
|||
#include <machine/cpu.h>
|
||||
|
||||
#include <powerpc/ibm4xx/dev/opbvar.h>
|
||||
#include <powerpc/ibm4xx/dev/comopbvar.h>
|
||||
|
||||
#include "com.h"
|
||||
#if (NCOM > 0)
|
||||
#include <dev/ic/comreg.h>
|
||||
#include <dev/ic/comvar.h>
|
||||
#endif
|
||||
|
||||
struct com_opb_softc {
|
||||
struct com_softc sc_com;
|
||||
|
@ -100,3 +129,49 @@ com_opb_attach(struct device *parent, struct device *self, void *aux)
|
|||
|
||||
intr_establish(oaa->opb_irq, IST_LEVEL, IPL_SERIAL, comintr, sc);
|
||||
}
|
||||
|
||||
/*
|
||||
* com_opb_cnattach:
|
||||
* Initialize the system console.
|
||||
*/
|
||||
void
|
||||
com_opb_cnattach(int com_freq, int conaddr, int conspeed, int conmode)
|
||||
{
|
||||
static int attached = 0;
|
||||
#if (NCOM > 0)
|
||||
bus_space_tag_t tag;
|
||||
#endif
|
||||
|
||||
if (attached)
|
||||
return;
|
||||
attached = 1;
|
||||
|
||||
#if (NCOM > 0)
|
||||
/* We *know* the com-console attaches to opb */
|
||||
tag = opb_get_bus_space_tag();
|
||||
|
||||
if (comcnattach(tag,
|
||||
conaddr, conspeed, com_freq, COM_TYPE_NORMAL, conmode))
|
||||
panic("can't init serial console @%x", conaddr);
|
||||
else
|
||||
return;
|
||||
#endif
|
||||
panic("console device missing -- serial console not in kernel");
|
||||
/* Of course, this is moot if there is no console... */
|
||||
}
|
||||
|
||||
/*
|
||||
* com_opb_device_register:
|
||||
*/
|
||||
void
|
||||
com_opb_device_register(struct device *dev, int frequency)
|
||||
{
|
||||
int com_freq = frequency;
|
||||
|
||||
/* Set the frequency of the on-chip UART. */
|
||||
if (prop_set(dev_propdb, dev, "frequency",
|
||||
&com_freq, sizeof(com_freq), PROP_INT, 0) != 0)
|
||||
printf("WARNING: unable to set frequency "
|
||||
"property for %s\n", dev->dv_xname);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/* $NetBSD: comopbvar.h,v 1.1 2004/12/24 14:55:50 shige Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004 Shigeyuki Fukushima.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef __IBM4XX_COMOPBVAR_H__
|
||||
#define __IBM4XX_COMOPBVAR_H__
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/device.h>
|
||||
|
||||
extern void com_opb_cnattach(int, int, int, int);
|
||||
extern void com_opb_device_register(struct device *, int);
|
||||
|
||||
#endif /* __IBM4XX_COMOPBVAR_H__ */
|
Loading…
Reference in New Issue