diff options
51 files changed, 733 insertions, 66 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 539e571b48..c1748aa120 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -94,6 +94,7 @@ root@darkstar.example.net root@tim.rpsys.net roy@rant-central.com rwhitby@home.(none) +rwhitby@nudi.(none) schurig@mnz66.mn-logistik.de schurig@mnz66.mn-solutions.de schurig@schurig.homelinux.net diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf index 761f7dec4b..eb39766950 100644 --- a/conf/distro/openslug.conf +++ b/conf/distro/openslug.conf @@ -3,7 +3,7 @@ #@DESCRIPTION: OpenSlug Linux Distribution for the NSLU2 DISTRO_NAME = "OpenSlug" -DISTRO_VERSION = "1.5-beta" +DISTRO_VERSION = "1.6-beta" TARGET_FPU = "soft" TARGET_OS = "linux" @@ -17,22 +17,23 @@ IMAGE_FSTYPES = "jffs2" OPENSLUG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-openslug.txt')}" EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x20000 -D ${OPENSLUG_DEVICE_TABLE}" -OPENSLUG_EXTRA_DEPENDS += "virtual/kernel module-init-tools mtd-utils modutils-initscripts" -OPENSLUG_EXTRA_RDEPENDS += "kernel-module-usbnet kernel-module-usbserial \ -kernel-module-pegasus kernel-module-p8022 kernel-module-kaweth \ -module-init-tools mtd-utils modutils-initscripts" +OPENSLUG_EXTRA_DEPENDS ?= "" +OPENSLUG_EXTRA_RDEPENDS ?= "\ +kernel-module-usbnet \ +kernel-module-pegasus kernel-module-p8022 kernel-module-kaweth \ +kernel-module-usbserial \ +kernel-module-pl2303 kernel-module-ftdi-sio" -OPENSLUG_EXTRA_INSTALL += "${OPENSLUG_EXTRA_RDEPENDS}" - -# Whether to use the old shell hotplug or the new C hotplug is a -# distribution decision. -#OPENSLUG_EXTRA_DEPENDS += "linux-hotplug" -#OPENSLUG_EXTRA_RDEPENDS += "linux-hotplug" -OPENSLUG_EXTRA_DEPENDS += "hotplug-ng" -OPENSLUG_EXTRA_RDEPENDS += "hotplug-ng" +OPENSLUG_EXTRA_INSTALL ?= "${OPENSLUG_EXTRA_RDEPENDS}" +# These lines are for backwards compatibility and will be removed soon. BOOTSTRAP_EXTRA_DEPENDS += "${OPENSLUG_EXTRA_DEPENDS}" BOOTSTRAP_EXTRA_RDEPENDS += "${OPENSLUG_EXTRA_RDEPENDS}" PREFERRED_PROVIDER_virtual/kernel ?= "openslug-kernel" PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod:module-init-tools-cross" + +PREFERRED_VERSION_openslug-kernel ?= "2.6.11.2" +PREFERRED_VERSION_ixp4xx-csr ?= "1.4" +PREFERRED_VERSION_ixp425-eth ?= "1.1" + diff --git a/conf/licenses.conf b/conf/licenses.conf index a72d9b8af7..b482a9dc01 100644 --- a/conf/licenses.conf +++ b/conf/licenses.conf @@ -1,4 +1,5 @@ SRC_DISTRIBUTE_LICENSES += "GPL GPLv2 BSD LGPL Apache-2.0 QPL AFL" SRC_DISTRIBUTE_LICENSES += "MIT Sleepycat Classpath Perl PSF PD Artistic" SRC_DISTRIBUTE_LICENSES += "bzip2 zlib ntp cron libpng netperf openssl" +SRC_DISTRIBUTE_LICENSES += "Info-ZIP" diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb index f9df951e1f..e3374b4903 100644 --- a/packages/base-files/base-files_3.0.14.bb +++ b/packages/base-files/base-files_3.0.14.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Miscellaneous files for the base system." SECTION = "base" PRIORITY = "required" -PR = "r26" +PR = "r27" LICENSE = "GPL" SRC_URI = " \ @@ -150,6 +150,12 @@ do_install_append_nylon() { rm -r ${D}/mnt/* } +do_install_append_openslug() { + rm ${D}${sysconfdir}/resolv.conf + touch ${D}${sysconfdir}/resolv.conf + rm -r ${D}/mnt/* +} + PACKAGES = "${PN}-doc ${PN}" FILES_${PN} = "/" FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses" @@ -165,5 +171,7 @@ RPROVIDES_${PN}-unslung = "${PN}" FILES_${PN}-unslung = "" +CONFFILES_${PN} = "${sysconfdir}/fstab ${sysconfdir}/hostname" CONFFILES_${PN}_nylon = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab ${sysconfdir}/hostname" +CONFFILES_${PN}_openslug = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab ${sysconfdir}/hostname" diff --git a/packages/bluez-utils/bluez-utils-common_2.14.inc b/packages/bluez-utils/bluez-utils-common_2.14.inc index 3d8adf0e6a..bc92e28755 100644 --- a/packages/bluez-utils/bluez-utils-common_2.14.inc +++ b/packages/bluez-utils/bluez-utils-common_2.14.inc @@ -5,7 +5,7 @@ DEPENDS = "bluez-libs-2.14 pcmcia-cs" RPROVIDES_${PN} = "bluez-pan bluez-sdp bluez-utils" LICENSE = "GPL" PACKAGES =+ "${PN}-ciptool ${PN}-bluepin" -PR = "r2" +PR = "r4" FILES_${PN}-ciptool = "/bin/ciptool" FILES_${PN}-bluepin = "/bin/bluepin" @@ -34,3 +34,5 @@ inherit autotools update-rc.d INITSCRIPT_NAME = "bluetooth" INITSCRIPT_PARAMS = "defaults 23 19" +CONFFILES_${PN} = "${sysconfdir}/bluetooth/hcid.conf ${sysconfdir}/bluetooth/rfcomm.conf \ + ${sysconfdir}/bluetooth/pin ${sysconfdir}/default/bluetooth" diff --git a/packages/bluez-utils/bluez-utils-dbus_2.14.bb b/packages/bluez-utils/bluez-utils-dbus_2.14.bb index 6cee31a3d3..f405cd5133 100644 --- a/packages/bluez-utils/bluez-utils-dbus_2.14.bb +++ b/packages/bluez-utils/bluez-utils-dbus_2.14.bb @@ -1,6 +1,5 @@ include bluez-utils-common_${PV}.inc DEPENDS += "dbus" SRC_URI += "file://dbus.patch;patch=1 file://smash.patch;patch=1" -PR = "r1" EXTRA_OECONF += "--with-dbus" diff --git a/packages/bluez-utils/bluez-utils-nodbus_2.14.bb b/packages/bluez-utils/bluez-utils-nodbus_2.14.bb index 9fa32d11ca..6334a4a499 100644 --- a/packages/bluez-utils/bluez-utils-nodbus_2.14.bb +++ b/packages/bluez-utils/bluez-utils-nodbus_2.14.bb @@ -1,5 +1,4 @@ include bluez-utils-common_${PV}.inc -PR = "r1" EXTRA_OECONF += "--without-dbus" diff --git a/packages/bluez-utils/files/openslug/bluetooth.default b/packages/bluez-utils/files/openslug/bluetooth.default index e69de29bb2..10f628e314 100644 --- a/packages/bluez-utils/files/openslug/bluetooth.default +++ b/packages/bluez-utils/files/openslug/bluetooth.default @@ -0,0 +1,37 @@ +# Bluetooth configuraton file + +# Start of hcid (allowed values are "true" and "false") +HCID_ENABLE=true + +# Config file for hcid +HCID_CONFIG="/etc/bluetooth/hcid.conf" + +# Start sdpd (allowed values are "true" and "false") +SDPD_ENABLE=true + +# Start hidd (allowed values are "true" and "false") +HIDD_ENABLE=false + +# Arguments to hidd +HIDD_OPTIONS="" + +# Run hid2hci (allowed values are "true" and "false") +HID2HCI_ENABLE=false + +# Bind rfcomm devices (allowed values are "true" and "false") +RFCOMM_ENABLE=true + +# Config file for rfcomm +RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf" + +# Start dund (allowed values are "true" and "false") +DUND_ENABLE=true + +# Arguments to dund +DUND_OPTIONS="--listen --persist" + +# Start pand (allowed values are "true" and "false") +PAND_ENABLE=true + +# Arguments to pand +PAND_OPTIONS="--listen --role NAP" diff --git a/packages/ixp425-eth/files/intdriven.patch b/packages/ixp425-eth/files/intdriven.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ixp425-eth/files/intdriven.patch diff --git a/packages/ixp425-eth/ixp425-eth_1.1.bb b/packages/ixp425-eth/ixp425-eth_1.1.bb index 5f1e37220a..6332aeaadb 100644 --- a/packages/ixp425-eth/ixp425-eth_1.1.bb +++ b/packages/ixp425-eth/ixp425-eth_1.1.bb @@ -3,7 +3,10 @@ LICENSE = "GPL" MAINTAINER = "Chris Larson <kergoth@handhelds.org>" SRC_URI = "http://www.intel.com/design/network/swsup/ixp400LinuxEthernetDriverPatch-1_1.zip \ file://makefile.patch;patch=1 \ - file://ethhdr.patch;patch=1" + file://ethhdr.patch;patch=1 \ + file://intdriven.patch;patch=1" +PR = "r1" + S = "${WORKDIR}" COMPATIBLE_HOST = "^armeb-linux.*" diff --git a/packages/linux/openslug-kernel-2.6.11.2/defconfig b/packages/linux/openslug-kernel-2.6.11.2/defconfig new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/defconfig diff --git a/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch b/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-io.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-io.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2-io.c diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-setup.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-setup.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2-setup.c diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2.h b/packages/linux/openslug-kernel-2.6.11.2/nslu2.h new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2.h diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch b/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch diff --git a/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch b/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch diff --git a/packages/linux/openslug-kernel-2.6.11.2/x1205-rtc.c b/packages/linux/openslug-kernel-2.6.11.2/x1205-rtc.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11.2/x1205-rtc.c diff --git a/packages/linux/openslug-kernel-2.6.11/defconfig b/packages/linux/openslug-kernel-2.6.11/defconfig new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/defconfig diff --git a/packages/linux/openslug-kernel-2.6.11/ixp4xx_copy_from.patch b/packages/linux/openslug-kernel-2.6.11/ixp4xx_copy_from.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/ixp4xx_copy_from.patch diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-io.c b/packages/linux/openslug-kernel-2.6.11/nslu2-io.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/nslu2-io.c diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-part.c b/packages/linux/openslug-kernel-2.6.11/nslu2-part.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/nslu2-part.c diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-pci.c b/packages/linux/openslug-kernel-2.6.11/nslu2-pci.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/nslu2-pci.c diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-setup.c b/packages/linux/openslug-kernel-2.6.11/nslu2-setup.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/nslu2-setup.c diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2.h b/packages/linux/openslug-kernel-2.6.11/nslu2.h new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/nslu2.h diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2_2.6.11.patch b/packages/linux/openslug-kernel-2.6.11/nslu2_2.6.11.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/nslu2_2.6.11.patch diff --git a/packages/linux/openslug-kernel-2.6.11/usbnet.patch b/packages/linux/openslug-kernel-2.6.11/usbnet.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/usbnet.patch diff --git a/packages/linux/openslug-kernel-2.6.11/x1205-rtc.c b/packages/linux/openslug-kernel-2.6.11/x1205-rtc.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openslug-kernel-2.6.11/x1205-rtc.c diff --git a/packages/linux/openslug-kernel-2.6.9/defconfig b/packages/linux/openslug-kernel-2.6.9/defconfig index ca1502b73a..87c5009449 100644 --- a/packages/linux/openslug-kernel-2.6.9/defconfig +++ b/packages/linux/openslug-kernel-2.6.9/defconfig @@ -25,17 +25,17 @@ CONFIG_SYSCTL=y # CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y +CONFIG_IKCONFIG=m +CONFIG_IKCONFIG_PROC=m CONFIG_EMBEDDED=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_FUTEX=y CONFIG_EPOLL=y -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_NOOP=n +CONFIG_IOSCHED_AS=n CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_CFQ=n CONFIG_CC_OPTIMIZE_FOR_SIZE=y # @@ -229,7 +229,7 @@ CONFIG_MTD_IXP4XX=y # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set -CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_CARMEL is not set @@ -240,7 +240,14 @@ CONFIG_BLK_DEV_INITRD=y # # Multi-device support (RAID and LVM) # -# CONFIG_MD is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +# CONFIG_MD_LINEAR is not set +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID5=m +# CONFIG_MD_MULTIPATH is not set +# CONFIG_BLK_DEV_LVM # # Networking support @@ -256,14 +263,14 @@ CONFIG_NETLINK_DEV=m CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_FWMARK=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_IP_MULTIPLE_TABLES is not set +# CONFIG_IP_ROUTE_FWMARK is not set CONFIG_IP_ROUTE_NAT=y -CONFIG_IP_ROUTE_MULTIPATH=y +# CONFIG_IP_ROUTE_MULTIPATH is not set CONFIG_IP_ROUTE_TOS=y -CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_ROUTE_VERBOSE is not set CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y @@ -271,9 +278,9 @@ CONFIG_IP_PNP_BOOTP=y CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_MROUTE is not set +# CONFIG_IP_PIMSM_V1 is not set +# CONFIG_IP_PIMSM_V2 is not set # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set @@ -331,7 +338,7 @@ CONFIG_BRIDGE_NETFILTER=y # Bridge: Netfilter Configuration # # CONFIG_BRIDGE_NF_EBTABLES is not set -CONFIG_XFRM=y +# CONFIG_XFRM is not set # CONFIG_XFRM_USER is not set # @@ -577,7 +584,7 @@ CONFIG_BLK_DEV_SD=y # CONFIG_SCSI_QLOGIC_ISP is not set # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set -CONFIG_SCSI_QLA2XXX=m +# CONFIG_SCSI_QLA2XXX is not set # CONFIG_SCSI_QLA21XX is not set # CONFIG_SCSI_QLA22XX is not set # CONFIG_SCSI_QLA2300 is not set @@ -792,19 +799,19 @@ CONFIG_SENSORS_X1205=y # File systems # CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_POSIX_ACL is not set # CONFIG_EXT2_FS_SECURITY is not set CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y +# CONFIG_EXT3_FS_XATTR is not set +# CONFIG_EXT3_FS_POSIX_ACL is not set # CONFIG_EXT3_FS_SECURITY is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y +# CONFIG_FS_MBCACHE is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y +# CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set @@ -936,7 +943,7 @@ CONFIG_USB_DEVICEFS=y # # USB Host Controller Drivers # -CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD=m # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set CONFIG_USB_OHCI_HCD=y diff --git a/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c b/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c index e69de29bb2..50fbc9e280 100644 --- a/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c +++ b/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c @@ -0,0 +1,548 @@ +/* + x1205 - an 12c driver for the Xicor X1205 RTC + Copyright 2004 Karen Spearel + + please send all reports to: + kas11 at tampabay dot rr dot com + + based on linux/drivers/acron/char/pcf8583.h + Copyright (C) 2000 Russell King + + This program 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 of the License, or + (at your option) any later version. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +/* + + * i2c_adapter is the structure used to identify a physical i2c bus along + * with the access algorithms necessary to access it. + +struct i2c_adapter { + struct module *owner; + unsigned int id; == is algo->id | hwdep.struct->id, for registered values see below + unsigned int class; + struct i2c_algorithm *algo; the algorithm to access the bus + void *algo_data; + + --- administration stuff. + int (*client_register)(struct i2c_client *); + int (*client_unregister)(struct i2c_client *); + + data fields that are valid for all devices + struct semaphore bus_lock; + struct semaphore clist_lock; + + int timeout; + int retries; + struct device dev; the adapter device + struct class_device class_dev; the class device + +#ifdef CONFIG_PROC_FS + No need to set this when you initialize the adapter + int inode; +#endif def CONFIG_PROC_FS + + int nr; + struct list_head clients; + struct list_head list; + char name[I2C_NAME_SIZE]; + struct completion dev_released; + struct completion class_dev_released; +}; +*/ + + +/*========== Driver for the X1205 on the Linksys NSLU2 ==================*/ + +#include <linux/init.h> +#include <linux/i2c.h> +#include <linux/slab.h> +#include <linux/string.h> +#include <linux/errno.h> +#include <linux/bcd.h> +#include <linux/rtc.h> +#include <linux/fs.h> +#include <linux/proc_fs.h> +#include <linux/miscdevice.h> +#include <linux/device.h> +#include <asm/uaccess.h> +#include <asm/system.h> +#include <linux/moduleparam.h> + +#define RTC_GETDATETIME 0 +#define RTC_SETTIME 1 +#define RTC_SETDATETIME 2 + +#define I2C_M_WR 0 // just for consistancy + +// offsets into read buf - add 2 for write buf +#define CCR_SEC 0 +#define CCR_MIN 1 +#define CCR_HOUR 2 +#define CCR_MDAY 3 +#define CCR_MONTH 4 +#define CCR_YEAR 5 +#define CCR_WDAY 6 +#define CCR_Y2K 7 + +#define X1205_I2C_BUS_ADDR 0x6f // hardwired into x1205 +#define X1205_ALM0_BASE 0x00 // Base address of the ALM0 +#define X1205_CCR_BASE 0x30 // Base address of the CCR +#define X1205_SR_ADDR 0x3f // Status Register +#define X1205_SR_WEL 0x02 // Write Enable Latch bit +#define X1205_SR_RWEL 0x04 // Register Write Enable Bit +#define X1205_MILBIT 0x80 // this bit set in ccr.hour for 24 hr mode +#define NOERR 0 +#define RTC_NODATE 0 +#define RTC_DATETOO 1 + +// comment out next line is your x1205 can't do page writes +//#define X1205PAGEWRITE 1 +#ifdef X1205PAGEWRITE +#define DRIVERNAME "Xicor x1205 RTC Driver v0.9.3.3" +#else +#define DRIVERNAME "Xicor x1205 RTC Dvr v0.9.3.3NPW" +#endif + +#define DEBUG KERN_DEBUG + + +static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base); +static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base); +static int x1205_attach(struct i2c_adapter *adapter); +static int x1205_detach(struct i2c_client *client); +static int x1205_validate_tm(struct rtc_time *tm); +static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg); +static int x1205_sync_rtc(void); +static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr); +static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); +static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data); + +static struct i2c_driver x1205_driver = { + .owner = THIS_MODULE, + .name = DRIVERNAME, + .id = I2C_DRIVERID_X1205, + .flags = I2C_DF_NOTIFY, + .attach_adapter = &x1205_attach, //we don't need to probe |
