Skip to content

Commit 112450d

Browse files
committed
Merge branch 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang: "Mostly driver updates and refactorization. The removal of the XLR driver and the i801 refactoring stand out a little. In the core, we enabled async suspend/resume for I2C controllers and their clients. No issues were reported during the test phase in -next. We will see how this goes for mainline" * 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (54 commits) i2c: sh_mobile: remove unneeded semicolon i2c: riic: Use platform_get_irq() to get the interrupt i2c: sh_mobile: Use platform_get_irq_optional() to get the interrupt i2c: bcm2835: Use platform_get_irq() to get the interrupt i2c: aspeed: Remove unused includes dt-bindings: i2c: aspeed: Drop stray '#interrupt-cells' i2c: sh_mobile: update to new DMAENGINE API when terminating i2c: rcar: update to new DMAENGINE API when terminating i2c: exynos5: Fix getting the optional clock i2c: designware-pci: Convert to use dev_err_probe() i2c: designware-pci: use __maybe_unused for PM functions i2c: designware-pci: Group MODULE_*() macros i2c: designware-pci: Add a note about struct dw_scl_sda_cfg usage i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters i2c: designware: Do not complete i2c read without RX_FULL interrupt eeprom: at24: Add support for 24c1025 EEPROM dt-bindings: at24: add at24c1025 i2c: tegra: use i2c_timings for bus clock freq dt-bindings: at24: Rework special case compatible handling i2c: i801: Don't clear status flags twice in interrupt mode ...
2 parents 3bad80d + bf3c39f commit 112450d

29 files changed

+677
-1020
lines changed

Documentation/devicetree/bindings/eeprom/at24.yaml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ properties:
8686
pattern: c1024$
8787
- items:
8888
pattern: cs1024$
89+
- items:
90+
pattern: c1025$
91+
- items:
92+
pattern: cs1025$
8993
- items:
9094
pattern: c2048$
9195
- items:
@@ -95,17 +99,20 @@ properties:
9599
# These are special cases that don't conform to the above pattern.
96100
# Each requires a standard at24 model as fallback.
97101
- items:
98-
- const: nxp,se97b
99-
- const: atmel,24c02
102+
- enum:
103+
- rohm,br24g01
104+
- rohm,br24t01
105+
- const: atmel,24c01
100106
- items:
101-
- const: onnn,cat24c04
102-
- const: atmel,24c04
107+
- enum:
108+
- nxp,se97b
109+
- renesas,r1ex24002
110+
- const: atmel,24c02
103111
- items:
104-
- const: onnn,cat24c05
112+
- enum:
113+
- onnn,cat24c04
114+
- onnn,cat24c05
105115
- const: atmel,24c04
106-
- items:
107-
- const: renesas,r1ex24002
108-
- const: atmel,24c02
109116
- items:
110117
- const: renesas,r1ex24016
111118
- const: atmel,24c16
@@ -115,12 +122,6 @@ properties:
115122
- items:
116123
- const: renesas,r1ex24128
117124
- const: atmel,24c128
118-
- items:
119-
- const: rohm,br24g01
120-
- const: atmel,24c01
121-
- items:
122-
- const: rohm,br24t01
123-
- const: atmel,24c01
124125

125126
label:
126127
description: Descriptive name of the EEPROM.

Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/i2c/brcm,bcm2835-i2c.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom BCM2835 I2C controller
8+
9+
maintainers:
10+
- Stephen Warren <[email protected]>
11+
12+
allOf:
13+
- $ref: /schemas/i2c/i2c-controller.yaml#
14+
15+
properties:
16+
compatible:
17+
oneOf:
18+
- enum:
19+
- brcm,bcm2835-i2c
20+
- items:
21+
- const: brcm,bcm2711-i2c
22+
- const: brcm,bcm2835-i2c
23+
24+
reg:
25+
maxItems: 1
26+
27+
interrupts:
28+
maxItems: 1
29+
30+
clock-names:
31+
maxItems: 1
32+
33+
clocks:
34+
maxItems: 1
35+
36+
clock-frequency: true
37+
38+
required:
39+
- compatible
40+
- reg
41+
- interrupts
42+
- clocks
43+
44+
unevaluatedProperties: false
45+
46+
examples:
47+
- |
48+
i2c@7e205000 {
49+
compatible = "brcm,bcm2835-i2c";
50+
reg = <0x7e205000 0x1000>;
51+
interrupts = <2 21>;
52+
clocks = <&clk_i2c>;
53+
clock-frequency = <100000>;
54+
};

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

Lines changed: 0 additions & 53 deletions
This file was deleted.
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/i2c/i2c-exynos5.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Samsung's High Speed I2C controller
8+
9+
maintainers:
10+
- Krzysztof Kozlowski <[email protected]>
11+
12+
description: |
13+
The Samsung's High Speed I2C controller is used to interface with I2C devices
14+
at various speeds ranging from 100kHz to 3.4MHz.
15+
16+
In case the HSI2C controller is encapsulated within USI block (it's the case
17+
e.g. for Exynos850 and Exynos Auto V9 SoCs), it might be also necessary to
18+
define USI node in device tree file, choosing "i2c" configuration. Please see
19+
Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml for details.
20+
21+
properties:
22+
compatible:
23+
oneOf:
24+
- enum:
25+
- samsung,exynos5250-hsi2c # Exynos5250 and Exynos5420
26+
- samsung,exynos5260-hsi2c # Exynos5260
27+
- samsung,exynos7-hsi2c # Exynos7
28+
- samsung,exynosautov9-hsi2c # ExynosAutoV9 and Exynos850
29+
- const: samsung,exynos5-hsi2c # Exynos5250 and Exynos5420
30+
deprecated: true
31+
32+
reg:
33+
maxItems: 1
34+
35+
interrupts:
36+
maxItems: 1
37+
38+
clock-frequency:
39+
default: 100000
40+
description:
41+
Desired operating frequency in Hz of the bus.
42+
43+
If not specified, the bus operates in fast-speed mode at 100kHz.
44+
45+
If specified, the bus operates in high-speed mode only if the
46+
clock-frequency is >= 1MHz.
47+
48+
clocks:
49+
minItems: 1
50+
items:
51+
- description: I2C operating clock
52+
- description: Bus clock (APB)
53+
54+
clock-names:
55+
minItems: 1
56+
items:
57+
- const: hsi2c
58+
- const: hsi2c_pclk
59+
60+
required:
61+
- compatible
62+
- reg
63+
- interrupts
64+
- clocks
65+
66+
allOf:
67+
- $ref: /schemas/i2c/i2c-controller.yaml#
68+
- if:
69+
properties:
70+
compatible:
71+
contains:
72+
enum:
73+
- samsung,exynosautov9-hsi2c
74+
75+
then:
76+
properties:
77+
clocks:
78+
minItems: 2
79+
80+
clock-names:
81+
minItems: 2
82+
83+
required:
84+
- clock-names
85+
86+
else:
87+
properties:
88+
clocks:
89+
maxItems: 1
90+
91+
unevaluatedProperties: false
92+
93+
examples:
94+
- |
95+
#include <dt-bindings/clock/exynos5420.h>
96+
#include <dt-bindings/interrupt-controller/arm-gic.h>
97+
#include <dt-bindings/interrupt-controller/irq.h>
98+
99+
hsi2c_8: i2c@12e00000 {
100+
compatible = "samsung,exynos5250-hsi2c";
101+
reg = <0x12e00000 0x1000>;
102+
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
103+
#address-cells = <1>;
104+
#size-cells = <0>;
105+
clock-frequency = <100000>;
106+
clocks = <&clock CLK_USI4>;
107+
clock-names = "hsi2c";
108+
109+
pmic@66 {
110+
/* compatible = "samsung,s2mps11-pmic"; */
111+
reg = <0x66>;
112+
};
113+
};
114+
115+
- |
116+
#include <dt-bindings/clock/exynos850.h>
117+
#include <dt-bindings/interrupt-controller/arm-gic.h>
118+
119+
hsi2c_2: i2c@138c0000 {
120+
compatible = "samsung,exynosautov9-hsi2c";
121+
reg = <0x138c0000 0xc0>;
122+
interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
123+
#address-cells = <1>;
124+
#size-cells = <0>;
125+
clocks = <&cmu_peri CLK_GOUT_HSI2C2_IPCLK>,
126+
<&cmu_peri CLK_GOUT_HSI2C2_PCLK>;
127+
clock-names = "hsi2c", "hsi2c_pclk";
128+
129+
pmic@66 {
130+
/* compatible = "samsung,s2mps11-pmic"; */
131+
reg = <0x66>;
132+
};
133+
};

Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ properties:
2020
- items:
2121
- enum:
2222
- fsl,imx8qxp-lpi2c
23+
- fsl,imx8dxl-lpi2c
2324
- fsl,imx8qm-lpi2c
25+
- fsl,imx8ulp-lpi2c
2426
- const: fsl,imx7ulp-lpi2c
2527

2628
reg:

drivers/i2c/busses/Kconfig

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ config I2C_EXYNOS5
617617
help
618618
High-speed I2C controller on Samsung Exynos5 and newer Samsung SoCs:
619619
Exynos5250, Exynos5260, Exynos5410, Exynos542x, Exynos5800,
620-
Exynos5433 and Exynos7.
620+
Exynos5433, Exynos7, Exynos850 and ExynosAutoV9.
621621
Choose Y here only if you build for such Samsung SoC.
622622

623623
config I2C_GPIO
@@ -1153,22 +1153,12 @@ config I2C_XILINX
11531153
This driver can also be built as a module. If so, the module
11541154
will be called xilinx_i2c.
11551155

1156-
config I2C_XLR
1157-
tristate "Netlogic XLR I2C support"
1158-
depends on CPU_XLR || COMPILE_TEST
1159-
help
1160-
This driver enables support for the on-chip I2C interface of
1161-
the Netlogic XLR/XLS MIPS processors and Sigma Designs SOCs.
1162-
1163-
This driver can also be built as a module. If so, the module
1164-
will be called i2c-xlr.
1165-
11661156
config I2C_XLP9XX
1167-
tristate "XLP9XX I2C support"
1168-
depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST
1157+
tristate "Cavium ThunderX2 I2C support"
1158+
depends on ARCH_THUNDER2 || COMPILE_TEST
11691159
help
11701160
This driver enables support for the on-chip I2C interface of
1171-
the Broadcom XLP9xx/XLP5xx MIPS and Vulcan ARM64 processors.
1161+
the Cavium ThunderX2 processors. (Originally on Netlogic XLP SoCs.)
11721162

11731163
This driver can also be built as a module. If so, the module will
11741164
be called i2c-xlp9xx.

drivers/i2c/busses/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ obj-$(CONFIG_I2C_OCTEON) += i2c-octeon.o
119119
i2c-thunderx-objs := i2c-octeon-core.o i2c-thunderx-pcidrv.o
120120
obj-$(CONFIG_I2C_THUNDERX) += i2c-thunderx.o
121121
obj-$(CONFIG_I2C_XILINX) += i2c-xiic.o
122-
obj-$(CONFIG_I2C_XLR) += i2c-xlr.o
123122
obj-$(CONFIG_I2C_XLP9XX) += i2c-xlp9xx.o
124123
obj-$(CONFIG_I2C_RCAR) += i2c-rcar.o
125124

drivers/i2c/busses/i2c-aspeed.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
#include <linux/interrupt.h>
1717
#include <linux/io.h>
1818
#include <linux/irq.h>
19-
#include <linux/irqchip/chained_irq.h>
20-
#include <linux/irqdomain.h>
2119
#include <linux/kernel.h>
2220
#include <linux/module.h>
2321
#include <linux/of_address.h>

0 commit comments

Comments
 (0)