[PATCH v5 2/2] i2c: New bus driver for the Qualcomm QUP I2C controller

Josh Cartwright joshc at codeaurora.org
Fri Mar 14 14:00:38 EDT 2014


On Thu, Mar 13, 2014 at 07:07:43PM -0700, Bjorn Andersson wrote:
> This bus driver supports the QUP i2c hardware controller in the Qualcomm SOCs.
> The Qualcomm Universal Peripheral Engine (QUP) is a general purpose data path
> engine with input/output FIFOs and an embedded i2c mini-core. The driver
> supports FIFO mode (for low bandwidth applications) and block mode (interrupt
> generated for each block-size data transfer).
> 
> Cc: Andy Gross <agross at codeaurora.org>
> Cc: Stephen Boyd <sboyd at codeaurora.org>
> Signed-off-by: Ivan T. Ivanov <iivanov at mm-sol.com>
> Signed-off-by: Bjorn Andersson <bjorn.andersson at sonymobile.com>
> +++ b/drivers/i2c/busses/i2c-qup.c
[..]
> +static int qup_i2c_xfer(struct i2c_adapter *adap,
> +			struct i2c_msg msgs[],
> +			int num)
> +{
> +	struct qup_i2c_dev *qup = i2c_get_adapdata(adap);
> +	int ret, idx;
> +
> +	ret = pm_runtime_get_sync(qup->dev);
> +	if (IS_ERR_VALUE(ret))
> +		goto out;

General i2c question: is there a reason why the core isn't responsible
for ensuring a device is not suspended before invoking ->master_xfer
(and smbus_xfer)?

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation



More information about the linux-arm-kernel mailing list