summaryrefslogtreecommitdiff
path: root/drivers/media/i2c
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2020-09-21 19:04:47 +0300
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-12-03 12:40:36 +0300
commitca21c45a86ff07e11c7b753072f4e4cc6cd6e093 (patch)
tree8d6b93c815692e43dd884d7e0f169b7fa37cbdb2 /drivers/media/i2c
parentadc00b457937233b4f392e7fcc6d20ab0227e414 (diff)
downloadlinux-ca21c45a86ff07e11c7b753072f4e4cc6cd6e093.tar.xz
media: ccs: Add device compatible identifiers for telling SMIA and CCS apart
Add device data specific to DT compatible ID to tell SMIA and CCS devices apart already in power-up. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media/i2c')
-rw-r--r--drivers/media/i2c/ccs/ccs-core.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index 64bad5b678a3..1d365da570a6 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -58,6 +58,12 @@ static const struct ccs_module_ident ccs_module_idents[] = {
CCS_IDENT_LQ(0x10, 0x4241, -1, "imx125es", &smiapp_imx125es_quirk),
};
+#define CCS_DEVICE_FLAG_IS_SMIA BIT(0)
+
+struct ccs_device {
+ unsigned char flags;
+};
+
/*
*
* Dynamic Capability Identification
@@ -3235,11 +3241,17 @@ static int ccs_remove(struct i2c_client *client)
return 0;
}
+static const struct ccs_device smia_device = {
+ .flags = CCS_DEVICE_FLAG_IS_SMIA,
+};
+
+static const struct ccs_device ccs_device = {};
+
static const struct of_device_id ccs_of_table[] = {
- { .compatible = "mipi-ccs-1.1" },
- { .compatible = "mipi-ccs-1.0" },
- { .compatible = "mipi-ccs" },
- { .compatible = "nokia,smia" },
+ { .compatible = "mipi-ccs-1.1", .data = &ccs_device },
+ { .compatible = "mipi-ccs-1.0", .data = &ccs_device },
+ { .compatible = "mipi-ccs", .data = &ccs_device },
+ { .compatible = "nokia,smia", .data = &smia_device },
{ },
};
MODULE_DEVICE_TABLE(of, ccs_of_table);