Date: Tue, 17 Feb 2009 07:21:36 GMT From: Andrew Turner <andrew@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 157829 for review Message-ID: <200902170721.n1H7Lah5099398@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=157829 Change 157829 by andrew@andrew_bender on 2009/02/17 07:21:08 Create a uart device for all 3 uarts Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0.c#4 edit Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0.c#4 (text+ko) ==== @@ -299,6 +299,8 @@ struct s3c24x0_softc *sc = device_get_softc(dev); bus_space_tag_t iot; device_t child; + u_long irq; + int i; s3c2xx0_softc = &(sc->sc_sx); sc->sc_sx.sc_iot = iot = &s3c2xx0_bs_tag; @@ -383,10 +385,25 @@ S3C2410_SDI_SIZE); /* Add the uart and set it's irq and registers */ - child = s3c24x0_add_child(dev, 0, "uart", 0); - bus_set_resource(child, SYS_RES_IRQ, 0, S3C24X0_INT_UART0, 1); - bus_set_resource(child, SYS_RES_IOPORT, 0, S3C24X0_UART0_BASE, - S3C24X0_UART_BASE(1) - S3C24X0_UART0_BASE); + for (i = 0; i < 3; i++) { + child = s3c24x0_add_child(dev, 0, "uart", i); + + irq = 0; + switch(i) { + case 0: + irq = S3C24X0_INT_UART0; + break; + case 1: + irq = S3C24X0_INT_UART1; + break; + case 2: + irq = S3C24X0_INT_UART2; + break; + } + bus_set_resource(child, SYS_RES_IRQ, 0, irq, 1); + bus_set_resource(child, SYS_RES_IOPORT, 0, S3C24X0_UART_BASE(i), + S3C24X0_UART_BASE(i + 1) - S3C24X0_UART_BASE(i)); + } bus_generic_probe(dev); bus_generic_attach(dev);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902170721.n1H7Lah5099398>
