From 1d6d9f03b15bc0ef1988b359d260f97cd14793ea Mon Sep 17 00:00:00 2001
From: Dmitry Ermakov <de@dimer.org.ua>
Date: Sat, 21 May 2022 22:30:42 +0300
Subject: [PATCH] Enable VO module and BT656 pinmux for Hi3516Cv500

---
 .../kernel/hi3516cv500.generic.config         |  5 ++++-
 .../files/script/load_hisilicon               | 21 +++++++++++++++++--
 .../hisilicon-osdrv-hi3516cv500.mk            |  2 +-
 3 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config
index a25ed119..e199883b 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config
@@ -1667,7 +1667,10 @@ CONFIG_MFD_SYSCON=y
 #
 # Frame buffer Devices
 #
-# CONFIG_FB is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
 # CONFIG_VGASTATE is not set
 
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon
index 9cd73f33..66e99d14 100755
--- a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon
+++ b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon
@@ -99,12 +99,29 @@ remove_gyro() {
     rmmod -w hi_spi
 }
 
+sys_config(){
+    bt656_pinmux(){
+        devmem 0x114f0040 32 0x2
+        devmem 0x114f0044 32 0x2
+        devmem 0x114f0048 32 0x2
+        devmem 0x114f004c 32 0x2
+        devmem 0x114f0050 32 0x2
+        devmem 0x114f0054 32 0x2
+        devmem 0x114f0058 32 0x2
+        devmem 0x114f005c 32 0x2
+        devmem 0x114f0068 32 0x2
+    }
+    bt656_pinmux;
+}
+
 insert_ko() {
     # driver load
     insert_osal
     # sys config
     insmod sys_config.ko chip=${chipid} sensors=sns0=$SNS_TYPE0,sns1=$SNS_TYPE1, g_cmos_yuv_flag=$YUV_TYPE0
 
+    sys_config;
+
     # insmod hi_tzasc.ko
     insmod hi3516cv500_base.ko
     insmod hi3516cv500_sys.ko
@@ -116,8 +133,8 @@ insert_ko() {
     insmod hi3516cv500_vi.ko
     insert_isp
     insmod hi3516cv500_vpss.ko
-    # insmod hi3516cv500_vo.ko
-    # insmod hifb.ko video="hifb:vram0_size:16200"     # default fb0:1080p
+    insmod hi3516cv500_vo.ko
+    # insmod hifb.ko video="hifb:vram0_size:1024"     # default fb0:576p
 
     insmod hi3516cv500_chnl.ko
     insmod hi3516cv500_vedu.ko
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk b/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk
index 79af4af7..34175e60 100644
--- a/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk
+++ b/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk
@@ -50,7 +50,7 @@ define HISILICON_OSDRV_HI3516CV500_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vfmw.ko
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vgs.ko
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vi.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vo.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vo.ko
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vpss.ko
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_wdt.ko
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_cipher.ko