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, "%s readdata:%*ph\n",
95 complete(&i2c_dev->cmd_complete);
98 static int i2c_amd_check_cmd_completion(struct amd_i2c_dev *i2c_dev)
100 struct amd_i2c_common *i2c_common = &i2c_dev->common;
103 timeout = wait_for_completion_timeout(&i2c_dev->cmd_complete,
104 i2c_dev->adap.timeout);
124 static int i2c_amd_enable_set(struct amd_i2c_dev *i2c_dev, bool enable)
126 struct amd_i2c_common *i2c_common = &i2c_dev->common;
128 i2c_amd_start_cmd(i2c_dev);
131 return i2c_amd_check_cmd_completion(i2c_dev);
134 static int i2c_amd_xfer_msg(struct amd_i2c_dev *i2c_dev, struct i2c_msg *pmsg)
136 struct amd_i2c_common *i2c_common = &i2c_dev->common;
138 i2c_amd_start_cmd(i2c_dev);
150 return i2c_amd_check_cmd_completion(i2c_dev);
155 struct amd_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
161 if (unlikely(!i2c_dev->common.mp2_dev))
164 amd_mp2_pm_runtime_get(i2c_dev->common.mp2_dev);
168 err = i2c_amd_xfer_msg(i2c_dev, pmsg);
173 amd_mp2_pm_runtime_put(i2c_dev->common.mp2_dev);
190 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
192 i2c_amd_enable_set(i2c_dev, false);
198 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
200 return i2c_amd_enable_set(i2c_dev, true);
249 struct amd_i2c_dev *i2c_dev;
267 i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
268 if (!i2c_dev)
271 i2c_dev->common.mp2_dev = mp2_dev;
272 i2c_dev->pdev = pdev;
273 platform_set_drvdata(pdev, i2c_dev);
275 i2c_dev->common.cmd_completion = &i2c_amd_cmd_completion;
277 i2c_dev->common.suspend = &i2c_amd_suspend;
278 i2c_dev->common.resume = &i2c_amd_resume;
286 i2c_dev->common.bus_id = 0;
288 i2c_dev->common.bus_id = 1;
293 dev_dbg(&pdev->dev, "bus id is %u\n", i2c_dev->common.bus_id);
298 i2c_dev->common.reqcmd = i2c_none;
299 if (amd_mp2_register_cb(&i2c_dev->common))
301 device_link_add(&i2c_dev->pdev->dev, &mp2_dev->pci_dev->dev,
304 i2c_dev->common.i2c_speed = i2c_amd_get_bus_speed(pdev);
307 i2c_dev->adap.owner = THIS_MODULE;
308 i2c_dev->adap.algo = &i2c_amd_algorithm;
309 i2c_dev->adap.quirks = &amd_i2c_dev_quirks;
310 i2c_dev->adap.dev.parent = &pdev->dev;
311 i2c_dev->adap.algo_data = i2c_dev;
312 i2c_dev->adap.timeout = AMD_I2C_TIMEOUT;
313 ACPI_COMPANION_SET(&i2c_dev->adap.dev, ACPI_COMPANION(&pdev->dev));
314 i2c_dev->adap.dev.of_node = pdev->dev.of_node;
315 snprintf(i2c_dev->adap.name, sizeof(i2c_dev->adap.name),
316 "AMD MP2 i2c bus %u", i2c_dev->common.bus_id);
317 i2c_set_adapdata(&i2c_dev->adap, i2c_dev);
319 init_completion(&i2c_dev->cmd_complete);
322 if (i2c_amd_enable_set(i2c_dev, true))
326 ret = i2c_add_adapter(&i2c_dev->adap);
338 struct amd_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
339 struct amd_i2c_common *i2c_common = &i2c_dev->common;
341 i2c_lock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
343 i2c_amd_enable_set(i2c_dev, false);
347 i2c_unlock_bus(&i2c_dev->adap, I2C_LOCK_ROOT_ADAPTER);
349 i2c_del_adapter(&i2c_dev->adap);