Skip to content

Commit 28a1b05

Browse files
committed
Merge tag 'i2c-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang: "i2c-core updates (collected by Wolfram): - remove last user and unexport i2c_of_match_device() - irq usage cleanup from Jiri i2c-host updates (collected by Andi): Refactoring and cleanups: - octeon, cadence, i801, pasemi, mlxbf, bcm-iproc: general refactorings - octeon: remove 10-bit address support Improvements: - amd-asf: improved error handling - designware: use guard(mutex) - amd-asf, designware: update naming to follow latest specs - cadence: fix cleanup path in probe - i801: use MMIO and I/O mapping helpers to access registers - pxa: handle error after clk_prepare_enable New features: - added i2c_10bit_addr_*_from_msg() and updated multiple drivers - omap: added multiplexer state handling - qcom-geni: update frequency configuration - qup: introduce DMA usage policy New hardware support: - exynos: add support for Samsung exynos7870 - k1: add support for spacemit k1 (new driver) - imx: add support for i.mx94 lpi2c - rk3x: add support for rk3562 - designware: add support for Renesas RZ/N1D Multiplexers: - ltc4306, reg: fix assignment in platform_driver structure at24 eeprom updates (collected by Bartosz): - add two new compatible entries to the DT binding document - drop of_match_ptr() and ACPI_PTR() macros" * tag 'i2c-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (50 commits) dt-bindings: i2c: snps,designware-i2c: describe Renesas RZ/N1D variant irqdomain: i2c: Switch to irq_find_mapping() i2c: iproc: Refactor prototype and remove redundant error checks i2c: qcom-geni: Update i2c frequency table to match hardware guidance i2c: mlxbf: Use readl_poll_timeout_atomic() for polling i2c: pasemi: Add registers bits and switch to BIT() i2c: k1: Initialize variable before use i2c: spacemit: add support for SpacemiT K1 SoC dt-bindings: i2c: spacemit: add support for K1 SoC i2c: omap: Add support for setting mux dt-bindings: i2c: omap: Add mux-states property i2c: octeon: remove 10-bit addressing support i2c: octeon: fix return commenting i2c: i801: Use MMIO if available i2c: i801: Switch to iomapped register access i2c: i801: Improve too small kill wait time in i801_check_post i2c: i801: Move i801_wait_intr and i801_wait_byte_done in the code i2c: i801: Cosmetic improvements i2c: cadence: Move reset_control_assert after pm_runtime_set_suspended in probe error path i2c: cadence: Simplify using devm_clk_get_enabled() ...
2 parents 91e5bfe + 3139662 commit 28a1b05

Some content is hidden

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

43 files changed

+1115
-464
lines changed

Documentation/devicetree/bindings/eeprom/at24.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,13 @@ properties:
130130
- const: giantec,gt24c32a
131131
- const: atmel,24c32
132132
- items:
133-
- const: onnn,n24s64b
133+
- enum:
134+
- onnn,n24s64b
135+
- puya,p24c64f
134136
- const: atmel,24c64
135137
- items:
136138
- enum:
139+
- giantec,gt24p128e
137140
- giantec,gt24p128f
138141
- renesas,r1ex24128
139142
- samsung,s524ad0xd1

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ properties:
3030
- items:
3131
- enum:
3232
- samsung,exynos5433-hsi2c
33+
- samsung,exynos7870-hsi2c
3334
- tesla,fsd-hsi2c
3435
- const: samsung,exynos7-hsi2c
3536
- items:

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ properties:
2626
- fsl,imx8qm-lpi2c
2727
- fsl,imx8ulp-lpi2c
2828
- fsl,imx93-lpi2c
29+
- fsl,imx94-lpi2c
2930
- fsl,imx95-lpi2c
3031
- const: fsl,imx7ulp-lpi2c
3132

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ properties:
3737
- rockchip,px30-i2c
3838
- rockchip,rk3308-i2c
3939
- rockchip,rk3328-i2c
40+
- rockchip,rk3562-i2c
4041
- rockchip,rk3568-i2c
4142
- rockchip,rk3576-i2c
4243
- rockchip,rk3588-i2c

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ properties:
4040
- const: tx
4141
- const: rx
4242

43+
interconnects:
44+
maxItems: 1
45+
4346
interrupts:
4447
maxItems: 1
4548

@@ -52,9 +55,15 @@ properties:
5255
- const: default
5356
- const: sleep
5457

58+
power-domains:
59+
maxItems: 1
60+
5561
reg:
5662
maxItems: 1
5763

64+
required-opps:
65+
maxItems: 1
66+
5867
required:
5968
- compatible
6069
- clock-names
@@ -67,7 +76,9 @@ unevaluatedProperties: false
6776
examples:
6877
- |
6978
#include <dt-bindings/clock/qcom,gcc-msm8998.h>
79+
#include <dt-bindings/interconnect/qcom,msm8996.h>
7080
#include <dt-bindings/interrupt-controller/arm-gic.h>
81+
#include <dt-bindings/power/qcom-rpmpd.h>
7182
7283
i2c@c175000 {
7384
compatible = "qcom,i2c-qup-v2.2.1";
@@ -82,6 +93,9 @@ examples:
8293
pinctrl-names = "default", "sleep";
8394
pinctrl-0 = <&blsp1_i2c1_default>;
8495
pinctrl-1 = <&blsp1_i2c1_sleep>;
96+
power-domains = <&rpmpd MSM8909_VDDCX>;
97+
required-opps = <&rpmpd_opp_svs_krait>;
98+
interconnects = <&pnoc MASTER_BLSP_1 &bimc SLAVE_EBI_CH0>;
8599
clock-frequency = <400000>;
86100
87101
#address-cells = <1>;

Documentation/devicetree/bindings/i2c/samsung,s3c2410-i2c.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ properties:
2222
- samsung,exynos5-sata-phy-i2c
2323
- items:
2424
- enum:
25+
- samsung,exynos7870-i2c
2526
- samsung,exynos7885-i2c
2627
- samsung,exynos850-i2c
2728
- const: samsung,s3c2440-i2c

Documentation/devicetree/bindings/i2c/snps,designware-i2c.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ properties:
2727
oneOf:
2828
- description: Generic Synopsys DesignWare I2C controller
2929
const: snps,designware-i2c
30+
- description: Renesas RZ/N1D I2C controller
31+
items:
32+
- const: renesas,r9a06g032-i2c # RZ/N1D
33+
- const: renesas,rzn1-i2c # RZ/N1
34+
- const: snps,designware-i2c
3035
- description: Microsemi Ocelot SoCs I2C controller
3136
items:
3237
- const: mscc,ocelot-i2c
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/i2c/spacemit,k1-i2c.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: I2C controller embedded in SpacemiT's K1 SoC
8+
9+
maintainers:
10+
- Troy Mitchell <troymitchell988@gmail.com>
11+
12+
properties:
13+
compatible:
14+
const: spacemit,k1-i2c
15+
16+
reg:
17+
maxItems: 1
18+
19+
interrupts:
20+
maxItems: 1
21+
22+
clocks:
23+
items:
24+
- description: I2C Functional Clock
25+
- description: APB Bus Clock
26+
27+
clock-names:
28+
items:
29+
- const: func
30+
- const: bus
31+
32+
clock-frequency:
33+
description: |
34+
K1 support three different modes which running different frequencies
35+
standard speed mode: up to 100000 (100Hz)
36+
fast speed mode : up to 400000 (400Hz)
37+
high speed mode : up to 3300000 (3.3Mhz)
38+
default: 400000
39+
maximum: 3300000
40+
41+
required:
42+
- compatible
43+
- reg
44+
- interrupts
45+
- clocks
46+
47+
unevaluatedProperties: false
48+
49+
examples:
50+
- |
51+
i2c@d4010800 {
52+
compatible = "spacemit,k1-i2c";
53+
reg = <0xd4010800 0x38>;
54+
interrupt-parent = <&plic>;
55+
interrupts = <36>;
56+
clocks =<&ccu 32>, <&ccu 84>;
57+
clock-names = "func", "bus";
58+
clock-frequency = <100000>;
59+
};
60+
61+
...

Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ properties:
4747
$ref: /schemas/types.yaml#/definitions/string
4848
deprecated: true
4949

50+
mux-states:
51+
description:
52+
mux controller node to route the I2C signals from SoC to clients.
53+
maxItems: 1
54+
5055
required:
5156
- compatible
5257
- reg
@@ -87,4 +92,5 @@ examples:
8792
interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
8893
#address-cells = <1>;
8994
#size-cells = <0>;
95+
mux-states = <&i2c_mux 1>;
9096
};

drivers/i2c/busses/Kconfig

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,23 @@ config I2C_JZ4780
783783

784784
If you don't know what to do here, say N.
785785

786+
config I2C_K1
787+
tristate "SpacemiT K1 I2C adapter"
788+
depends on ARCH_SPACEMIT || COMPILE_TEST
789+
depends on OF
790+
help
791+
This option enables support for the I2C interface on the SpacemiT K1
792+
platform.
793+
794+
If you enable this configuration, the kernel will include support for
795+
the I2C adapter specific to the SpacemiT K1 platform. This driver can
796+
be used to manage I2C bus transactions, which are necessary for
797+
interfacing with I2C peripherals such as sensors, EEPROMs, and other
798+
devices.
799+
800+
This driver can also be built as a module. If so, the
801+
module will be called `i2c-k1`.
802+
786803
config I2C_KEBA
787804
tristate "KEBA I2C controller support"
788805
depends on HAS_IOMEM
@@ -940,6 +957,7 @@ config I2C_OMAP
940957
tristate "OMAP I2C adapter"
941958
depends on ARCH_OMAP || ARCH_K3 || COMPILE_TEST
942959
default MACH_OMAP_OSK
960+
select MULTIPLEXER
943961
help
944962
If you say yes to this option, support will be included for the
945963
I2C interface on the Texas Instruments OMAP1/2 family of processors.

0 commit comments

Comments
 (0)