changeset 1641:23c0a1c0b988

* include/devs_wallclock_arm_aim711.inl: * cdl/aim711_wallclock_drivers.cdl: New package - RTC support for the ARM Industrial Module AIM 711.
author asl
date Fri, 14 May 2004 14:55:25 +0000
parents b958d883e5f5
children b48368553004
files packages/devs/wallclock/arm/aim711/current/ChangeLog packages/devs/wallclock/arm/aim711/current/cdl/aim711_wallclock_drivers.cdl packages/devs/wallclock/arm/aim711/current/include/devs_wallclock_arm_aim711.inl
diffstat 3 files changed, 217 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/devs/wallclock/arm/aim711/current/ChangeLog
@@ -0,0 +1,40 @@
+2004-04-27  Roland Caßebohm  <roland.cassebohm@cisionsystems.de>
+
+	* include/devs_wallclock_arm_aim711.inl: 
+	* cdl/aim711_wallclock_drivers.cdl: New package - RTC support for 
+	the ARM Industrial Module AIM 711.
+
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+
+
new file mode 100644
--- /dev/null
+++ b/packages/devs/wallclock/arm/aim711/current/cdl/aim711_wallclock_drivers.cdl
@@ -0,0 +1,70 @@
+# ====================================================================
+#
+#      aim711_wallclock_drivers.cdl
+#
+#      Wallclock drivers - support for DS1339 RTC on the 
+#      ARM Industrial Module AIM 711
+#
+# ====================================================================
+#####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+## Copyright (C) 2003 Gary Thomas
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+## WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with eCos; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+##
+## As a special exception, if other files instantiate templates or use macros
+## or inline functions from this file, or you compile this file and link it
+## with other works to produce a work based on this file, this file does not
+## by itself cause the resulting work to be covered by the GNU General Public
+## License. However the source code for this file must still be made available
+## in accordance with section (3) of the GNU General Public License.
+##
+## This exception does not invalidate any other reasons why a work based on
+## this file might be covered by the GNU General Public License.
+##
+## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+## at http://sources.redhat.com/ecos/ecos-license/
+## -------------------------------------------
+#####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      rcassebohm
+# Contributors:   rcassebohm
+# Date:           2003-10-05
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_DEVICES_WALLCLOCK_ARM_AIM711 {
+    display       "ARM Industrial Module AIM 711 RTC Driver"
+    description   "RTC driver for the ARM Industrial Module AIM 711."
+
+    parent        CYGPKG_IO_WALLCLOCK
+    active_if     CYGPKG_IO_WALLCLOCK
+    active_if     CYGPKG_HAL_ARM_AIM711
+    requires      CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS1307
+
+    include_dir   cyg/io
+
+    define_proc {
+        puts $::cdl_system_header "/***** AIM 711 RTC driver proc output start *****/"
+        puts $::cdl_system_header "#define CYGDAT_DEVS_WALLCLOCK_DALLAS_1307_INL <cyg/io/devs_wallclock_arm_aim711.inl>"
+        puts $::cdl_system_header "#define CYGDAT_DEVS_WALLCLOCK_ARM_AIM711_CFG <pkgconf/devices_wallclock_arm_aim711.h>"
+        puts $::cdl_system_header "/***** AIM 711 RTC driver proc output end  *****/"
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/devs/wallclock/arm/aim711/current/include/devs_wallclock_arm_aim711.inl
@@ -0,0 +1,107 @@
+//==========================================================================
+//
+//      devs/wallclock/arm/aim711/include/devs_wallclock_arm_aim711.inl
+//
+//      ARM Industrial Module AIM 711 RTC IO definitions
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+// Copyright (C) 2003 Gary Thomas
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   rcassebohm
+// Contributors:rcassebohm
+// Date:        2003-10-05
+// Purpose:     AIM 711 RTC definitions for using DS1339
+//####DESCRIPTIONEND####
+//==========================================================================
+
+#include <cyg/hal/hal_io.h>
+#include <string.h>
+
+#include CYGDAT_DEVS_WALLCLOCK_ARM_AIM711_CFG
+
+static __inline__ void
+DS_GET(cyg_uint8 *regs)
+{
+    hal_ks32c_i2c_msg_t msgs[2];
+    int status;
+    cyg_uint8 offset = 0x00;
+
+    // write message to set the address
+    msgs[0].devaddr = AIM711_RTC_ADDR | KS32C_I2C_WR;
+    msgs[0].pbuf = &offset;
+    msgs[0].bufsize = sizeof(offset);
+
+    // read message
+    msgs[1].devaddr = AIM711_RTC_ADDR | KS32C_I2C_RD;
+    msgs[1].pbuf = regs;
+    msgs[1].bufsize = DS_REGS_SIZE;
+
+    // transfer the messages
+    status = hal_ks32c_i2c_transfer(2, msgs);
+
+    if (status < 0)
+        diag_printf("%s - Can't read RTC\n", __FUNCTION__);
+
+    return;
+}
+
+static __inline__ void
+DS_PUT(cyg_uint8 *regs)
+{
+    hal_ks32c_i2c_msg_t msg;
+    int status;
+    cyg_uint8 offset = 0x00;
+    cyg_uint8 buffer[1 + DS_REGS_SIZE];
+
+    buffer[0]=offset;
+    memcpy(&buffer[1], regs, DS_REGS_SIZE);
+
+    // write message 
+    msg.devaddr = AIM711_RTC_ADDR | KS32C_I2C_WR;
+    msg.pbuf = buffer;
+    msg.bufsize = sizeof(buffer);
+
+    // transfer the messages
+    status = hal_ks32c_i2c_transfer(1, &msg);
+
+    if (status < 0)
+        diag_printf("%s - Can't write RTC\n", __FUNCTION__);
+
+    return;
+}
+
+// EOF devs_wallclock_arm_aim711.inl