uart_bus_ixp425.c (169950) | uart_bus_ixp425.c (170109) |
---|---|
1/*- 2 * Copyright (c) 2006 Kevin Lo. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. --- 9 unchanged lines hidden (view full) --- 18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 */ 24 25#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2006 Kevin Lo. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. --- 9 unchanged lines hidden (view full) --- 18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 */ 24 25#include <sys/cdefs.h> |
26__FBSDID("$FreeBSD: head/sys/arm/xscale/ixp425/uart_bus_ixp425.c 169950 2007-05-24 16:17:51Z sam $"); | 26__FBSDID("$FreeBSD: head/sys/arm/xscale/ixp425/uart_bus_ixp425.c 170109 2007-05-29 18:10:42Z jhay $"); |
27 28#include <sys/param.h> 29#include <sys/systm.h> 30#include <sys/bus.h> 31#include <sys/conf.h> 32#include <sys/kernel.h> 33#include <sys/module.h> 34#include <machine/bus.h> --- 31 unchanged lines hidden (view full) --- 66 67static int 68uart_ixp425_probe(device_t dev) 69{ 70 struct uart_softc *sc; 71 72 sc = device_get_softc(dev); 73 sc->sc_class = &uart_ns8250_class; | 27 28#include <sys/param.h> 29#include <sys/systm.h> 30#include <sys/bus.h> 31#include <sys/conf.h> 32#include <sys/kernel.h> 33#include <sys/module.h> 34#include <machine/bus.h> --- 31 unchanged lines hidden (view full) --- 66 67static int 68uart_ixp425_probe(device_t dev) 69{ 70 struct uart_softc *sc; 71 72 sc = device_get_softc(dev); 73 sc->sc_class = &uart_ns8250_class; |
74 sc->sc_rrid = 0; 75 sc->sc_rtype = SYS_RES_MEMORY; 76 sc->sc_rres = bus_alloc_resource(dev, sc->sc_rtype, &sc->sc_rrid, 77 0, ~0, uart_getrange(sc->sc_class), RF_ACTIVE); 78 if (sc->sc_rres == NULL) { 79 return (ENXIO); 80 } 81 sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres); 82 sc->sc_bas.bst = rman_get_bustag(sc->sc_rres); |
|
74 /* 75 * XXX set UART Unit Enable (0x40) AND 76 * receiver timeout int enable (0x10). 77 * The first turns on the UART. The second is necessary to get 78 * interrupts when the FIFO has data but is not full. Note that 79 * uart_ns8250 carefully avoids touching these bits so we can 80 * just set them here and proceed. But this is fragile... 81 */ | 83 /* 84 * XXX set UART Unit Enable (0x40) AND 85 * receiver timeout int enable (0x10). 86 * The first turns on the UART. The second is necessary to get 87 * interrupts when the FIFO has data but is not full. Note that 88 * uart_ns8250 carefully avoids touching these bits so we can 89 * just set them here and proceed. But this is fragile... 90 */ |
82 bus_space_write_4(&ixp425_a4x_bs_tag, 83 device_get_unit(dev) == 0 ? IXP425_UART0_VBASE : IXP425_UART1_VBASE, 84 IXP425_UART_IER, IXP425_UART_IER_UUE | IXP425_UART_IER_RTOIE); | 91 bus_space_write_4(sc->sc_bas.bst, sc->sc_bas.bsh, IXP425_UART_IER, 92 IXP425_UART_IER_UUE | IXP425_UART_IER_RTOIE); 93 bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); |
85 86 return uart_bus_probe(dev, 0, IXP425_UART_FREQ, 0, 0); 87} | 94 95 return uart_bus_probe(dev, 0, IXP425_UART_FREQ, 0, 0); 96} |