blob: 82ce93a15b3ccd6eb22a487d45a1e53e3be09e8b [file] [log] [blame]
# Copyright (c) 2022 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
description: Common fields for ITE it8xxx2 I2C
include: [i2c-controller.yaml, pinctrl-device.yaml]
properties:
reg:
required: true
interrupts:
required: true
port-num:
type: int
required: true
enum:
- 0
- 1
- 2
- 3
- 4
- 5
description: Ordinal identifying the port
0 = SMB_CHANNEL_A,
1 = SMB_CHANNEL_B,
2 = SMB_CHANNEL_C,
3 = I2C_CHANNEL_D,
4 = I2C_CHANNEL_E,
5 = I2C_CHANNEL_F,
channel-switch-sel:
type: int
required: true
enum:
- 0
- 1
- 2
- 3
- 4
- 5
description: |
The default setting is as described below
0 = I2C_CHA_LOCATE: Channel A is located at SMCLK0/SMDAT0
1 = I2C_CHB_LOCATE: Channel B is located at SMCLK1/SMDAT1
2 = I2C_CHC_LOCATE: Channel C is located at SMCLK2/SMDAT2
3 = I2C_CHD_LOCATE: Channel D is located at SMCLK3/SMDAT3
4 = I2C_CHE_LOCATE: Channel E is located at SMCLK4/SMDAT4
5 = I2C_CHF_LOCATE: Channel F is located at SMCLK5/SMDAT5
The following is an example of the 'channel-switch-sel' property
being swapped between node &i2c0 and &i2c2 in the application:
Note: The property of 'port-num' cannot be changed in the
application.
Channel C is located at SMCLK0/SMDAT0:
&i2c0 {
channel-switch-sel = <I2C_CHC_LOCATE>;
pinctrl-0 = <&i2c2_clk_gpf6_default
&i2c2_data_gpf7_default>;
pinctrl-names = "default";
scl-gpios = <&gpiof 6 0>;
sda-gpios = <&gpiof 7 0>;
};
Channel A is located at SMCLK2/SMDAT2:
&i2c2 {
channel-switch-sel = <I2C_CHA_LOCATE>;
pinctrl-0 = <&i2c0_clk_gpb3_default
&i2c0_data_gpb4_default>;
pinctrl-names = "default";
scl-gpios = <&gpiob 3 0>;
sda-gpios = <&gpiob 4 0>;
};
If the property of 'channel-switch-sel' is changed, the pinctrl
setting and recovery pin in &i2c0 and &i2c2 nodes must also be
modified accordingly.
scl-gpios:
type: phandle-array
required: true
description: |
The SCL pin for the selected port.
sda-gpios:
type: phandle-array
required: true
description: |
The SDA pin for the selected port.
clock-gate-offset:
type: int
required: true
description: |
The clock gate offsets combine the register offset from
ECPM_BASE and the mask within that register into one value.
transfer-timeout-ms:
type: int
default: 100
description: |
Maximum time allowed for an I2C transfer.
pinctrl-0:
required: true
pinctrl-names:
required: true
push-pull-recovery:
type: boolean
description: |
This property is enabled when selecting the push-pull GPIO output
type to drive the I2C recovery. The default is open-drain.