summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2009-01-22 21:56:41 +0000
committerimp <imp@FreeBSD.org>2009-01-22 21:56:41 +0000
commitf8e69e3986e2b5e3a4dedf32ee042ae954450936 (patch)
tree4ae250ff82db53713c8dddb79155d3c317b19252 /sys/arm/at91
parent94037e905a8be1cc577586607073e3714a32283b (diff)
downloadFreeBSD-src-f8e69e3986e2b5e3a4dedf32ee042ae954450936.zip
FreeBSD-src-f8e69e3986e2b5e3a4dedf32ee042ae954450936.tar.gz
Migrate towards using at91_master_clock. Initialize the clocks for
the serial port class when we set the devclass since it is now no-longer a compile time constant. Eliminate the pci include, as it isn't relevant or necessary.
Diffstat (limited to 'sys/arm/at91')
-rw-r--r--sys/arm/at91/uart_bus_at91usart.c5
-rw-r--r--sys/arm/at91/uart_cpu_at91rm9200usart.c6
-rw-r--r--sys/arm/at91/uart_dev_at91usart.c6
3 files changed, 12 insertions, 5 deletions
diff --git a/sys/arm/at91/uart_bus_at91usart.c b/sys/arm/at91/uart_bus_at91usart.c
index 44a5b76..aa246cb 100644
--- a/sys/arm/at91/uart_bus_at91usart.c
+++ b/sys/arm/at91/uart_bus_at91usart.c
@@ -38,13 +38,12 @@ __FBSDID("$FreeBSD$");
#include <sys/rman.h>
#include <machine/resource.h>
-#include <dev/pci/pcivar.h>
-
#include <dev/uart/uart.h>
#include <dev/uart/uart_bus.h>
#include <dev/uart/uart_cpu.h>
#include <arm/at91/at91rm92reg.h>
+#include <arm/at91/at91var.h>
#include "uart_if.h"
@@ -103,6 +102,8 @@ usart_at91rm92_probe(device_t dev)
break;
}
sc->sc_class = &at91_usart_class;
+ if (sc->sc_class->uc_rclk == 0)
+ sc->sc_class->uc_rclk = at91_master_clock;
return (uart_bus_probe(dev, 0, 0, 0, device_get_unit(dev)));
}
diff --git a/sys/arm/at91/uart_cpu_at91rm9200usart.c b/sys/arm/at91/uart_cpu_at91rm9200usart.c
index 78c84e8..d290c28 100644
--- a/sys/arm/at91/uart_cpu_at91rm9200usart.c
+++ b/sys/arm/at91/uart_cpu_at91rm9200usart.c
@@ -35,12 +35,16 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/bus.h>
#include <sys/cons.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
#include <machine/bus.h>
#include <dev/uart/uart.h>
+#include <dev/uart/uart_bus.h>
#include <dev/uart/uart_cpu.h>
#include <arm/at91/at91rm92reg.h>
+#include <arm/at91/at91var.h>
bus_space_tag_t uart_bus_space_io;
bus_space_tag_t uart_bus_space_mem;
@@ -60,6 +64,8 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
struct uart_class *class;
class = &at91_usart_class;
+ if (class->uc_rclk == 0)
+ class->uc_rclk = at91_master_clock;
di->ops = uart_getops(class);
di->bas.chan = 0;
di->bas.bst = &at91_bs_tag;
diff --git a/sys/arm/at91/uart_dev_at91usart.c b/sys/arm/at91/uart_dev_at91usart.c
index 526b82d..0f50fb4 100644
--- a/sys/arm/at91/uart_dev_at91usart.c
+++ b/sys/arm/at91/uart_dev_at91usart.c
@@ -45,10 +45,11 @@ __FBSDID("$FreeBSD$");
#include <arm/at91/at91rm92reg.h>
#include <arm/at91/at91_usartreg.h>
#include <arm/at91/at91_pdcreg.h>
+#include <arm/at91/at91var.h>
#include "uart_if.h"
-#define DEFAULT_RCLK AT91C_MASTER_CLOCK
+#define DEFAULT_RCLK at91_master_clock
#define USART_BUFFER_SIZE 128
/*
@@ -684,6 +685,5 @@ struct uart_class at91_usart_class = {
at91_usart_methods,
sizeof(struct at91_usart_softc),
.uc_ops = &at91_usart_ops,
- .uc_range = 8,
- .uc_rclk = DEFAULT_RCLK
+ .uc_range = 8
};
OpenPOWER on IntegriCloud