summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bb4
-rw-r--r--meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv/0001-update-uvcs-driver-for-M3N-support.patch60
2 files changed, 64 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bb b/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bb
index b12c1de..c4c64ce 100644
--- a/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bb
+++ b/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bb
@@ -18,6 +18,10 @@ PR = "r0"
UVCS_SRC = "${@base_conditional('USE_VIDEO_OMX', '1', 'file://RCG3VUDRL4001ZDO.tar.bz2', '', d)}"
SRC_URI = "${UVCS_SRC}"
+
+# Add a patch file to support M3N board
+SRC_URI_append = " file://0001-update-uvcs-driver-for-M3N-support.patch"
+
S = "${WORKDIR}/RCG3VUDRL4001ZDO"
EXTRA_OEMAKE = "KERNELDIR=${STAGING_KERNEL_BUILDDIR}"
diff --git a/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv/0001-update-uvcs-driver-for-M3N-support.patch b/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv/0001-update-uvcs-driver-for-M3N-support.patch
new file mode 100644
index 0000000..d8fda7b
--- /dev/null
+++ b/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv/0001-update-uvcs-driver-for-M3N-support.patch
@@ -0,0 +1,60 @@
+From 7368ecd2aa50c064c3cd0da6b751d1cbed0c4c41 Mon Sep 17 00:00:00 2001
+From: Katsumasa Matsunaga <katsumasa.matsunaga.xj@renesas.com>
+Date: Fri, 6 Oct 2017 13:26:01 +0900
+Subject: soc: renesas: Add support M3N for UVCS driver
+
+Support new device R-Car M3N for UVCS driver.
+
+Signed-off-by: Katsumasa Matsunaga <katsumasa.matsunaga.xj@renesas.com>
+
+diff --git a/src/lkm/uvcs_lkm_internal.h b/src/lkm/uvcs_lkm_internal.h
+index 9e1f53c..b249d68 100644
+--- a/src/lkm/uvcs_lkm_internal.h
++++ b/src/lkm/uvcs_lkm_internal.h
+@@ -89,6 +89,7 @@
+ #define UVCS_REG_SRSTCLR (0xE6150944u)
+ #define UVCS_LSITYPE_H3 (0x4Fu)
+ #define UVCS_LSITYPE_M3W (0x52u)
++#define UVCS_LSITYPE_M3N (0x55u)
+ #define UVCS_IPOPT_DEFAULT (0x000000Au)
+
+ /* register size */
+diff --git a/src/lkm/uvcs_lkm_uf_io.c b/src/lkm/uvcs_lkm_uf_io.c
+index c94277f..50dc97b 100644
+--- a/src/lkm/uvcs_lkm_uf_io.c
++++ b/src/lkm/uvcs_lkm_uf_io.c
+@@ -124,6 +124,11 @@ static const struct soc_device_attribute r8a7796[] = {
+ { },
+ };
+
++static const struct soc_device_attribute r8a77965[] = {
++ { .soc_id = "r8a77965" },
++ { },
++};
++
+ static const struct soc_device_attribute device_es1x[] = {
+ { .revision = "ES1.*" },
+ { },
+@@ -526,6 +531,10 @@ int uvcs_io_init(
+ }
+ break;
+
++ case UVCS_LSITYPE_M3N:
++ iparam->ip_group_id[0][UVCS_CMN_BASE_ADDR_VLC] = 1u;
++ break;
++
+ default:
+ break;
+ }
+@@ -647,6 +656,8 @@ static void uvcs_get_lsi_info(
+ drv->lsi_info.product_id = UVCS_LSITYPE_H3;
+ } else if (soc_device_match(r8a7796)) {
+ drv->lsi_info.product_id = UVCS_LSITYPE_M3W;
++ } else if (soc_device_match(r8a77965)) {
++ drv->lsi_info.product_id = UVCS_LSITYPE_M3N;
+ } else {
+ drv->lsi_info.product_id = 0;
+ pr_err("unknown soc device\n");
+--
+1.9.1
+