From nobody Sun Feb 8 10:49:12 2026 Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B85AE2FF160 for ; Mon, 26 Jan 2026 08:34:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769416501; cv=none; b=RpX0V8aFvJgJLA5RM57+mk59JwiupNr3tVWbhAVpDn15sQcczQhnDl+fe4TLW4ifQ0FctNolLEyf/oEW9EEAPzSTAxvQzQ90qgWm2SO2+D66DBILY3rFWH8NcAtZPfufXJDurHy60dDEBIS3bx5DHKwAO+3ySSUQ3PaVsf8rJxo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769416501; c=relaxed/simple; bh=WetwTv/gE9hDzyiDgeSR/dlD0Nq3TSfAShxuiBzoubA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iQxEw9iEBIbWtFjWe7EuhLTpS/ulZn/ABp7RvIyE82XI37QceqGnHthEfmYf8PJd9KR32FPRrXoQh7y2FNZOpZYP4oJ2cY2nUSaNiO9Dn0eCDdZR+b2CWE4oy+gV+1kXeANgo6qU6JUYCq0iCQr7+g8TryI1CRVgPCnqDRqqSiU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=S7rOk2+W; arc=none smtp.client-ip=209.85.128.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="S7rOk2+W" Received: by mail-wm1-f65.google.com with SMTP id 5b1f17b1804b1-47ee0291921so35357315e9.3 for ; Mon, 26 Jan 2026 00:34:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769416497; x=1770021297; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iUhIFLt7fdh82+bznl5jQLR0CqJfuMYxPz0sWyNQXoQ=; b=S7rOk2+WBbYJ8ysojxZvKdi1puqhwDP5ElJIq/6eJP4V5UXfdyOhMh8jq6iBmB8ahy UkM6afVWe0cmsZhpPeg9dUuwhs/uOA4QW2pgKOQTjaMP2T81C0UDngJdFoXBcWxq6yxS TU18ZI4mN2iBYqWnSjun9ciJE6TcwC3goV1gt7XbeUxIGYmOsfFIHYPoUSZaqaVhCKEi LP2C6qIQ8QKfqrhZ7rUIMiWO7U7R1SS2wxz70incTRRE6UEFzNzVdJS/jm8Lg6csz3bF N3jvdNsvlpf9aht6jOPAgH8Q0qksP3Ntyp0KX166luwMc4xHCvOsqz2e+TF5svdU/3Ek Z3Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769416497; x=1770021297; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=iUhIFLt7fdh82+bznl5jQLR0CqJfuMYxPz0sWyNQXoQ=; b=DQM6nnU7BLjIIowXviq3BUj9WLcs2pK/oWCTzmSw9asO6lBlVNwSx4wmWG0DHgfG/b ydBp8ABoo37Nx1JG/61yjQ0m3TyRxecjqtz3LO5QaoA/a5rREqjXLVy7nj3ZiKizP1Uk 8OinAl/fVJcwRaMvpDQPHLGU1b8b8nY3znmZeDpqc6tKFtviHFplqaShP3daYUVtxYOU 8LVu5CHqAdA27MAVobzZXKC1Y4jwDttZL00A6jKwIHUaxfYom546rWwoP3pEoNAyCyXH Qg+uPbkuEROB2PfRSTpruObyYIwvrMkoAxIjqJlvZRSHy1X/mBb+ptvo2zqhVh8Xanzf YK7w== X-Forwarded-Encrypted: i=1; AJvYcCVl5VNmCrHoThcMJvlhsDkshdZCJtS8v+kZsrPMarM/Y2iYlsv7pwOiQeAGThTBmntK4HI4b+l2HcssYEY=@vger.kernel.org X-Gm-Message-State: AOJu0YxxFMgBNmHEgdeI4KcpD/JwTPXekmMjeOsWdrtNi0WivKrwDonx GHm+zRqKWlmfQWN8//xUN+ai8thp2JQnlLD4EOpgdSTNmn/nO56Wp8US X-Gm-Gg: AZuq6aKU/qhjdk5PRXubhzR3L7C0ecuVdx8hZV7aDOuh/m84KPLPZ9COZgIZB0jKvYj VcBXjxBq/BWE6CVghoT/cvl91mpBVcW7i0+wULEaM5j7LIS9kVuCuxjTzmmuMTRLjj1Px8cMkEP uOljVetezMBrpVL0rht4stiMc2s+e+1ZJ0YOJgghAI5jXw4ipdKIEKRwIpP8Xp+RFxFN/zhDEk3 1e7AoATFSBF24S3X6sInchD/O1HNJTso3uSJumPIZ4GMhHeh25JueQadSy56xjr2YcQCnBo1bEA A+Dlh9Hjkj1VP2yiTqyZoSH9XpDQlmxHbZVt0cCuASug7FRuvwcFK+j8cvfkUIwe0nmF2Qwk8Vl zr1qojjvkcosC7LV7rpepsJscHiFX4uBSTti2cP3D9ihSFSfbBc9aczPVsTZLpuMCpHUWUyesJV IV X-Received: by 2002:a05:600c:b8a:b0:471:114e:5894 with SMTP id 5b1f17b1804b1-4805cf67f4amr61653695e9.25.1769416497395; Mon, 26 Jan 2026 00:34:57 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4804d3b4625sm102096275e9.0.2026.01.26.00.34.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jan 2026 00:34:57 -0800 (PST) From: Svyatoslav Ryhel To: Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sakari Ailus , Svyatoslav Ryhel Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 1/2] dt-bindings: media: mt9m114: document MI1040 sensor Date: Mon, 26 Jan 2026 10:34:29 +0200 Message-ID: <20260126083430.8247-2-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260126083430.8247-1-clamor95@gmail.com> References: <20260126083430.8247-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Aptina MI1040 is a slightly different version of the MT9M114 camera module. It is used in several devices, such as the ASUS Nexus 7 (2012) and the ASUS Transformer Prime TF201. The compatible "onnn,mt9m114" is placed first in the enum, as it is considered the default compatible value. Signed-off-by: Svyatoslav Ryhel Acked-by: Conor Dooley --- Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml = b/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml index a89f740214f7..7c0a50759f4d 100644 --- a/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml +++ b/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml @@ -17,7 +17,9 @@ description: |- =20 properties: compatible: - const: onnn,mt9m114 + enum: + - onnn,mt9m114 + - aptina,mi1040 =20 reg: description: I2C device address --=20 2.51.0 From nobody Sun Feb 8 10:49:12 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EFBB2F8BC3 for ; Mon, 26 Jan 2026 08:35:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769416502; cv=none; b=fuoiILr1VksFOvhgNWRiqhAo2CImtUnizUQmRrc9hXLmTlZ27zSLXT36XTClId6DvMeeQlNUqjEZBGtCQOYhJr4s6VQd0ItLFYdL+yh+c59Kalk6lcnEMmvqyL0oFjiEHdXJRmgsJNpzZtXbIPfH1TDNwkmZa2/veWrzKGZdWEY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769416502; c=relaxed/simple; bh=UAvK1cP8UALNlQMx+3Eu3/blR2h64Cv9rSl8aXH7RGs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jTcf5EEn4hWVU/015b0Wg8Lx+gpySCQdoWdB5ni/qds++sxB+QQ9toOZJIgKJvXAUYhcehaM5XAqFmI1BX4wqfpCLHEzko+F8kY7brxKW5i1hIU5wJaYFkQXzozPb5W8ebK4LGxoE/mkf3NCFv2onbL8iMoCWVlieI8c/BLD/xo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ni4Lx2Zh; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ni4Lx2Zh" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-47ee76e8656so61907875e9.0 for ; Mon, 26 Jan 2026 00:35:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769416499; x=1770021299; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0j7Wk2+zTP3lwV5pf9yVtwWP2p1dijs/jg4mreCnL80=; b=Ni4Lx2ZhgYy8f8tjwbE2gXCYcOF/8uevZMCEivET8mhA4iNYYjt77QP3mgUIx9Hvh1 x+/I2vdls4qvIjylUmKOOdEbeKGe5zfZdf+txJMcIFpx39UlZz5TADtEr43USHzSfekB gllF5Zx9nevM9Pg/YBPhMHmhPjUVQgchZAZIdf1i9kqaYbvGuSVs1/RjjJ6hNhwZeGEH sW6sprdVTl/8Eu6vCFNq++f703bvdrpLy2aTWKzlwmqAw8y8WJ7iwMHxK0aHdR5p/7X+ GbGtQv3p+g5TRUefr6AzRWLMzqEmxklqVmZuCZ9LJim1YZh26Vn63D/EMcU8dIPLLRZN HpFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769416499; x=1770021299; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0j7Wk2+zTP3lwV5pf9yVtwWP2p1dijs/jg4mreCnL80=; b=VlCUkZs26oBPY+r8w1emOAjrjEv5xiXAIwMES3/nSWMdDm7fYaoI18PovDpYEX/iQk WlQwi7BJbVrXikz8UUgwKgDez98aF7gTJ6ZjIAptxLE6gGeJKs8qPE4rJX+oXxL7Yri3 PkKbYO6cD47WwGAv4pw0kh5+PLzj1UxH+MVOq02PyHHX2Lk7GaAezUTyLQ1Y8WMRvhOi kIq1SxYJrTif348vT5CrpiWd9BqyXlcSIBa+C/FFmemK6WIg8BPcMWNRjnrecWi4hQrY 5qsjADUYDnJF9J+Nh0HHiGUFhXOrhTwet/4GX0M532gSOuA7FTa0cG7JducitKUR7awn +Kmw== X-Forwarded-Encrypted: i=1; AJvYcCW7gV5bkBOBdhw3+mUj9Xgo9l7tPkgO2pS3XaQ6reTFvFrhDPRciNA0UT5TwY7pqV54bvFzYQgEqFa+bzM=@vger.kernel.org X-Gm-Message-State: AOJu0YwFgLQM0n86Tk6YgGqJ0SDI3Qryptsc9/QfGZY8DDlrF5ShMpwq 51g6AdR01OF8LLDWVEhV9+Kgwc5UmvOwCUW+Qp2udWDqgdSVtTnNH08K X-Gm-Gg: AZuq6aKGWPX0MFWkSY6gnhXUgd6AoJ128fNP97QLZr/VLUAHaV1ig+8o7UdH2xXRDX+ og9Tcy3+ln1Icq259aHfxLiRJP59kDCIE5SGl/PmMzP9iRcxKGuiOVErCKM2vm4TMs79OpJGhX5 tqWZh/XFxNxp3H0Jtf4aAb8RkC7ujNFHoaKKt9XevdfkG/0BD/kXIYaMzr/t7xQ+Z5dAxXmUNAx km8vGHYhDwpAlF29MPiAkF8lfvRwcAq6mc/+WPegh4F/OlypqOytWCnrq/NyFzJBEa8W53jXCRZ QR+ix6VARkU7PX5/BLF8C+ZGzBsr4eSGwwMa/pvmXQ7XD13/ziVo1WrogxQ0QuV0aI36hnpg+MK +Yh+VHrN6gZEV3L4tDSGswjesmWsd3X1LGlDlSoz0Q5Ju7E8NlKEDAWnr6hLpIkIX4KTEyjTwsV Ex X-Received: by 2002:a05:600c:4584:b0:47e:e91d:73c0 with SMTP id 5b1f17b1804b1-48061934eefmr20850785e9.19.1769416498402; Mon, 26 Jan 2026 00:34:58 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4804d3b4625sm102096275e9.0.2026.01.26.00.34.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jan 2026 00:34:58 -0800 (PST) From: Svyatoslav Ryhel To: Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sakari Ailus , Svyatoslav Ryhel Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 2/2] media: i2c: mt9m114: add support for Aptina MI1040 Date: Mon, 26 Jan 2026 10:34:30 +0200 Message-ID: <20260126083430.8247-3-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260126083430.8247-1-clamor95@gmail.com> References: <20260126083430.8247-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Slightly different version of MT9M114 camera module is used in a several devices like ASUS Nexus 7 (2012) or ASUS Transformer Prime TF201 and is called Aptina MI1040. Only difference found so far is lacking ability to poll STATUS and COMMAND registers during power on sequence, which causes driver to fail with time out error. Add polling flag to diverge models and address quirk found in MI1040. Signed-off-by: Svyatoslav Ryhel --- drivers/media/i2c/mt9m114.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c index 4ec033c0ee84..d96a57ebcad4 100644 --- a/drivers/media/i2c/mt9m114.c +++ b/drivers/media/i2c/mt9m114.c @@ -368,6 +368,10 @@ enum { * Data Structures */ =20 +struct mt9m114_model_info { + bool polling; +}; + enum mt9m114_format_flag { MT9M114_FMT_FLAG_PARALLEL =3D BIT(0), MT9M114_FMT_FLAG_CSI2 =3D BIT(1), @@ -421,6 +425,8 @@ struct mt9m114 { =20 struct v4l2_ctrl *tpg[4]; } ifp; + + const struct mt9m114_model_info *info; }; =20 /* -----------------------------------------------------------------------= ------ @@ -2186,9 +2192,11 @@ static int mt9m114_power_on(struct mt9m114 *sensor) */ usleep_range(44500, 50000); =20 - ret =3D mt9m114_poll_command(sensor, MT9M114_COMMAND_REGISTER_SET_STATE); - if (ret < 0) - goto error_clock; + if (sensor->info->polling) { + ret =3D mt9m114_poll_command(sensor, MT9M114_COMMAND_REGISTER_SET_STATE); + if (ret < 0) + goto error_clock; + } =20 if (sensor->bus_cfg.bus_type =3D=3D V4L2_MBUS_PARALLEL) { /* @@ -2207,9 +2215,11 @@ static int mt9m114_power_on(struct mt9m114 *sensor) * reaches the standby mode (either initiated manually above in * parallel mode, or automatically after reset in MIPI mode). */ - ret =3D mt9m114_poll_state(sensor, MT9M114_SYS_STATE_STANDBY); - if (ret < 0) - goto error_clock; + if (sensor->info->polling) { + ret =3D mt9m114_poll_state(sensor, MT9M114_SYS_STATE_STANDBY); + if (ret < 0) + goto error_clock; + } =20 return 0; =20 @@ -2421,6 +2431,8 @@ static int mt9m114_probe(struct i2c_client *client) if (ret < 0) return ret; =20 + sensor->info =3D of_device_get_match_data(dev); + /* Acquire clocks, GPIOs and regulators. */ sensor->clk =3D devm_v4l2_sensor_clk_get(dev, NULL); if (IS_ERR(sensor->clk)) { @@ -2539,8 +2551,17 @@ static void mt9m114_remove(struct i2c_client *client) pm_runtime_set_suspended(dev); } =20 +static const struct mt9m114_model_info mt9m114_models_default =3D { + .polling =3D true, +}; + +static const struct mt9m114_model_info mt9m114_models_aptina =3D { + .polling =3D false, +}; + static const struct of_device_id mt9m114_of_ids[] =3D { - { .compatible =3D "onnn,mt9m114" }, + { .compatible =3D "onnn,mt9m114", .data =3D &mt9m114_models_default }, + { .compatible =3D "aptina,mi1040", .data =3D &mt9m114_models_aptina }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, mt9m114_of_ids); --=20 2.51.0