mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang:
"Highlights:
- new drivers for Intel ismt & Broadcom bcm2835
- a number of drivers got support for more variants and mostly got
cleaned up on the way (sis630, i801, at91, tegra, designware)
- i2c got rid of all *_set_drvdata(..., NULL) on remove/probe failure
- removed the i2c_smbus_process_call from the core since there are no
users
- mxs can now switch between PIO and DMA depending on the message
size and the bus speed can now be arbitrary
In addition, there is the usual bunch of fixes, cleanups, devm_*
conversions, etc"
Fixed conflict (and buggy devm_* conversion) in i2c-s3c2410.c
* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (39 commits)
i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls
i2c: pxa: remove incorrect __exit annotations
i2c: ocores: Fix pointer to integer cast warning
i2c: tegra: remove warning dump if timeout happen in transfer
i2c: fix i2c-ismt.c printk format warning
i2c: i801: Add Device IDs for Intel Wellsburg PCH
i2c: add bcm2835 driver
i2c: ismt: Add Seth and Myself as maintainers
i2c: sis630: checkpatch cleanup
i2c: sis630: display unsigned hex
i2c: sis630: use hex to constants for SMBus commands
i2c: sis630: fix behavior after collision
i2c: sis630: clear sticky bits
i2c: sis630: Add SIS964 support
i2c: isch: Add module parameter for backbone clock rate if divider is unset
i2c: at91: fix unsed variable warning when building with !CONFIG_OF
i2c: Adding support for Intel iSMT SMBus 2.0 host controller
i2c: sh_mobile: don't send a stop condition by default inside transfers
i2c: sh_mobile: eliminate an open-coded "goto" loop
i2c: sh_mobile: fix timeout error handling
...
This commit is contained in:
commit
52caa59ed3
57 changed files with 2310 additions and 514 deletions
20
Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt
Normal file
20
Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
Broadcom BCM2835 I2C controller
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "brcm,bcm2835-i2c".
|
||||
- reg: Should contain register location and length.
|
||||
- interrupts: Should contain interrupt.
|
||||
- clocks : The clock feeding the I2C controller.
|
||||
|
||||
Recommended properties:
|
||||
- clock-frequency : desired I2C bus clock frequency in Hz.
|
||||
|
||||
Example:
|
||||
|
||||
i2c@20205000 {
|
||||
compatible = "brcm,bcm2835-i2c";
|
||||
reg = <0x7e205000 0x1000>;
|
||||
interrupts = <2 21>;
|
||||
clocks = <&clk_i2c>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
|
@ -8,6 +8,8 @@ Required properties:
|
|||
(b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c.
|
||||
(c) "samsung, s3c2440-hdmiphy-i2c", for s3c2440-like i2c used
|
||||
inside HDMIPHY block found on several samsung SoCs
|
||||
(d) "samsung, exynos5440-i2c", for s3c2440-like i2c used
|
||||
on EXYNOS5440 which does not need GPIO configuration.
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- interrupts: interrupt number to the cpu.
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ Supported adapters:
|
|||
* Intel Panther Point (PCH)
|
||||
* Intel Lynx Point (PCH)
|
||||
* Intel Lynx Point-LP (PCH)
|
||||
* Intel Avoton (SOC)
|
||||
* Intel Wellsburg (PCH)
|
||||
Datasheets: Publicly available at the Intel website
|
||||
|
||||
On Intel Patsburg and later chipsets, both the normal host SMBus controller
|
||||
|
|
|
|||
36
Documentation/i2c/busses/i2c-ismt
Normal file
36
Documentation/i2c/busses/i2c-ismt
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
Kernel driver i2c-ismt
|
||||
|
||||
Supported adapters:
|
||||
* Intel S12xx series SOCs
|
||||
|
||||
Authors:
|
||||
Bill Brown <[email protected]>
|
||||
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* bus_speed (unsigned int)
|
||||
Allows changing of the bus speed. Normally, the bus speed is set by the BIOS
|
||||
and never needs to be changed. However, some SMBus analyzers are too slow for
|
||||
monitoring the bus during debug, thus the need for this module parameter.
|
||||
Specify the bus speed in kHz.
|
||||
Available bus frequency settings:
|
||||
0 no change
|
||||
80 kHz
|
||||
100 kHz
|
||||
400 kHz
|
||||
1000 kHz
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers
|
||||
targeted primarily at the microserver and storage markets.
|
||||
|
||||
The S12xx series contain a pair of PCI functions. An output of lspci will show
|
||||
something similar to the following:
|
||||
|
||||
00:13.0 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 0
|
||||
00:13.1 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 1
|
||||
|
|
@ -4,9 +4,11 @@ Supported adapters:
|
|||
* Silicon Integrated Systems Corp (SiS)
|
||||
630 chipset (Datasheet: available at http://www.sfr-fresh.com/linux)
|
||||
730 chipset
|
||||
964 chipset
|
||||
* Possible other SiS chipsets ?
|
||||
|
||||
Author: Alexander Malysh <[email protected]>
|
||||
Amaury Decrême <[email protected]> - SiS964 support
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
|
@ -18,6 +20,7 @@ Module Parameters
|
|||
* high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default,
|
||||
what your BIOS use). DANGEROUS! This should be a bit
|
||||
faster, but freeze some systems (i.e. my Laptop).
|
||||
SIS630/730 chip only.
|
||||
|
||||
|
||||
Description
|
||||
|
|
@ -36,6 +39,12 @@ or like this:
|
|||
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02)
|
||||
00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
|
||||
|
||||
or like this:
|
||||
|
||||
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 760/M760 Host (rev 02)
|
||||
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS964 [MuTIOL Media IO]
|
||||
LPC Controller (rev 36)
|
||||
|
||||
in your 'lspci' output , then this driver is for your chipset.
|
||||
|
||||
Thank You
|
||||
|
|
|
|||
|
|
@ -137,8 +137,8 @@ available for writes where the two data bytes are the other way
|
|||
around (not SMBus compliant, but very popular.)
|
||||
|
||||
|
||||
SMBus Process Call: i2c_smbus_process_call()
|
||||
=============================================
|
||||
SMBus Process Call:
|
||||
===================
|
||||
|
||||
This command selects a device register (through the Comm byte), sends
|
||||
16 bits of data to it, and reads 16 bits of data in return.
|
||||
|
|
|
|||
|
|
@ -365,8 +365,6 @@ in terms of it. Never use this function directly!
|
|||
s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command);
|
||||
s32 i2c_smbus_write_word_data(struct i2c_client *client,
|
||||
u8 command, u16 value);
|
||||
s32 i2c_smbus_process_call(struct i2c_client *client,
|
||||
u8 command, u16 value);
|
||||
s32 i2c_smbus_read_block_data(struct i2c_client *client,
|
||||
u8 command, u8 *values);
|
||||
s32 i2c_smbus_write_block_data(struct i2c_client *client,
|
||||
|
|
@ -381,6 +379,8 @@ These ones were removed from i2c-core because they had no users, but could
|
|||
be added back later if needed:
|
||||
|
||||
s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value);
|
||||
s32 i2c_smbus_process_call(struct i2c_client *client,
|
||||
u8 command, u16 value);
|
||||
s32 i2c_smbus_block_process_call(struct i2c_client *client,
|
||||
u8 command, u8 length, u8 *values);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue