Re: [1/1] w1: new driver. DS2431 chip.

Previous thread: [PATCH] x86: make mm/gup.c more virtualization friendly by Jan Beulich on Wednesday, September 17, 2008 - 8:48 am. (3 messages)

Next thread: Re: [RFC][Resend] Make NFS-Client readahead tunable by Martin Knoblauch on Wednesday, September 17, 2008 - 9:03 am. (1 message)
From: Evgeniy Polyakov
Date: Wednesday, September 17, 2008 - 8:49 am

Signed-off-by: Bernhard Weirich <bernhard.weirich@riedel.net>
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>

--- linux-2.6.26.1/drivers/w1/w1_family.h	2008-07-18 14:51:32.000000000 +0200
+++ linux-2.6.26.5/drivers/w1/w1_family.h	2008-09-16 11:48:30.000000000 +0200
@@ -33,6 +33,7 @@
 #define W1_THERM_DS1822  	0x22
 #define W1_EEPROM_DS2433  	0x23
 #define W1_THERM_DS18B20 	0x28
+#define W1_EEPROM_DS2431	0x2D
 #define W1_FAMILY_DS2760	0x30
 
 #define MAXNAMELEN		32
--- linux-2.6.25.3/drivers/w1/slaves/w1_ds2431.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.26.5/drivers/w1/slaves/w1_ds2431.c	2008-09-17 09:02:13.000000000 +0200
@@ -0,0 +1,318 @@
+/*
+ *	w1_DS2431.c - w1 family 2d (DS2431) driver
+ *
+ * Copyright (c) 2008 Bernhard Weirich <bernhard.weirich@riedel.net>
+ *
+ * Heavily inspired by w1_DS2433 driver from Ben Gardner <bgardner@wabtec.com>
+ *
+ * This source code is licensed under the GNU General Public License,
+ * Version 2. See the file COPYING for more details.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/device.h>
+#include <linux/types.h>
+#include <linux/delay.h>
+
+#include "../w1.h"
+#include "../w1_int.h"
+#include "../w1_family.h"
+
+#define W1_F2D_EEPROM_SIZE		128
+#define W1_F2D_PAGE_COUNT		4
+#define W1_F2D_PAGE_BITS		5
+#define W1_F2D_PAGE_SIZE		(1<<W1_F2D_PAGE_BITS)
+#define W1_F2D_PAGE_MASK		0x1F
+
+#define W1_F2D_SCRATCH_BITS  3
+#define W1_F2D_SCRATCH_SIZE  (1<<W1_F2D_SCRATCH_BITS)
+#define W1_F2D_SCRATCH_MASK  (W1_F2D_SCRATCH_SIZE-1)
+
+#define W1_F2D_READ_EEPROM	0xF0
+#define W1_F2D_WRITE_SCRATCH	0x0F
+#define W1_F2D_READ_SCRATCH	0xAA
+#define W1_F2D_COPY_SCRATCH	0x55
+
+
+#define W1_F2D_TPROG_MS		11
+
+#define W1_F2D_READ_RETRIES		10
+#define W1_F2D_READ_MAXLEN		8
+
+/**
+ * Check the file size bounds and adjusts count as needed.
+ * This would not be needed if the file size didn't reset to 0 after a write.
+ */
+static inline size_t ...
From: Andrew Morton
Date: Wednesday, September 17, 2008 - 4:00 pm

On Wed, 17 Sep 2008 19:49:29 +0400

This was authored by Bernhard, but the way in which it was sent claims
that it was authored by yourself.  Please add a From: line at the very


The driver has a number of comments whcih start with /**.  But that
pattern is specifically used to flag the presence of a kerneldoc-format

This one looks a bit kerneldoc-like but actually isn't kerneldoc.


little fixes:

--- a/drivers/w1/slaves/w1_ds2431.c~w1-new-driver-ds2431-chip-fix
+++ a/drivers/w1/slaves/w1_ds2431.c
@@ -1,5 +1,5 @@
 /*
- *	w1_DS2431.c - w1 family 2d (DS2431) driver
+ * w1_ds2431.c - w1 family 2d (DS2431) driver
  *
  * Copyright (c) 2008 Bernhard Weirich <bernhard.weirich@riedel.net>
  *
@@ -41,7 +41,7 @@
 #define W1_F2D_READ_RETRIES		10
 #define W1_F2D_READ_MAXLEN		8
 
-/**
+/*
  * Check the file size bounds and adjusts count as needed.
  * This would not be needed if the file size didn't reset to 0 after a write.
  */
@@ -56,7 +56,7 @@ static inline size_t w1_f2d_fix_count(lo
 	return count;
 }
 
-/**
+/*
  * Read a block from W1 ROM two times and compares the results.
  * If they are equal they are returned, otherwise the read
  * is repeated W1_F2D_READ_RETRIES times.
@@ -88,8 +88,6 @@ static int w1_f2d_readblock(struct w1_sl
 
 		if (!memcmp(cmp, buf, count))
 			return 0;
-
-
 	} while (--tries);
 
 	dev_err(&sl->dev, "proof reading failed %d times\n",
@@ -98,7 +96,6 @@ static int w1_f2d_readblock(struct w1_sl
 	return -1;
 }
 
-
 static ssize_t w1_f2d_read_bin(struct kobject *kobj,
 			       struct bin_attribute *bin_attr,
 			       char *buf, loff_t off, size_t count)
@@ -134,7 +131,7 @@ static ssize_t w1_f2d_read_bin(struct ko
 	return count;
 }
 
-/**
+/*
  * Writes to the scratchpad and reads it back for verification.
  * Then copies the scratchpad to EEPROM.
  * The data must be aligned at W1_F2D_SCRATCH_SIZE bytes and
@@ -279,10 +276,7 @@ static struct bin_attribute w1_f2d_bin_a
 
 static int w1_f2d_add_slave(struct w1_slave ...
From: Evgeniy Polyakov
Date: Sunday, September 21, 2008 - 8:53 am

Ok, I see. Patch was definitely created by Bernhard, I just pointed to
couple of trivial cleanups. I saw you imported it into the tree with


I think we need to drop ** lines, since I did not convert kernel
comments into documentation, so would not be able to point to kerneldoc
(its doxygen iirc?) errors anyway.

-- 
	Evgeniy Polyakov
--

From: Willy Tarreau
Date: Wednesday, September 24, 2008 - 1:33 pm

Also it would be kind to add one line indicating what this chip does.
I had to read till the last line to discover it's a 1kb EEPROM.

Willy

--

Previous thread: [PATCH] x86: make mm/gup.c more virtualization friendly by Jan Beulich on Wednesday, September 17, 2008 - 8:48 am. (3 messages)

Next thread: Re: [RFC][Resend] Make NFS-Client readahead tunable by Martin Knoblauch on Wednesday, September 17, 2008 - 9:03 am. (1 message)