lpcmanager

Add C templates for LPCBus (rightbus) on SOM6

2023-08-10, Edouard Tisserant
2bf67e608136
Parents 4507beae6d3c
Children 967430460440
Add C templates for LPCBus (rightbus) on SOM6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LPCBus/SOM6_Right_cleanup.c Thu Aug 10 10:56:51 2023 +0200
@@ -0,0 +1,1 @@
+close(rightbusfd);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LPCBus/SOM6_Right_decl.c Thu Aug 10 10:56:51 2023 +0200
@@ -0,0 +1,12 @@
+#include <sys/ioctl.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include "beremiz.h"
+#include "rt_smt_right.h"
+
+static readBuf_t rightReadBuf;
+static writeBuf_t rightWriteBuf;
+static busInit_t rightBusInit;
+
+static int rightbusfd = -1;
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LPCBus/SOM6_Right_init.c Thu Aug 10 10:56:51 2023 +0200
@@ -0,0 +1,26 @@
+#define DEVICEFILENAME "/dev/rt_smt_driver0"
+
+bzero(&rightReadBuf, sizeof(readBuf_t));
+bzero(&rightWriteBuf, sizeof(writeBuf_t));
+bzero(&rightBusInit, sizeof(busInit_t));
+
+rightBusInit.common_ticktime__ = common_ticktime__;
+
+#define rightI2CMod (rightBusInit.rightI2CMod)
+%(init_code)s
+
+int err;
+rightbusfd = open( DEVICEFILENAME, O_RDWR);
+if (rightbusfd < 0) {
+ printf("can't open %%s rightbus device, %%s\\n", DEVICEFILENAME,
+ strerror(-rightbusfd));
+ return rightbusfd;
+}
+
+err = ioctl(rightbusfd, RTSMT_IOC_INIT, &rightBusInit);
+if (err) {
+ printf("error while RTSMT_IOC_INIT, %%s\\n",
+ strerror(-err));
+ close(rightbusfd);
+ return err;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LPCBus/SOM6_Right_publish.c Thu Aug 10 10:56:51 2023 +0200
@@ -0,0 +1,2 @@
+%(publish_code)s
+ioctl(rightbusfd, RTSMT_IOC_WRITE, &rightWriteBuf);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LPCBus/SOM6_Right_retrieve.c Thu Aug 10 10:56:51 2023 +0200
@@ -0,0 +1,2 @@
+ioctl(rightbusfd, RTSMT_IOC_READ, &rightReadBuf);
+%(retrieve_code)s