* Add TP-Link Kasa KC110 (HI3518EV200 + OV2735)
New device variant: hi3518ev200_ultimate_tplink-kasa-kc110.
Contents:
- kc110-board-support package: PTZ binary (mmap'd PL061), gpio-motors
shim for the openipc web GUI, IR control script, and a boot-time
pinmux init that writes 0x1 to the chip7/chip8 pads (0x200f00e8/ec/
f0/fc/100/104). The OpenIPC kernel pinctrl driver does not auto-set
these for the KC110's pan motor / IR-cut / IR-LED pads — the vendor
firmware writes them explicitly in hn_config.sh. Without this,
PL061 GPIODATA writes succeed silently but the pads never drive
the ULN2803 / solenoid / LED.
- Device overlay:
* etc/sensors/ov2735_i2c_1080p.ini — input_mode=0 (MIPI), 1-lane
(was input_mode=4 / 4-lane in upstream cv200 osdrv, which is
wrong for OV2735).
* usr/bin/load_hisilicon — adds an "ov2735" case that mirrors
ov2710_mipi (same MIPI pinmux + clock).
* usr/share/openipc/customizer.sh — first-boot configuration:
RTL8188FU wlandev, sensor config path, IR-cut pin 64, backlight
pin 63, lightMonitor true (AE recovery after IR-cut toggle).
- README.md row.
Hardware notes:
- SoC: Hi3518EV200; Sensor: OV2735 (MIPI 1-lane, RAW10);
Wi-Fi: RTL8188FU (USB); Flash: W25Q128 16 MB NOR.
- PTZ: 4-phase unipolar steppers via ULN2803 darlington array.
Pan = vendor base-10 GPIO 81/74/73/72 = OpenIPC PL061 65/60/59/58;
tilt = 0/1/2/44 = 0/1/2/36 (vendor's "44" is bank 4 pin 4 — i.e.
pin 36 in OpenIPC's PL061 numbering, NOT 44).
- IR-cut filter: GPIO 64 (vendor 80) active-low; IR-LED: GPIO 63
(vendor 77).
Status: PTZ + GPIO + IR fully functional. Video pipeline currently
needs an LD_PRELOAD shim around HI_MIPI_SET_DEV_ATTR because upstream
majestic builds combo_dev_attr_t with enIntfMode=DC / raw_data_type=0
for MIPI sensors that need RAW10. The shim is downstream-only pending
a real fix to majestic upstream; this PR delivers the rest of the
KC110 board support and will produce a fully-functional camera once
the majestic fix lands.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* tplink-kasa-kc110: use ov2735_mipi_1080p.ini
Follow OpenIPC/firmware #2155, which ships the OV2735 MIPI config as a
separate ov2735_mipi_1080p.ini and leaves ov2735_i2c_1080p.ini (the
parallel/DVP config) untouched.
- Rename the device's bundled sensor .ini to ov2735_mipi_1080p.ini and
carry the full corrected MIPI config: input_mode=0 (MIPI),
data_type=2 (RAW10), lane_id 2-lane, Input_mod=5 (MIPI),
Mask_0=0xFFF00000. The previous bundled copy only had input_mode
fixed (data_type/Input_mod/Mask_0 were still the wrong DVP defaults).
- Point customizer.sh's isp.sensorConfig at the new file.
- Exclude the unused parallel ov2735_i2c_1080p.ini from the image.
Verified on a TP-Link Kasa KC110 (OV2735 2-lane MIPI RAW10): clean
image, correct AE, RTSP H.264 1080p.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: moontwister <moontwister@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
29 lines
1.3 KiB
Plaintext
29 lines
1.3 KiB
Plaintext
config BR2_PACKAGE_KC110_BOARD_SUPPORT
|
|
bool "kc110-board-support"
|
|
depends on BR2_arm
|
|
help
|
|
Board support for the TP-Link Kasa KC110 PTZ camera (HiSilicon
|
|
Hi3518EV200 + OV2735 MIPI sensor + 24BYJ48 stepper motors via
|
|
ULN2803 darlington array).
|
|
|
|
Installs:
|
|
- ptz: C binary driving pan/tilt steppers (mmap PL061) and IR-cut /
|
|
IR-LED via vendor-base-10 GPIO numbering. Replaces the upstream
|
|
gpio-motors sysfs approach which uses different pin numbers.
|
|
- gpio-motors: small shell shim that forwards web-GUI calls
|
|
(gpio-motors X Y N) to the ptz CLI.
|
|
- ir-control.sh: convenience wrapper for IR-LED + IR-cut filter.
|
|
- S94pinmux-pan-ir: boot-time init that writes 0x1 to pinmux
|
|
registers 0x200f00e8/ec/f0/fc/100/104 for chip7/8 pads. OpenIPC
|
|
kernel pinctrl doesn't auto-set this for the KC110's pan + IR-cut
|
|
+ IR-LED pads (vendor's hn_config.sh writes them explicitly).
|
|
|
|
KC110 GPIO map (vendor base-10 numbering = OpenIPC PL061 pins):
|
|
pan: 65 / 60 / 59 / 58 (vendor 81/74/73/72)
|
|
tilt: 0 / 1 / 2 / 36 (vendor 0/1/2/44)
|
|
ir-cut: 64 (vendor 80)
|
|
ir-led: 63 (vendor 77)
|
|
|
|
Conflicts with the upstream gpio-motors package — this provides a
|
|
drop-in replacement at /usr/bin/gpio-motors that calls ptz.
|