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