/* * An empty algorithm is used as the actual I2C bus controller driver * is implemented in the FIMC-IS subsystem firmware and the host CPU * doesn't access the I2C bus controller.
*/ static u32 is_i2c_func(struct i2c_adapter *adap)
{ return I2C_FUNC_I2C;
}
isp_i2c = devm_kzalloc(&pdev->dev, sizeof(*isp_i2c), GFP_KERNEL); if (!isp_i2c) return -ENOMEM;
isp_i2c->clock = devm_clk_get(&pdev->dev, "i2c_isp"); if (IS_ERR(isp_i2c->clock)) {
dev_err(&pdev->dev, "failed to get the clock\n"); return PTR_ERR(isp_i2c->clock);
}
ret = i2c_add_adapter(i2c_adap); if (ret < 0) goto err_pm_dis; /* * Client drivers of this adapter don't do any I2C transfers as that * is handled by the ISP firmware. But we rely on the runtime PM * state propagation from the clients up to the adapter driver so * clear the ignore_children flags here. PM rutnime calls are not * used in probe() handler of clients of this adapter so there is * no issues with clearing the flag right after registering the I2C * adapter.
*/
pm_suspend_ignore_children(&i2c_adap->dev, false); return 0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.