]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Replace the special-purpose Msp430UsciConfigure interface with the
authorsmckown <smckown@4bc1554a-c7f2-4f65-a403-e0be01f0239c>
Mon, 8 Sep 2008 23:31:14 +0000 (23:31 +0000)
committerR. Steve McKown <rsmckown@gmail.com>
Tue, 1 Dec 2009 03:00:51 +0000 (20:00 -0700)
parameterized AsyncConfigure interface.  Too bad that this interface doesn't
exist in standard TOS.

tos/chips/msp430/usci/AsyncConfigure.nc [new file with mode: 0644]
tos/chips/msp430/usci/Msp430SpiB1C.nc
tos/chips/msp430/usci/Msp430SpiP.nc
tos/chips/msp430/usci/Msp430UartA0C.nc
tos/chips/msp430/usci/Msp430UartA1C.nc
tos/chips/msp430/usci/Msp430UartP.nc
tos/chips/msp430/usci/Msp430Usci.h
tos/chips/msp430/usci/Msp430UsciConfigure.nc [deleted file]

diff --git a/tos/chips/msp430/usci/AsyncConfigure.nc b/tos/chips/msp430/usci/AsyncConfigure.nc
new file mode 100644 (file)
index 0000000..0c7002d
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * Generic async configuration interface.
+ * 
+ * @author R. Steve McKown <smckown@gmail.com>
+ */
+
+interface AsyncConfigure<val_t> {
+  async command val_t get();
+}
index 5d9e71c00ddf8ee6569db9127b15e558e8bd949c..9464555f812fde0fc5aa1f6a2fe202d5216f733f 100644 (file)
@@ -48,7 +48,8 @@ generic configuration Msp430SpiB1C() {
     interface SpiPacket;
     interface ArbiterInfo; /* ??? */
   }
-  uses interface Msp430UsciConfigure;
+  uses interface AsyncConfigure<const msp430_usci_config_t*> as
+    Msp430UsciConfigure;
 }
 implementation {
   enum {
index dc59ce248a1b5c482d85fbe4ee29d98117947e70..fd57695a17e7905d3f5ac1fdcf4eb1f30765a3bc 100644 (file)
@@ -46,7 +46,8 @@ generic module Msp430SpiP() {
     interface HplMsp430GeneralIO as SIMO;
     interface HplMsp430GeneralIO as SOMI;
     interface HplMsp430GeneralIO as SCL;
-    interface Msp430UsciSpiConfigure; /* maybe just Msp430UsciConfigure */
+    interface AsyncConfigure<const msp430_usci_config_t*> as
+      Msp430UsciConfigure;
     interface Counter<T32khz,uint16_6>
     interface ArbiterInfo;
   }
index e8e661450566ced3786377f4cfb2d9821b7844e6..dd310326a84a85c8de3b2eedea432e1d211bd10c 100644 (file)
@@ -48,7 +48,8 @@ generic configuration Msp430UartA0C() {
     interface UartByte;
     interface ArbiterInfo; /* ??? */
   }
-  uses interface Msp430UsciConfigure;
+  uses interface AsyncConfigure<const msp430_usci_config_t*> as
+    Msp430UsciConfigure;
 }
 implementation {
   enum {
index dd6805646c3e07dc0d0f6582c49ab8f8088dd7e8..a5f8a89c4e1d6619eeaf27973fb3a0f9358f6463 100644 (file)
@@ -48,7 +48,8 @@ generic configuration Msp430UartA1C() {
     interface UartByte;
     interface ArbiterInfo; /* ??? */
   }
-  uses interface Msp430UsciConfigure;
+  uses interface AsyncConfigure<const msp430_usci_config_t*> as
+    Msp430UsciConfigure;
 }
 implementation {
   enum {
index 2ef1736f95954679858031bdd39bf01b8c8ef862..8fe6bee02377f6fbbb0dd571a441893e1f8440ce 100644 (file)
@@ -44,7 +44,8 @@ generic module Msp430UartP() {
     interface HplMsp430UsciInt as Interrupts;
     interface HplMsp430GeneralIO as RXD;
     interface HplMsp430GeneralIO as TXD;
-    interface Msp430UsciConfigure;
+    interface AsyncConfigure<const msp430_usci_config_t*> as
+      Msp430UsciConfigure;
     interface Counter<T32khz,uint16_t>;
     interface ArbiterInfo;
   }
index 482998225e41bd04aa05050bae544ddc69f00165..541311136479c9de31a9be20609d085bfc5966da 100644 (file)
@@ -80,6 +80,14 @@ typedef struct {
   msp430_ren_t ren;
 } __attribute__ ((packed)) msp430_usci_uart_t;
 
+typedef struct {
+  uint8_t ctl0;
+  uint8_t ctl1;
+  uint16_t brx;
+  uint8_t mctl; /* ??? */
+  msp430_ren_t ren;
+} __attribute__ ((packed)) msp430_usci_spi_t;
+
 /* Baud rates for UART mode.  Only 32KHz modes work right now. */
 typedef enum {
   /* UCOS16=0.  UMCTL = UCBRFx << 4 + UCBRSx << 1 + UCOS16.
@@ -94,6 +102,7 @@ typedef enum {
 
 typedef union {
   msp430_usci_uart_t uart;
+  msp430_usci_spi_t spi;
 } __attribute__ ((packed)) msp430_usci_config_t;
 
 #endif
diff --git a/tos/chips/msp430/usci/Msp430UsciConfigure.nc b/tos/chips/msp430/usci/Msp430UsciConfigure.nc
deleted file mode 100644 (file)
index 77cb87d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * Configuration interface for USCI devices.
- * 
- * @author R. Steve McKown <smckown@gmail.com>
- */
-
-#include "Msp430Usci.h"
-interface Msp430UsciConfigure {
-  async command const msp430_usci_config_t* get();
-}