summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authorjchandra <jchandra@FreeBSD.org>2012-03-27 11:17:04 +0000
committerjchandra <jchandra@FreeBSD.org>2012-03-27 11:17:04 +0000
commit88cde25ec436fb0216f54a19541905c779f1614c (patch)
treeb2548229091e037633fdc6569c1c93588ef0ac61 /sys/mips
parent34e8a23c52c0b43579e7e785ba7b9f884441af64 (diff)
downloadFreeBSD-src-88cde25ec436fb0216f54a19541905c779f1614c.zip
FreeBSD-src-88cde25ec436fb0216f54a19541905c779f1614c.tar.gz
I2C support for XLP, add hints for I2C devices and update PCI resource
allocation code.
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/conf/XLP.hints5
-rw-r--r--sys/mips/conf/std.XLP15
-rw-r--r--sys/mips/nlm/xlp_pci.c9
3 files changed, 26 insertions, 3 deletions
diff --git a/sys/mips/conf/XLP.hints b/sys/mips/conf/XLP.hints
new file mode 100644
index 0000000..f78eb27
--- /dev/null
+++ b/sys/mips/conf/XLP.hints
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+# RTC
+hint.ds1374_rtc.0.at="iicbus1"
+hint.ds1374_rtc.0.addr=0xd0
diff --git a/sys/mips/conf/std.XLP b/sys/mips/conf/std.XLP
index a086e94..e998734 100644
--- a/sys/mips/conf/std.XLP
+++ b/sys/mips/conf/std.XLP
@@ -5,6 +5,8 @@ makeoptions MODULES_OVERRIDE=""
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
#profile 2
+hints "XLP.hints"
+
options SCHED_ULE # ULE scheduler
#options VERBOSE_SYSINIT
#options SCHED_4BSD # 4BSD scheduler
@@ -55,6 +57,11 @@ options ALT_BREAK_TO_DEBUGGER
options GEOM_UZIP
+# Device tree
+options FDT
+options FDT_DTB_STATIC
+makeoptions FDT_DTS_FILE=xlp-basic.dts
+
# Pseudo
device loop
device random
@@ -83,6 +90,8 @@ device ehci # EHCI PCI->USB interface (USB 2.0)
#device uhid # "Human Interface Devices"
device umass # Requires scbus and da
-options FDT
-options FDT_DTB_STATIC
-makeoptions FDT_DTS_FILE=xlp-basic.dts
+# i2c driver and devices
+device iic
+device iicbus
+device iicoc
+device ds1374 # RTC on XLP boards
diff --git a/sys/mips/nlm/xlp_pci.c b/sys/mips/nlm/xlp_pci.c
index 0094b07..95e369c 100644
--- a/sys/mips/nlm/xlp_pci.c
+++ b/sys/mips/nlm/xlp_pci.c
@@ -497,6 +497,15 @@ assign_soc_resource(device_t child, int type, u_long *startp, u_long *endp,
*rm = &emul_rman;
*bst = uart_bus_space_mem;
break;
+
+ case PCI_DEVICE_ID_NLM_I2C:
+ *va = nlm_pcicfg_base(XLP_IO_I2C_OFFSET(node, unit)) +
+ XLP_IO_PCI_HDRSZ;
+ *startp = MIPS_KSEG1_TO_PHYS(*va);
+ *countp = 0x100;
+ *rm = &emul_rman;
+ *bst = uart_bus_space_mem;
+ break;
}
/* calculate end if allocated */
if (*rm)
OpenPOWER on IntegriCloud