Skip to content

Commit 4e2c9cd

Browse files
committed
Merge tag 'i2c-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang: "I2C core: - finally remove the I2C_COMPAT symbol after 15 years of deprecation - lock client addresses during initialization to prevent race conditions between different kinds of instantiation - use scoped foreach OF child loops - testunit cleanups and documentation improvements, as well as two new tests, one for repeated start and one for triggering SMBusAlert interrupts I2C host drivers: - DesignWare and Renesas I2C driver updates. The first has has undergone through a series of cleanups that have been sent to the mailing list a year ago for the first time and finally get merged in this pull request. They are many, from typos (e.g. i2/i2c), to cosmetics, to refactoring (e.g. move inline functions to librarieas) and many others. - all the DesignWare Kconfig options have been grouped under the I2C_DESIGNWARE_CORE and this required some adaptation in many of the kernel configuration files for different arm and mips boards Cleanups: - improve the exit path in the runtime resume function for the Qualcomm Geni platform - get rid of the unused "target_addr" parameter in the Intel LJCA driver - intialize the restart_flag in the MediaTek controller in one single place - constify a few global data structures in the virtio driver - simplify the bus speed handling in the Renesas driver init function making it more readable - improved probe function of the Renesas R-Car driver - switch the iMX/MXC driver to use RUNTIME_PM_OPS() instead of SET_RUNTIME_PM_OPS() - iMX/MXC driver cleanups - use devm_clk_get_enabled() to simplify the Renesas EMEV2, Ingenic and MPC drivers Refactoring: - Fix a potential out of boundary array access in the Nuvoton driver. This is not a bug fix because the issue could never occur due to hardware not having the properties listed in the array. The change makes the driver more future proof and, at the same time, silences code analyzers. Improvements: - several patches improving the runtime power management handling of the Renesas I2C (riic) driver - use a more descriptive adapter name in the Intel i801 driver to show the presence of the IDF feature - kill pending transactions when irq's can't complete their handling in the Intel Denverton (ismt) driver, triggering a timeout New Feature: - support fast mode plus in the Renesas I2C (riic) driver New support: - Added support for: - Renesas R9A08G045 - Rockchip RK3576 - KEBA I2C - Theobroma Systems Mule Multiplexer. - new i2c-keba.c driver - new driver for The Mule i2c multiplexer Core I2C framework: - move runtime PM functions in order to allow them to be accessed during device add Devicetree: - nVidia and Qualcomm binding improvements - get rid of redundant "multi-master" property in the aspeed binding - convert i2c-sprd binding to YAML AT24 updates: - document a new model from giantec in DT bindings" * tag 'i2c-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (69 commits) i2c: designware: Use pci_get_drvdata() i2c: designware: Propagate firmware node i2c: designware: Uninline i2c_dw_probe() i2c: ljca: Remove unused "target_addr" parameter i2c: keba: Add KEBA I2C controller support i2c: i801: Use a different adapter-name for IDF adapters i2c: core: Setup i2c_adapter runtime-pm before calling device_add() dt-bindings: i2c: i2c-sprd: convert to YAML i2c: ismt: kill transaction in hardware on timeout i2c: designware: Group all DesignWare drivers under a single option net: txgbe: Fix I2C Kconfig dependencies RISC-V: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM mips: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM arm64: defconfig: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM ARM: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM ARC: configs: enable I2C_DESIGNWARE_CORE with I2C_DESIGNWARE_PLATFORM i2c: virtio: Constify struct i2c_algorithm and struct virtio_device_id i2c: rcar: tidyup priv->devtype handling on rcar_i2c_probe() i2c: imx: Convert comma to semicolon i2c: jz4780: Use devm_clk_get_enabled() helpers ...
2 parents 00b43f8 + c24999e commit 4e2c9cd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+1747
-605
lines changed

Documentation/devicetree/bindings/eeprom/at24.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ properties:
116116
- const: atmel,24c02
117117
- items:
118118
- enum:
119+
- giantec,gt24c04a
119120
- onnn,cat24c04
120121
- onnn,cat24c05
121122
- rohm,br24g04

Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@ properties:
4444
description: frequency of the bus clock in Hz defaults to 100 kHz when not
4545
specified
4646

47-
multi-master:
48-
type: boolean
49-
description:
50-
states that there is another master active on this bus
51-
5247
required:
5348
- reg
5449
- compatible

Documentation/devicetree/bindings/i2c/i2c-rk3x.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ properties:
3838
- rockchip,rk3308-i2c
3939
- rockchip,rk3328-i2c
4040
- rockchip,rk3568-i2c
41+
- rockchip,rk3576-i2c
4142
- rockchip,rk3588-i2c
4243
- rockchip,rv1126-i2c
4344
- const: rockchip,rk3399-i2c

Documentation/devicetree/bindings/i2c/i2c-sprd.txt

Lines changed: 0 additions & 31 deletions
This file was deleted.

Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ properties:
103103
items:
104104
- const: i2c
105105

106+
power-domains:
107+
maxItems: 1
108+
106109
dmas:
107110
items:
108111
- description: DMA channel for the reception FIFO
@@ -124,6 +127,8 @@ allOf:
124127
- nvidia,tegra30-i2c
125128
then:
126129
properties:
130+
clocks:
131+
minItems: 2
127132
clock-names:
128133
items:
129134
- const: div-clk
@@ -133,20 +138,13 @@ allOf:
133138
properties:
134139
compatible:
135140
contains:
136-
const: nvidia,tegra114-i2c
137-
then:
138-
properties:
139-
clock-names:
140-
items:
141-
- const: div-clk
142-
143-
- if:
144-
properties:
145-
compatible:
146-
contains:
147-
const: nvidia,tegra210-i2c
141+
enum:
142+
- nvidia,tegra114-i2c
143+
- nvidia,tegra210-i2c
148144
then:
149145
properties:
146+
clocks:
147+
maxItems: 1
150148
clock-names:
151149
items:
152150
- const: div-clk
@@ -158,13 +156,18 @@ allOf:
158156
const: nvidia,tegra210-i2c-vi
159157
then:
160158
properties:
159+
clocks:
160+
minItems: 2
161161
clock-names:
162162
items:
163163
- const: div-clk
164164
- const: slow
165165
power-domains:
166166
items:
167167
- description: phandle to the VENC power domain
168+
else:
169+
properties:
170+
power-domains: false
168171

169172
unevaluatedProperties: false
170173

Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ allOf:
130130
then:
131131
properties:
132132
clocks:
133+
minItems: 4
133134
maxItems: 4
134135
clock-names:
135136
items:

Documentation/devicetree/bindings/i2c/renesas,riic.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ properties:
2525
- renesas,riic-r9a07g054 # RZ/V2L
2626
- const: renesas,riic-rz # RZ/A or RZ/G2L
2727

28+
- items:
29+
- const: renesas,riic-r9a08g045 # RZ/G3S
30+
- const: renesas,riic-r9a09g057 # RZ/V2H(P)
31+
2832
- const: renesas,riic-r9a09g057 # RZ/V2H(P)
2933

3034
reg:
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/i2c/sprd,sc9860-i2c.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Spreadtrum SC9860 I2C controller
8+
9+
maintainers:
10+
- Orson Zhai <orsonzhai@gmail.com>
11+
- Baolin Wang <baolin.wang7@gmail.com>
12+
- Chunyan Zhang <zhang.lyra@gmail.com>
13+
14+
allOf:
15+
- $ref: /schemas/i2c/i2c-controller.yaml#
16+
17+
properties:
18+
compatible:
19+
const: sprd,sc9860-i2c
20+
21+
reg:
22+
maxItems: 1
23+
24+
interrupts:
25+
maxItems: 1
26+
27+
clocks:
28+
items:
29+
- description: I2C clock
30+
- description: I2C source (parent) clock
31+
- description: I2C module enable clock
32+
33+
clock-names:
34+
items:
35+
- const: i2c
36+
- const: source
37+
- const: enable
38+
39+
clock-frequency: true
40+
41+
required:
42+
- compatible
43+
- reg
44+
- interrupts
45+
- clocks
46+
- clock-names
47+
- clock-frequency
48+
49+
unevaluatedProperties: false
50+
51+
examples:
52+
- |
53+
#include <dt-bindings/interrupt-controller/arm-gic.h>
54+
#include <dt-bindings/interrupt-controller/irq.h>
55+
56+
i2c@70500000 {
57+
compatible = "sprd,sc9860-i2c";
58+
reg = <0x70500000 0x1000>;
59+
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
60+
clocks = <&clk_i2c3>, <&ext_26m>, <&clk_ap_apb_gates 11>;
61+
clock-names = "i2c", "source", "enable";
62+
clock-frequency = <400000>;
63+
#address-cells = <1>;
64+
#size-cells = <0>;
65+
};
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/i2c/tsd,mule-i2c-mux.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Theobroma Systems Mule I2C multiplexer
8+
9+
maintainers:
10+
- Farouk Bouabid <farouk.bouabid@cherry.de>
11+
- Quentin Schulz <quentin.schulz@cherry.de>
12+
13+
description: |
14+
Theobroma Systems Mule is an MCU that emulates a set of I2C devices, among
15+
which devices that are reachable through an I2C-mux. The devices on the mux
16+
can be selected by writing the appropriate device number to an I2C config
17+
register.
18+
19+
20+
+--------------------------------------------------+
21+
| Mule |
22+
0x18| +---------------+ |
23+
-------->|Config register|----+ |
24+
| +---------------+ | |
25+
| V_ |
26+
| | \ +--------+ |
27+
| | \-------->| dev #0 | |
28+
| | | +--------+ |
29+
0x6f| | M |-------->| dev #1 | |
30+
---------------------------->| U | +--------+ |
31+
| | X |-------->| dev #2 | |
32+
| | | +--------+ |
33+
| | /-------->| dev #3 | |
34+
| |__/ +--------+ |
35+
+--------------------------------------------------+
36+
37+
38+
allOf:
39+
- $ref: /schemas/i2c/i2c-mux.yaml#
40+
41+
properties:
42+
compatible:
43+
const: tsd,mule-i2c-mux
44+
45+
required:
46+
- compatible
47+
48+
unevaluatedProperties: false
49+
50+
examples:
51+
- |
52+
i2c-mux {
53+
compatible = "tsd,mule-i2c-mux";
54+
#address-cells = <1>;
55+
#size-cells = <0>;
56+
57+
i2c@0 {
58+
reg = <0x0>;
59+
#address-cells = <1>;
60+
#size-cells = <0>;
61+
62+
rtc@6f {
63+
compatible = "isil,isl1208";
64+
reg = <0x6f>;
65+
};
66+
};
67+
};
68+
...
69+

0 commit comments

Comments
 (0)