From: Guenter Roeck <guenter.roeck@ericsson.com>
To: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: "khali@linux-fr.org" <khali@linux-fr.org>,
"x86@kernel.org" <x86@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"lm-sensors@lm-sensors.org" <lm-sensors@lm-sensors.org>
Subject: Re: [lm-sensors] [PATCH] x86/platform: (TS-5500) revised ADC driver
Date: Tue, 24 Jan 2012 00:41:38 +0000 [thread overview]
Message-ID: <20120124004138.GA20363@ericsson.com> (raw)
In-Reply-To: <20120123173551.309af2eb@v0nbox>
On Mon, Jan 23, 2012 at 05:35:51PM -0500, Vivien Didelot wrote:
> On Mon, 23 Jan 2012 15:54:08 -0500,
> Vivien Didelot <vivien.didelot@savoirfairelinux.com> wrote:
>
> > On Sun, 22 Jan 2012 20:36:46 -0800,
> > Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> > > > > Regarding the location, I'd really like to know from the
> > > > > powers-that-be if arch/x86/platform/ts5500/
> > > > > or
> > > > > drivers/platform/x86
> > > > > or
> > > > > drivers/hwmon
> > > > >
> > > > > would be the appropriate location for a driver like this. As
> > > > > mentioned before, my strong preference is drivers/hwmon, but I
> > > > > would like to hear from others.
> > > >
> > > > We should either split every driver into corresponding
> > > > subdirectories, or put everything in a common platform directory.
> > > > My first RFC patches set has every driver separated. As they are
> > > > really specific to the platform, people seem to agree with
> > > > grouping them, mainly because they won't be shared. I changed
> > > > that in the following patches sets, and X86 maintainers seemed to
> > > > be ok with that.
> > > >
> > > > I'm ok with both solutions, but we should all agree on one.
> > > > Maybe we should have other maintainers view on this?
> > > >
> > > That is what I had asked for. I thought the whole point of
> > > per-module directories was to have all drivers there. If that is no
> > > longer true, fine with me; who am I to argue about something like
> > > that. I'd just like to know.
> > >
> > > > > Also, I am not sure if the current approach is appropriate to
> > > > > start with. Looking at the datasheet as well as into existing
> > > > > kernel code, it appears quite likely that some kind of more or
> > > > > less generic MAX197 driver exists somewhere. The existence of
> > > > > is_max197_installed() - without any calling code - is a strong
> > > > > indication that this is the case, as well as the "static"
> > > > > platform data in your original patch. It might be more
> > > > > appropriate to take this more or less generic driver, move it to
> > > > > drivers/hwmon, and provide - for example through platform data -
> > > > > a means to read from and write to the chip on a per-platform
> > > > > basis, ie with per-platform access functions.
> > > >
> > > > You're right, it should be possible to create a generic max197
> > > > driver and provide read/write functions through platform data. But
> > > > we don't have a max197 right now... So it can stay as a compact
> > > > TS-5500 ADC driver for the moment, and maybe we will split later.
> > > > What do you think?
> > > >
> > > I am lost. If you don't have a TS-5500 with max197, how do you test
> > > the driver ?
> >
> > Sorry, I wasn't clear. I meant the only max197 I have is the one
> > behind the TS-5500 CPLD, I don't have any others to test
> > independently.
> >
> > > I had another look into the MAX197 and TS-5500 data sheets. In my
> > > opinion, a generic MAX197 driver in drivers/hwmon combined with a
> > > platform driver in the current location would be the way to go. That
> > > driver would then also work for the other TS-5x00 systems. All you
> > > need is a single chip access function in the platform code, since
> > > the chip is always accessed with a write followed by a read.
> >
> > I took a deeper look at the datasheets, and you're right, a MAX197
> > driver seems to be a good choice. However, there are a number of
> > differences between a direct usage of a MAX197 and the TS-5500 mapped
> > MAX197.
> >
> > To start a conversion of a channel for a given range and polarity, it
> > consists on both sides of a u8 outb() call on pins 7-14 (i.e. bits
> > D7-D0). To be notified when the result is ready, we can either set an
> > IRQ on INT pin (falling edge), or poll it.
> > Then on the MAX197, you read the pins 7-14, set pin HBEN to 1, and
> > read the same pins again to get the 4 remaining bits. On the TS-5500,
> > only polling is available, and the 12 bits are mapped on 2 registers.
> >
> > I propose to write a max197 driver with default read and write
> > functions. A platform_data will be used to specify the base address
> > (pins 7-14), and eventually a custom read function pointer, which will
> > be used instead of the default one if it is different of NULL.
> >
> > What do you think?
> >
> > I will write a max197 driver with default read and write functions. A
> > platform_data will be used to specify the base address (pins 7-14),
> > and eventually a custom read function pointer, which will be used
> > instead of the default, if it is not NULL.
> >
> > What do you think?
>
Sounds like a plan to me.
> Sorry for the duplicate :)
>
> BTW, I've added Jean Delvare and the lm-sensors mailing list in Cc, in
> case they have an opinion on this.
>
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <guenter.roeck@ericsson.com>
To: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: "khali@linux-fr.org" <khali@linux-fr.org>,
"x86@kernel.org" <x86@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"lm-sensors@lm-sensors.org" <lm-sensors@lm-sensors.org>
Subject: Re: [PATCH] x86/platform: (TS-5500) revised ADC driver
Date: Mon, 23 Jan 2012 16:41:38 -0800 [thread overview]
Message-ID: <20120124004138.GA20363@ericsson.com> (raw)
In-Reply-To: <20120123173551.309af2eb@v0nbox>
On Mon, Jan 23, 2012 at 05:35:51PM -0500, Vivien Didelot wrote:
> On Mon, 23 Jan 2012 15:54:08 -0500,
> Vivien Didelot <vivien.didelot@savoirfairelinux.com> wrote:
>
> > On Sun, 22 Jan 2012 20:36:46 -0800,
> > Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> > > > > Regarding the location, I'd really like to know from the
> > > > > powers-that-be if arch/x86/platform/ts5500/
> > > > > or
> > > > > drivers/platform/x86
> > > > > or
> > > > > drivers/hwmon
> > > > >
> > > > > would be the appropriate location for a driver like this. As
> > > > > mentioned before, my strong preference is drivers/hwmon, but I
> > > > > would like to hear from others.
> > > >
> > > > We should either split every driver into corresponding
> > > > subdirectories, or put everything in a common platform directory.
> > > > My first RFC patches set has every driver separated. As they are
> > > > really specific to the platform, people seem to agree with
> > > > grouping them, mainly because they won't be shared. I changed
> > > > that in the following patches sets, and X86 maintainers seemed to
> > > > be ok with that.
> > > >
> > > > I'm ok with both solutions, but we should all agree on one.
> > > > Maybe we should have other maintainers view on this?
> > > >
> > > That is what I had asked for. I thought the whole point of
> > > per-module directories was to have all drivers there. If that is no
> > > longer true, fine with me; who am I to argue about something like
> > > that. I'd just like to know.
> > >
> > > > > Also, I am not sure if the current approach is appropriate to
> > > > > start with. Looking at the datasheet as well as into existing
> > > > > kernel code, it appears quite likely that some kind of more or
> > > > > less generic MAX197 driver exists somewhere. The existence of
> > > > > is_max197_installed() - without any calling code - is a strong
> > > > > indication that this is the case, as well as the "static"
> > > > > platform data in your original patch. It might be more
> > > > > appropriate to take this more or less generic driver, move it to
> > > > > drivers/hwmon, and provide - for example through platform data -
> > > > > a means to read from and write to the chip on a per-platform
> > > > > basis, ie with per-platform access functions.
> > > >
> > > > You're right, it should be possible to create a generic max197
> > > > driver and provide read/write functions through platform data. But
> > > > we don't have a max197 right now... So it can stay as a compact
> > > > TS-5500 ADC driver for the moment, and maybe we will split later.
> > > > What do you think?
> > > >
> > > I am lost. If you don't have a TS-5500 with max197, how do you test
> > > the driver ?
> >
> > Sorry, I wasn't clear. I meant the only max197 I have is the one
> > behind the TS-5500 CPLD, I don't have any others to test
> > independently.
> >
> > > I had another look into the MAX197 and TS-5500 data sheets. In my
> > > opinion, a generic MAX197 driver in drivers/hwmon combined with a
> > > platform driver in the current location would be the way to go. That
> > > driver would then also work for the other TS-5x00 systems. All you
> > > need is a single chip access function in the platform code, since
> > > the chip is always accessed with a write followed by a read.
> >
> > I took a deeper look at the datasheets, and you're right, a MAX197
> > driver seems to be a good choice. However, there are a number of
> > differences between a direct usage of a MAX197 and the TS-5500 mapped
> > MAX197.
> >
> > To start a conversion of a channel for a given range and polarity, it
> > consists on both sides of a u8 outb() call on pins 7-14 (i.e. bits
> > D7-D0). To be notified when the result is ready, we can either set an
> > IRQ on INT pin (falling edge), or poll it.
> > Then on the MAX197, you read the pins 7-14, set pin HBEN to 1, and
> > read the same pins again to get the 4 remaining bits. On the TS-5500,
> > only polling is available, and the 12 bits are mapped on 2 registers.
> >
> > I propose to write a max197 driver with default read and write
> > functions. A platform_data will be used to specify the base address
> > (pins 7-14), and eventually a custom read function pointer, which will
> > be used instead of the default one if it is different of NULL.
> >
> > What do you think?
> >
> > I will write a max197 driver with default read and write functions. A
> > platform_data will be used to specify the base address (pins 7-14),
> > and eventually a custom read function pointer, which will be used
> > instead of the default, if it is not NULL.
> >
> > What do you think?
>
Sounds like a plan to me.
> Sorry for the duplicate :)
>
> BTW, I've added Jean Delvare and the lm-sensors mailing list in Cc, in
> case they have an opinion on this.
>
Thanks,
Guenter
next prev parent reply other threads:[~2012-01-24 0:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-18 23:52 [PATCH v4 0/4] Support for the TS-5500 platform Vivien Didelot
2012-01-18 23:52 ` [PATCH v4 1/4] x86/platform: (TS-5500) add platform base support Vivien Didelot
2012-01-18 23:52 ` [PATCH v4 2/4] x86/platform: (TS-5500) add GPIO support Vivien Didelot
2012-01-18 23:52 ` [PATCH v4 3/4] x86/platform: (TS-5500) add LED support Vivien Didelot
2012-01-18 23:52 ` [PATCH v4 4/4] x86/platform: (TS-5500) add ADC support Vivien Didelot
2012-01-19 2:55 ` Guenter Roeck
2012-01-19 2:57 ` [lm-sensors] " Guenter Roeck
2012-01-19 2:57 ` Guenter Roeck
2012-01-20 23:41 ` Vivien Didelot
2012-01-21 0:09 ` [lm-sensors] " Guenter Roeck
2012-01-21 0:09 ` Guenter Roeck
2012-01-20 23:43 ` [PATCH] x86/platform: (TS-5500) revised ADC driver Vivien Didelot
2012-01-21 4:46 ` Guenter Roeck
2012-01-23 1:36 ` Vivien Didelot
2012-01-23 4:36 ` Guenter Roeck
2012-01-23 20:54 ` Vivien Didelot
2012-01-23 22:35 ` [lm-sensors] " Vivien Didelot
2012-01-23 22:35 ` Vivien Didelot
2012-01-24 0:41 ` Guenter Roeck [this message]
2012-01-24 0:41 ` Guenter Roeck
2012-01-24 20:16 ` [lm-sensors] " Vivien Didelot
2012-01-24 20:16 ` Vivien Didelot
2012-01-24 21:20 ` [lm-sensors] " Guenter Roeck
2012-01-24 21:20 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120124004138.GA20363@ericsson.com \
--to=guenter.roeck@ericsson.com \
--cc=hpa@zytor.com \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=vivien.didelot@savoirfairelinux.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.