summaryrefslogtreecommitdiff
path: root/sys/modules
diff options
context:
space:
mode:
authorbrad <brad@NetBSD.org>2021-12-07 17:39:53 +0000
committerbrad <brad@NetBSD.org>2021-12-07 17:39:53 +0000
commit32757b8342eaa7d0c0b071bf0140dfe8ec836276 (patch)
tree4b9e14baab6bcd6456266d77c67d6f3dc3fce104 /sys/modules
parentf2b233b00bbb56f46f416b79f5fe01dcf34ef481 (diff)
A driver and user land utility for the Sparkfun Serial Controlled Motor
Driver module as illustrated here: https://www.sparkfun.com/products/13911 A SCMD module is a ARM SOC simular to a Arduino in front of a motor driver chip. The single SCMD module can control two motors and up to 16 additional modules can be chained together using an internal I2C bus. One can interface with the SCMD using tty uart commands, SPI or I2C. The driver in this commit adds a kernel driver for the I2C and SPI interfaces. The command line utility provides a set of convenience commands that support most of the functions of the SCMD and is able to use the tty uart mode, SPI user land or the included kernel driver in a uniform manor. The use of the SCMD module is mostly for small robots and the like, but it can control anything that is controllable by voltage.
Diffstat (limited to 'sys/modules')
-rw-r--r--sys/modules/Makefile12
-rw-r--r--sys/modules/scmd/Makefile11
-rw-r--r--sys/modules/scmd/scmd.ioconf3
-rw-r--r--sys/modules/scmdi2c/Makefile11
-rw-r--r--sys/modules/scmdi2c/scmdi2c.ioconf16
5 files changed, 48 insertions, 5 deletions
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index e767d4ccb5a..2de5f78dddc 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.261 2021/11/25 03:08:05 ryo Exp $
+# $NetBSD: Makefile,v 1.262 2021/12/07 17:39:54 brad Exp $
.include <bsd.own.mk>
@@ -67,11 +67,7 @@ SUBDIR+= gpioirq
SUBDIR+= gpiopps
SUBDIR+= hfs
SUBDIR+= hythygtemp
-SUBDIR+= si70xxtemp
SUBDIR+= am2315temp
-SUBDIR+= sht3xtemp
-SUBDIR+= sht4xtemp
-SUBDIR+= sgp40mox
SUBDIR+= i2cexec
SUBDIR+= i2c_bitbang
SUBDIR+= if_agr
@@ -149,12 +145,18 @@ SUBDIR+= puffs
SUBDIR+= putter
SUBDIR+= raid
SUBDIR+= scsiverbose
+SUBDIR+= scmd
+SUBDIR+= scmdi2c
SUBDIR+= sdtemp
SUBDIR+= secmodel_bsd44
SUBDIR+= secmodel_extensions
SUBDIR+= secmodel_overlay
SUBDIR+= securelevel
SUBDIR+= sequencer
+SUBDIR+= sgp40mox
+SUBDIR+= sht3xtemp
+SUBDIR+= sht4xtemp
+SUBDIR+= si70xxtemp
SUBDIR+= skipjack
SUBDIR+= slcompress
SUBDIR+= spdmem
diff --git a/sys/modules/scmd/Makefile b/sys/modules/scmd/Makefile
new file mode 100644
index 00000000000..4b4d8c76146
--- /dev/null
+++ b/sys/modules/scmd/Makefile
@@ -0,0 +1,11 @@
+.include "../Makefile.inc"
+
+.PATH: ${S}/dev/ic
+
+KMOD= scmd
+IOCONF= scmd.ioconf
+SRCS= scmd.c
+
+WARNS= 3
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/scmd/scmd.ioconf b/sys/modules/scmd/scmd.ioconf
new file mode 100644
index 00000000000..eefa6a5b598
--- /dev/null
+++ b/sys/modules/scmd/scmd.ioconf
@@ -0,0 +1,3 @@
+ioconf scmd
+
+include "conf/files"
diff --git a/sys/modules/scmdi2c/Makefile b/sys/modules/scmdi2c/Makefile
new file mode 100644
index 00000000000..1ffddcc4f27
--- /dev/null
+++ b/sys/modules/scmdi2c/Makefile
@@ -0,0 +1,11 @@
+.include "../Makefile.inc"
+
+.PATH: ${S}/dev/i2c
+
+KMOD= scmdi2c
+IOCONF= scmdi2c.ioconf
+SRCS= scmdi2c.c
+
+WARNS= 3
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/scmdi2c/scmdi2c.ioconf b/sys/modules/scmdi2c/scmdi2c.ioconf
new file mode 100644
index 00000000000..052dc58103d
--- /dev/null
+++ b/sys/modules/scmdi2c/scmdi2c.ioconf
@@ -0,0 +1,16 @@
+ioconf scmdi2c
+
+include "conf/files"
+
+pseudo-root iic*
+
+scmd* at iic? addr 0x58
+scmd* at iic? addr 0x59
+scmd* at iic? addr 0x5a
+scmd* at iic? addr 0x5b
+scmd* at iic? addr 0x5c
+scmd* at iic? addr 0x5d
+scmd* at iic? addr 0x5e
+scmd* at iic? addr 0x5f
+scmd* at iic? addr 0x60
+scmd* at iic? addr 0x61