mirror of
https://github.com/torvalds/linux.git
synced 2024-12-21 02:21:36 +00:00
e93762bbf6
This patches makes following changes to omap_hdq driver - Enable 1-wire mode. - Implement w1_triplet callback to facilitate search rom procedure and auto detection of 1-wire slaves. - Proper enabling and disabling of interrupt. - Cleanups (formatting and return value checks). HDQ mode remains unchanged. Signed-off-by: Vignesh R <vigneshr@ti.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Kumar Gala <galak@codeaurora.org> Acked-by: Evgeniy Polyakov <zbr@ioremap.net> Cc: Jonathan Corbet <corbet@lwn.net> CC: Tony Lindgren <tony@atomide.com> Cc: Vignesh R <vigneshr@ti.com> Cc: NeilBrown <neilb@suse.de> Cc: Fabian Frederick <fabf@skynet.be> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
53 lines
2.2 KiB
Plaintext
53 lines
2.2 KiB
Plaintext
Kernel driver for omap HDQ/1-wire module.
|
|
========================================
|
|
|
|
Supported chips:
|
|
================
|
|
HDQ/1-wire controller on the TI OMAP 2430/3430 platforms.
|
|
|
|
A useful link about HDQ basics:
|
|
===============================
|
|
http://focus.ti.com/lit/an/slua408a/slua408a.pdf
|
|
|
|
Description:
|
|
============
|
|
The HDQ/1-Wire module of TI OMAP2430/3430 platforms implement the hardware
|
|
protocol of the master functions of the Benchmark HDQ and the Dallas
|
|
Semiconductor 1-Wire protocols. These protocols use a single wire for
|
|
communication between the master (HDQ/1-Wire controller) and the slave
|
|
(HDQ/1-Wire external compliant device).
|
|
|
|
A typical application of the HDQ/1-Wire module is the communication with battery
|
|
monitor (gas gauge) integrated circuits.
|
|
|
|
The controller supports operation in both HDQ and 1-wire mode. The essential
|
|
difference between the HDQ and 1-wire mode is how the slave device responds to
|
|
initialization pulse.In HDQ mode, the firmware does not require the host to
|
|
create an initialization pulse to the slave.However, the slave can be reset by
|
|
using an initialization pulse (also referred to as a break pulse).The slave
|
|
does not respond with a presence pulse as it does in the 1-Wire protocol.
|
|
|
|
Remarks:
|
|
========
|
|
The driver (drivers/w1/masters/omap_hdq.c) supports the HDQ mode of the
|
|
controller. In this mode, as we can not read the ID which obeys the W1
|
|
spec(family:id:crc), a module parameter can be passed to the driver which will
|
|
be used to calculate the CRC and pass back an appropriate slave ID to the W1
|
|
core.
|
|
|
|
By default the master driver and the BQ slave i/f
|
|
driver(drivers/w1/slaves/w1_bq27000.c) sets the ID to 1.
|
|
Please note to load both the modules with a different ID if required, but note
|
|
that the ID used should be same for both master and slave driver loading.
|
|
|
|
e.g:
|
|
insmod omap_hdq.ko W1_ID=2
|
|
inamod w1_bq27000.ko F_ID=2
|
|
|
|
The driver also supports 1-wire mode. In this mode, there is no need to
|
|
pass slave ID as parameter. The driver will auto-detect slaves connected
|
|
to the bus using SEARCH_ROM procedure. 1-wire mode can be selected by
|
|
setting "ti,mode" property to "1w" in DT (see
|
|
Documentation/devicetree/bindings/w1/omap-hdq.txt for more details).
|
|
By default driver is in HDQ mode.
|