| # 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. |