Deleted Added
full compact
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}