aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-tegra.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index c01aeb864b5b..6d2100d6bc5d 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -154,6 +154,16 @@ enum msg_end_type {
154 * @clk_divisor_std_fast_mode: Clock divisor in standard/fast mode. It is 154 * @clk_divisor_std_fast_mode: Clock divisor in standard/fast mode. It is
155 * applicable if there is no fast clock source i.e. single clock 155 * applicable if there is no fast clock source i.e. single clock
156 * source. 156 * source.
157 * @clk_divisor_fast_plus_mode: Clock divisor in fast mode plus. It is
158 * applicable if there is no fast clock source (i.e. single
159 * clock source).
160 * @has_multi_master_mode: The I2C controller supports running in single-master
161 * or multi-master mode.
162 * @has_slcg_override_reg: The I2C controller supports a register that
163 * overrides the second level clock gating.
164 * @has_mst_fifo: The I2C controller contains the new MST FIFO interface that
165 * provides additional features and allows for longer messages to
166 * be transferred in one go.
157 */ 167 */
158struct tegra_i2c_hw_feature { 168struct tegra_i2c_hw_feature {
159 bool has_continue_xfer_support; 169 bool has_continue_xfer_support;
@@ -175,9 +185,11 @@ struct tegra_i2c_hw_feature {
175 * @adapter: core I2C layer adapter information 185 * @adapter: core I2C layer adapter information
176 * @div_clk: clock reference for div clock of I2C controller 186 * @div_clk: clock reference for div clock of I2C controller
177 * @fast_clk: clock reference for fast clock of I2C controller 187 * @fast_clk: clock reference for fast clock of I2C controller
188 * @rst: reset control for the I2C controller
178 * @base: ioremapped registers cookie 189 * @base: ioremapped registers cookie
179 * @cont_id: I2C controller ID, used for packet header 190 * @cont_id: I2C controller ID, used for packet header
180 * @irq: IRQ number of transfer complete interrupt 191 * @irq: IRQ number of transfer complete interrupt
192 * @irq_disabled: used to track whether or not the interrupt is enabled
181 * @is_dvc: identifies the DVC I2C controller, has a different register layout 193 * @is_dvc: identifies the DVC I2C controller, has a different register layout
182 * @msg_complete: transfer completion notifier 194 * @msg_complete: transfer completion notifier
183 * @msg_err: error code for completed message 195 * @msg_err: error code for completed message
@@ -185,6 +197,9 @@ struct tegra_i2c_hw_feature {
185 * @msg_buf_remaining: size of unsent data in the message buffer 197 * @msg_buf_remaining: size of unsent data in the message buffer
186 * @msg_read: identifies read transfers 198 * @msg_read: identifies read transfers
187 * @bus_clk_rate: current I2C bus clock rate 199 * @bus_clk_rate: current I2C bus clock rate
200 * @clk_divisor_non_hs_mode: clock divider for non-high-speed modes
201 * @is_multimaster_mode: track if I2C controller is in multi-master mode
202 * @xfer_lock: lock to serialize transfer submission and processing
188 */ 203 */
189struct tegra_i2c_dev { 204struct tegra_i2c_dev {
190 struct device *dev; 205 struct device *dev;