From: smckown Date: Mon, 8 Sep 2008 23:31:14 +0000 (+0000) Subject: Replace the special-purpose Msp430UsciConfigure interface with the X-Git-Tag: release/2.1.0-1~71 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=ff7253eba0b30ef68b507dc6a0e479f5c1dc242b Replace the special-purpose Msp430UsciConfigure interface with the parameterized AsyncConfigure interface. Too bad that this interface doesn't exist in standard TOS. --- diff --git a/tos/chips/msp430/usci/AsyncConfigure.nc b/tos/chips/msp430/usci/AsyncConfigure.nc new file mode 100644 index 00000000..0c7002d9 --- /dev/null +++ b/tos/chips/msp430/usci/AsyncConfigure.nc @@ -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 + */ + +interface AsyncConfigure { + async command val_t get(); +} diff --git a/tos/chips/msp430/usci/Msp430SpiB1C.nc b/tos/chips/msp430/usci/Msp430SpiB1C.nc index 5d9e71c0..9464555f 100644 --- a/tos/chips/msp430/usci/Msp430SpiB1C.nc +++ b/tos/chips/msp430/usci/Msp430SpiB1C.nc @@ -48,7 +48,8 @@ generic configuration Msp430SpiB1C() { interface SpiPacket; interface ArbiterInfo; /* ??? */ } - uses interface Msp430UsciConfigure; + uses interface AsyncConfigure as + Msp430UsciConfigure; } implementation { enum { diff --git a/tos/chips/msp430/usci/Msp430SpiP.nc b/tos/chips/msp430/usci/Msp430SpiP.nc index dc59ce24..fd57695a 100644 --- a/tos/chips/msp430/usci/Msp430SpiP.nc +++ b/tos/chips/msp430/usci/Msp430SpiP.nc @@ -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 as + Msp430UsciConfigure; interface Counter interface ArbiterInfo; } diff --git a/tos/chips/msp430/usci/Msp430UartA0C.nc b/tos/chips/msp430/usci/Msp430UartA0C.nc index e8e66145..dd310326 100644 --- a/tos/chips/msp430/usci/Msp430UartA0C.nc +++ b/tos/chips/msp430/usci/Msp430UartA0C.nc @@ -48,7 +48,8 @@ generic configuration Msp430UartA0C() { interface UartByte; interface ArbiterInfo; /* ??? */ } - uses interface Msp430UsciConfigure; + uses interface AsyncConfigure as + Msp430UsciConfigure; } implementation { enum { diff --git a/tos/chips/msp430/usci/Msp430UartA1C.nc b/tos/chips/msp430/usci/Msp430UartA1C.nc index dd680564..a5f8a89c 100644 --- a/tos/chips/msp430/usci/Msp430UartA1C.nc +++ b/tos/chips/msp430/usci/Msp430UartA1C.nc @@ -48,7 +48,8 @@ generic configuration Msp430UartA1C() { interface UartByte; interface ArbiterInfo; /* ??? */ } - uses interface Msp430UsciConfigure; + uses interface AsyncConfigure as + Msp430UsciConfigure; } implementation { enum { diff --git a/tos/chips/msp430/usci/Msp430UartP.nc b/tos/chips/msp430/usci/Msp430UartP.nc index 2ef1736f..8fe6bee0 100644 --- a/tos/chips/msp430/usci/Msp430UartP.nc +++ b/tos/chips/msp430/usci/Msp430UartP.nc @@ -44,7 +44,8 @@ generic module Msp430UartP() { interface HplMsp430UsciInt as Interrupts; interface HplMsp430GeneralIO as RXD; interface HplMsp430GeneralIO as TXD; - interface Msp430UsciConfigure; + interface AsyncConfigure as + Msp430UsciConfigure; interface Counter; interface ArbiterInfo; } diff --git a/tos/chips/msp430/usci/Msp430Usci.h b/tos/chips/msp430/usci/Msp430Usci.h index 48299822..54131113 100644 --- a/tos/chips/msp430/usci/Msp430Usci.h +++ b/tos/chips/msp430/usci/Msp430Usci.h @@ -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 index 77cb87d2..00000000 --- a/tos/chips/msp430/usci/Msp430UsciConfigure.nc +++ /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 - */ - -#include "Msp430Usci.h" - -interface Msp430UsciConfigure { - async command const msp430_usci_config_t* get(); -}