From 0d5bdb244070ceca36e4ff929759c60e657c1277 Mon Sep 17 00:00:00 2001 From: Naomi Rennie-Waldock Date: Thu, 24 Apr 2025 08:59:08 +0100 Subject: [PATCH] Add t31_lite_tp-link-tapo-tc70-v3 profile (#56) Signed-off-by: Naomi Rennie-Waldock --- README.md | 1 + .../t31_lite_tp-link-tapo-tc70-v3_defconfig | 70 ++++++++++++++++++ .../general/overlay/etc/init.d/S90motors | 13 ++++ .../general/overlay/etc/wireless/usb | 14 ++++ .../overlay/usr/share/openipc/customizer.sh | 31 ++++++++ .../overlay/usr/share/openipc/gpio.conf | 14 ++++ .../overlay/usr/share/openipc/muxes.sh | 5 ++ .../all-patches/linux/0001-gpios.patch | 33 +++++++++ .../general/scripts/excludes/t31_lite.list | 73 +++++++++++++++++++ 9 files changed, 254 insertions(+) create mode 100644 devices/t31_lite_tp-link-tapo-tc70-v3/br-ext-chip-ingenic/configs/t31_lite_tp-link-tapo-tc70-v3_defconfig create mode 100755 devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/init.d/S90motors create mode 100755 devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/wireless/usb create mode 100755 devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/customizer.sh create mode 100644 devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/gpio.conf create mode 100755 devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/muxes.sh create mode 100644 devices/t31_lite_tp-link-tapo-tc70-v3/general/package/all-patches/linux/0001-gpios.patch create mode 100644 devices/t31_lite_tp-link-tapo-tc70-v3/general/scripts/excludes/t31_lite.list diff --git a/README.md b/README.md index 2572df5..afc15dd 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ TP-Link Tapo C110 v1 SSC337 SC3335 SSW101B_USB NOR_8M done TP-Link Tapo C110 v2 SSC333 SC3338 SSW101B_USB NOR_8M done TP-Link Tapo C110 v26 SSC333 ? ? NOR_? done TP-Link Tapo C310 v1 SSC325 SC3335 RTL8192EU_USB NOR_8M in progress +TP-Link Tapo TC70 V3 T31L SC2336 RTL8188FU_USB NOR_8M done Trassir TR-D4121IR1 v2 HI3516CV200 AR0237 - NOR_16M done Trassir TR-W2C1 v1 SSC325 GC2053 MT7601U_USB NOR_16M done Trassir TR-W2C1 v2 SSC335 GC2053 MT7601U_USB NOR_16M done diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/br-ext-chip-ingenic/configs/t31_lite_tp-link-tapo-tc70-v3_defconfig b/devices/t31_lite_tp-link-tapo-tc70-v3/br-ext-chip-ingenic/configs/t31_lite_tp-link-tapo-tc70-v3_defconfig new file mode 100644 index 0000000..23fa801 --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/br-ext-chip-ingenic/configs/t31_lite_tp-link-tapo-tc70-v3_defconfig @@ -0,0 +1,70 @@ +# Architecture +BR2_mipsel=y +BR2_mips_xburst=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_MIPS_FP32_MODE_32=y + +# Toolchain +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="mipsel-openipc-linux-musl" +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/t31.generic.config" +BR2_LINUX_KERNEL_LZMA=y + +# Filesystem +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_ZLIB=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y +BR2_PACKAGE_WIREGUARD_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="ingenic" +BR2_OPENIPC_SOC_MODEL="t31" +BR2_OPENIPC_SOC_FAMILY="t31" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_INGENIC_OSDRV_T31=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSONFILTER=y +BR2_PACKAGE_LIBCURL_OPENIPC=y +BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y +# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set +# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set +# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set +BR2_PACKAGE_LIBEVENT_OPENIPC=y +BR2_PACKAGE_LIBOGG_OPENIPC=y +BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MAJESTIC_WEBUI=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +BR2_PACKAGE_MOTORS=y +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y +BR2_PACKAGE_QUIRC_OPENIPC=y +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +BR2_PACKAGE_RTL8188FU_OPENIPC=y diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/init.d/S90motors b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/init.d/S90motors new file mode 100755 index 0000000..7ed73ad --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/init.d/S90motors @@ -0,0 +1,13 @@ +#!/bin/sh + +case "$1" in + start) + modprobe -s motor hmaxstep=4000 vmaxstep=790 hst1=39 hst2=45 hst3=46 hst4=40 vst1=41 vst2=47 vst3=48 vst4=38 + ;; + stop) + ;; + *) + echo "Usage: $0 {start|stop}" >&2 + exit 1 + ;; +esac diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/wireless/usb b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..0d992b5 --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/etc/wireless/usb @@ -0,0 +1,14 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +if [ "$1" = "rtl8188fu-generic" ]; then + set_gpio 51 1 + modprobe 8188fu + exit 0 +fi + +exit 1 diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/customizer.sh b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/customizer.sh new file mode 100755 index 0000000..c1777f6 --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Perform basic settings on a known IP camera +# +# +# Set custom upgrade url +# +fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/t31_lite_tp-link-tapo-tc70-v3-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .audio.speakerPin 63 +cli -s .nightMode.backlightPin 49 +cli -s .nightMode.irCutPin1 57 +cli -s .nightMode.irCutPin2 58 +cli -s .nightMode.colorToGray true +cli -s .nightMode.minThreshold 30 +cli -s .nightMode.maxThreshold 150 +cli -s .video0.fps 20 + + +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev rtl8188fu-generic +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 + +exit 0 diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/gpio.conf b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/gpio.conf new file mode 100644 index 0000000..7a29bbc --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/gpio.conf @@ -0,0 +1,14 @@ +alarm_in=-1 +alarm_out=-1 +button=62 +ircut1=57 +ircut2=58 +led1=42 # green +led2=43 # red +led3=50 # white (active low) +light_ir=49 +light_wl=-1 +light_sensor=-1 +mmc_pwr=60 # active low +speaker=63 +usb=-1 diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/muxes.sh b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/muxes.sh new file mode 100755 index 0000000..fb49fbc --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/overlay/usr/share/openipc/muxes.sh @@ -0,0 +1,5 @@ +#!/bin/sh +. /usr/share/openipc/gpio.conf + +# sd card power enable +gpio clear $mmc_pwr diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/package/all-patches/linux/0001-gpios.patch b/devices/t31_lite_tp-link-tapo-tc70-v3/general/package/all-patches/linux/0001-gpios.patch new file mode 100644 index 0000000..59eae49 --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/package/all-patches/linux/0001-gpios.patch @@ -0,0 +1,33 @@ +commit 605091daab478f5b2646f6701f8797374c0bc032 +Author: Naomi Rennie-Waldock +Date: Wed Jan 1 16:04:34 2025 +0000 + + Add GPIOs for TP-Link Tapo TC70 (V3) + +diff --git a/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h b/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h +index d9058e12..45c8bbc2 100644 +--- a/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h ++++ b/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h +@@ -29,13 +29,20 @@ + #endif + /* ****************************GPIO SPI END********************************** */ + ++/* ****************************GPIO KEY START******************************** */ ++#define GPIO_HOME GPIO_PC(0) ++#define ACTIVE_LOW_HOME 1 ++#define WAKEUP_HOME 1 ++#define CAN_DISABLE_MENU 1 ++/* ****************************GPIO KEY END********************************** */ ++ + /* ****************************GPIO MMC START******************************** */ + #define GPIO_MMC_RST_N -1 + #define GPIO_MMC_RST_N_LEVEL LOW_ENABLE + #define GPIO_MMC_CD_N GPIO_PB(27) + #define GPIO_MMC_CD_N_LEVEL LOW_ENABLE +-#define GPIO_MMC_PWR -1 +-#define GPIO_MMC_PWR_LEVEL HIGH_ENABLE ++#define GPIO_MMC_PWR GPIO_PB(28) ++#define GPIO_MMC_PWR_LEVEL LOW_ENABLE + #define GPIO_MMC_WP_N -1 + #define GPIO_MMC_WP_N_LEVEL LOW_ENABLE + /* ****************************GPIO MMC END******************************** */ diff --git a/devices/t31_lite_tp-link-tapo-tc70-v3/general/scripts/excludes/t31_lite.list b/devices/t31_lite_tp-link-tapo-tc70-v3/general/scripts/excludes/t31_lite.list new file mode 100644 index 0000000..fb8b64b --- /dev/null +++ b/devices/t31_lite_tp-link-tapo-tc70-v3/general/scripts/excludes/t31_lite.list @@ -0,0 +1,73 @@ +/etc/sensor/gc2053-t31.bin +/etc/sensor/gc2083-t31.bin +/etc/sensor/gc4023-t31.bin +/etc/sensor/gc4653-t31.bin +/etc/sensor/imx307-t31.bin +/etc/sensor/imx327-t31.bin +/etc/sensor/jxf37-t31.bin +/etc/sensor/jxh62-t31.bin +/etc/sensor/jxq03-t31.bin +/etc/sensor/jxq03p-t31.bin +/etc/sensor/os03b10-t31.bin +/etc/sensor/sc200ai-t31.bin +/etc/sensor/sc2232h-t31.bin +/etc/sensor/sc2335-t31.bin +/etc/sensor/sc3335-t31.bin +/etc/sensor/sc3338-t31.bin +/etc/sensor/sc4236-t31.bin +/etc/sensor/sc5235-t31.bin +# +/etc/sensor/gc2053.yaml +/etc/sensor/gc2083.yaml +/etc/sensor/gc4023.yaml +/etc/sensor/gc4653.yaml +/etc/sensor/imx307.yaml +/etc/sensor/imx327.yaml +/etc/sensor/imx335.yaml +/etc/sensor/jxf22.yaml +/etc/sensor/jxf23.yaml +/etc/sensor/jxf37.yaml +/etc/sensor/jxh42.yaml +/etc/sensor/jxh62.yaml +/etc/sensor/jxh63.yaml +/etc/sensor/jxk04.yaml +/etc/sensor/jxq03.yaml +/etc/sensor/os03b10.yaml +/etc/sensor/ov2735.yaml +/etc/sensor/ov2735b.yaml +/etc/sensor/ov4689.yaml +/etc/sensor/ps5260.yaml +/etc/sensor/sc200ai.yaml +/etc/sensor/sc2232.yaml +/etc/sensor/sc2232h.yaml +/etc/sensor/sc2335.yaml +/etc/sensor/sc3335.yaml +/etc/sensor/sc3338.yaml +/etc/sensor/sc4236.yaml +/etc/sensor/sc5235.yaml +# +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc2053_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc2083_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc4023_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc4653_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_imx307_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_imx327_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxf37_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxh62_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxh63_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxq03_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxq03p_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_os03b10_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc200ai_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2232h_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2335_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc3338_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc4236_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc5235_t31.ko +# +#/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/*/*.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/*.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/wireless/*/*.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/wireless/*/*/*.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial*.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/f2fs/*.ko