Skip to content

Commit

Permalink
Merge tag 'i2c-for-6.3-rc1' of git://git.kernel.org/pub/scm/linux/ker…
Browse files Browse the repository at this point in the history
…nel/git/wsa/linux

Pull i2c updates from Wolfram Sang:

 - new drivers for HPE GXP and Loongson 2K/LS7A

 - bigger refactorings for i801 and xiic

 - gpio driver gained ACPI and SDA-write only support

 - the core converted some OF helpers to fwnode helpers

 - usual bunch of driver updates

* tag 'i2c-for-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (52 commits)
  MAINTAINERS: Add HPE GXP I2C Support
  i2c: Add GXP SoC I2C Controller
  dt-bindings: i2c: Add hpe,gxp-i2c
  i2c: xiic: Remove some dead code
  i2c: xiic: Add SCL frequency configuration support
  i2c: xiic: Update compatible with new IP version
  dt-bindings: i2c: xiic: Add 'xlnx,axi-iic-2.1' to compatible
  i2c: i801: Call i801_check_post() from i801_access()
  i2c: i801: Call i801_check_pre() from i801_access()
  i2c: i801: Centralize configuring block commands in i801_block_transaction
  i2c: i801: Centralize configuring non-block commands in i801_simple_transaction
  i2c: i801: Handle SMBAUXCTL_E32B in i801_block_transaction_by_block only
  i2c: i801: Add i801_simple_transaction(), complementing i801_block_transaction()
  Documentation: i2c: correct spelling
  dt-bindings: i2c: i2c-st: convert to DT schema
  i2c: i801: add helper i801_set_hstadd()
  i2c: i801: make FEATURE_BLOCK_PROC dependent on FEATURE_BLOCK_BUFFER
  i2c: i801: make FEATURE_HOST_NOTIFY dependent on FEATURE_IRQ
  i2c: i801: improve interrupt handler
  i2c: st: use pm_sleep_ptr to avoid ifdef CONFIG_PM_SLEEP
  ...
  • Loading branch information
torvalds committed Feb 25, 2023
2 parents 39f0134 + e8444bb commit 008128c
Show file tree
Hide file tree
Showing 37 changed files with 2,128 additions and 396 deletions.
59 changes: 59 additions & 0 deletions Documentation/devicetree/bindings/i2c/hpe,gxp-i2c.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/hpe,gxp-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: HPE GXP SoC I2C Controller

maintainers:
- Nick Hawkins <[email protected]>

allOf:
- $ref: /schemas/i2c/i2c-controller.yaml#

properties:
compatible:
const: hpe,gxp-i2c

reg:
maxItems: 1

interrupts:
maxItems: 1

clock-frequency:
default: 100000

hpe,sysreg:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Phandle to the global status and enable interrupt registers shared
between each I2C engine controller instance. It enables the I2C
engine controller to act as both a master or slave by being able to
arm and respond to interrupts from its engine. Each bit in the
registers represent the respective bit position.

required:
- compatible
- reg
- interrupts

unevaluatedProperties: false

examples:
- |
i2c@2600 {
compatible = "hpe,gxp-i2c";
reg = <0x2500 0x70>;
interrupts = <9>;
#address-cells = <1>;
#size-cells = <0>;
hpe,sysreg = <&sysreg_system_controller>;
clock-frequency = <10000>;
eeprom@50 {
compatible = "atmel,24c128";
reg = <0x50>;
};
};
26 changes: 26 additions & 0 deletions Documentation/devicetree/bindings/i2c/i2c-gpio.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ properties:
open drain.
maxItems: 1

i2c-gpio,sda-output-only:
description: sda as output only
type: boolean

i2c-gpio,scl-output-only:
description: scl as output only
type: boolean
Expand Down Expand Up @@ -63,6 +67,28 @@ properties:
GPIO line used for SCL into open drain mode, and that something is not
the GPIO chip. It is essentially an inconsistency flag.

i2c-gpio,sda-has-no-pullup:
type: boolean
description: sda is used in a non-compliant way and has no pull-up.
Therefore disable open-drain. This property is mutually-exclusive
with i2c-gpio,sda-open-drain.

i2c-gpio,scl-has-no-pullup:
type: boolean
description: scl is used in a non-compliant way and has no pull-up.
Therefore disable open-drain. This property is mutually-exclusive
with i2c-gpio,scl-open-drain.

dependencies:
i2c-gpio,sda-has-no-pullup:
not:
required:
- i2c-gpio,sda-open-drain
i2c-gpio,scl-has-no-pullup:
not:
required:
- i2c-gpio,scl-open-drain

required:
- compatible
- sda-gpios
Expand Down
4 changes: 4 additions & 0 deletions Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ properties:
- mediatek,mt6797-i2c
- mediatek,mt7623-i2c
- const: mediatek,mt6577-i2c
- items:
- enum:
- mediatek,mt8365-i2c
- const: mediatek,mt8168-i2c
- items:
- enum:
- mediatek,mt8195-i2c
Expand Down
41 changes: 0 additions & 41 deletions Documentation/devicetree/bindings/i2c/i2c-st.txt

This file was deleted.

51 changes: 51 additions & 0 deletions Documentation/devicetree/bindings/i2c/loongson,ls2x-i2c.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/loongson,ls2x-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Loongson LS2X I2C Controller

maintainers:
- Binbin Zhou <[email protected]>

allOf:
- $ref: /schemas/i2c/i2c-controller.yaml#

properties:
compatible:
enum:
- loongson,ls2k-i2c
- loongson,ls7a-i2c

reg:
maxItems: 1

interrupts:
maxItems: 1

required:
- compatible
- reg
- interrupts

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c0: i2c@1fe21000 {
compatible = "loongson,ls2k-i2c";
reg = <0x1fe21000 0x8>;
interrupt-parent = <&extioiic>;
interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
#address-cells = <1>;
#size-cells = <0>;
eeprom@57 {
compatible = "atmel,24c16";
reg = <0x57>;
pagesize = <16>;
};
};
49 changes: 32 additions & 17 deletions Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,24 @@ maintainers:

properties:
compatible:
enum:
- qcom,msm8226-cci
- qcom,msm8916-cci
- qcom,msm8974-cci
- qcom,msm8996-cci
- qcom,sdm845-cci
- qcom,sm8250-cci
- qcom,sm8450-cci
oneOf:
- enum:
- qcom,msm8226-cci
- qcom,msm8974-cci
- qcom,msm8996-cci

- items:
- enum:
- qcom,msm8916-cci
- const: qcom,msm8226-cci # CCI v1

- items:
- enum:
- qcom,sdm845-cci
- qcom,sm6350-cci
- qcom,sm8250-cci
- qcom,sm8450-cci
- const: qcom,msm8996-cci # CCI v2

"#address-cells":
const: 1
Expand Down Expand Up @@ -88,10 +98,12 @@ allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8226-cci
- qcom,msm8974-cci
oneOf:
- contains:
enum:
- qcom,msm8974-cci

- const: qcom,msm8226-cci
then:
properties:
clocks:
Expand All @@ -105,10 +117,12 @@ allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8916-cci
- qcom,msm8996-cci
oneOf:
- contains:
enum:
- qcom,msm8916-cci

- const: qcom,msm8996-cci
then:
properties:
clocks:
Expand All @@ -126,6 +140,7 @@ allOf:
contains:
enum:
- qcom,sdm845-cci
- qcom,sm6350-cci
then:
properties:
clocks:
Expand Down Expand Up @@ -169,7 +184,7 @@ examples:
cci@ac4a000 {
reg = <0x0ac4a000 0x4000>;
compatible = "qcom,sdm845-cci";
compatible = "qcom,sdm845-cci", "qcom,msm8996-cci";
#address-cells = <1>;
#size-cells = <0>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ properties:
minimum: 100000
maximum: 400000

resets:
maxItems: 1

required:
- compatible
- reg
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ properties:
minimum: 100000
maximum: 400000

resets:
maxItems: 1

required:
- compatible
- reg
Expand Down
71 changes: 71 additions & 0 deletions Documentation/devicetree/bindings/i2c/st,sti-i2c.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/st,sti-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: I2C controller embedded in STMicroelectronics STi platform

maintainers:
- Patrice Chotard <[email protected]>

allOf:
- $ref: /schemas/i2c/i2c-controller.yaml#

properties:
compatible:
enum:
- st,comms-ssc-i2c
- st,comms-ssc4-i2c

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
maxItems: 1

clock-names:
maxItems: 1

clock-frequency:
enum: [ 100000, 400000 ]
default: 100000

st,i2c-min-scl-pulse-width-us:
description:
The minimum valid SCL pulse width that is allowed through the
deglitch circuit. In units of us.

st,i2c-min-sda-pulse-width-us:
description:
The minimum valid SDA pulse width that is allowed through the
deglitch circuit. In units of us.

required:
- compatible
- reg
- interrupts
- clocks
- clock-names

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/stih407-clks.h>
i2c@fed40000 {
compatible = "st,comms-ssc4-i2c";
reg = <0xfed40000 0x110>;
interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk_s_a0_ls CLK_ICN_REG>;
clock-names = "ssc";
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0_default>;
st,i2c-min-scl-pulse-width-us = <0>;
st,i2c-min-sda-pulse-width-us = <5>;
};
Loading

0 comments on commit 008128c

Please sign in to comment.