Lines Matching defs:i2c_dev

44 	struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
55 dev_err(&i2c_dev->pdev->dev,
77 static void i2c_amd_start_cmd(struct amd_i2c_dev *i2c_dev)
79 struct amd_i2c_common *i2c_common = &i2c_dev->common;
81 reinit_completion(&i2c_dev->cmd_complete);
87 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
91 dev_dbg(&i2c_dev->pdev->dev, "readdata:%*ph\n", event->r.length,
94 complete(&i2c_dev->cmd_complete);
97 static int i2c_amd_check_cmd_completion(struct amd_i2c_dev *i2c_dev)
99 struct amd_i2c_common *i2c_common = &i2c_dev->common;
102 timeout = wait_for_completion_timeout(&i2c_dev->cmd_complete,
103 i2c_dev->adap.timeout);
123 static int i2c_amd_enable_set(struct amd_i2c_dev *i2c_dev, bool enable)
125 struct amd_i2c_common *i2c_common = &i2c_dev->common;
127 i2c_amd_start_cmd(i2c_dev);
130 return i2c_amd_check_cmd_completion(i2c_dev);
133 static int i2c_amd_xfer_msg(struct amd_i2c_dev *i2c_dev, struct i2c_msg *pmsg)
135 struct amd_i2c_common *i2c_common = &i2c_dev->common;
137 i2c_amd_start_cmd(i2c_dev);
149 return i2c_amd_check_cmd_completion(i2c_dev);
154 struct amd_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
160 if (unlikely(!i2c_dev->common.mp2_dev))
163 amd_mp2_pm_runtime_get(i2c_dev->common.mp2_dev);
167 err = i2c_amd_xfer_msg(i2c_dev, pmsg);
172 amd_mp2_pm_runtime_put(i2c_dev->common.mp2_dev);
189 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
191 i2c_amd_enable_set(i2c_dev, false);
197 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
199 return i2c_amd_enable_set(i2c_dev, true);
249 struct amd_i2c_dev *i2c_dev;
269 i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
270 if (!i2c_dev)
273 i2c_dev->common.bus_id = uid;
274 i2c_dev->common.mp2_dev = mp2_dev;
275 i2c_dev->pdev = pdev;
276 platform_set_drvdata(pdev, i2c_dev);
278 i2c_dev->common.cmd_completion = &i2c_amd_cmd_completion;
280 i2c_dev->common.suspend = &i2c_amd_suspend;
281 i2c_dev->common.resume = &i2c_amd_resume;
287 i2c_dev->common.reqcmd = i2c_none;
288 if (amd_mp2_register_cb(&i2c_dev->common))
290 device_link_add(&i2c_dev->pdev->dev, &mp2_dev->pci_dev->dev,
293 i2c_dev->common.i2c_speed = i2c_amd_get_bus_speed(pdev);
296 i2c_dev->adap.owner = THIS_MODULE;
297 i2c_dev->adap.algo = &i2c_amd_algorithm;
298 i2c_dev->adap.quirks = &amd_i2c_dev_quirks;
299 i2c_dev->adap.dev.parent = &pdev->dev;
300 i2c_dev->adap.algo_data = i2c_dev;
301 i2c_dev->adap.timeout = AMD_I2C_TIMEOUT;
302 ACPI_COMPANION_SET(&i2c_dev->adap.dev, ACPI_COMPANION(&pdev->dev));
303 i2c_dev->adap.dev.of_node = pdev->dev.of_node;
304 snprintf(i2c_dev->adap.name, sizeof(i2c_dev->adap.name),
305 "AMD MP2 i2c bus %u", i2c_dev->common.bus_id);
306 i2c_set_adapdata(&i2c_dev->adap, i2c_dev);
308 init_completion(&i2c_dev->cmd_complete);
311 if (i2c_amd_enable_set(i2c_dev, true))
315 ret = i2c_add_adapter(&i2c_dev->adap);
327 struct amd_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
328 struct amd_i2c_common *i2c_common = &i2c_dev->common;
330 i2c_lock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
332 i2c_amd_enable_set(i2c_dev, false);
336 i2c_unlock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
338 i2c_del_adapter(&i2c_dev->adap);