openwrt/target/linux
Coia Prant b9382cb733 ramips: add support for Qding QC202
This is a smart door lock device equipped with OpenWrt 14.07 OEM
modified version Qdwrt

The OEM has closed down, This commit is intended to maximize the
remaining value of these devices. It can flash OpenWrt to become
an AP

Specification:
- SoC: MediaTek MT7628NN
- Flash: 8 MB
- RAM: 64 MB
- Power: DC 5V - 25V
- Ethernet: 1 x RJ45 (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only
- On-Board LED:
  Status 1: GPIO/43 active-low
  Status 2: GPIO/44 active-low
  Power: AlwaysOn
- Button:
  WPS / RESET: GPIO/14  active-low
- Bluetooth: CC2541 via UART1 (ttyS1) and GPIO/26-29
- RFID: MF RC522 on I2C@28
- RTC: DS1339 on I2C@68
- Shell (via CON1 cable)
  - LED (Swipe card area):
     -  Green  GPIO/3  active-high
     -  Red    GPIO/11 active-high
  - Matrix keypad: (active-low)
                 GPIO/20 GPIO/21 GPIO/19 (Rows)
        GPIO/24        1       2       3
        GPIO/25        4       5       6
        GPIO/22        7       8       9
        GPIO/23     BACK       0   ENTER
        (Cols)
- UART: 1 x UART on PCB - 57600 8N1
- GPIO Relay: GPIO/42 active-high
- GPIO Buzzer: GPIO/15 active-high

Warning:
The original firmware does not use the device tree.
This device tree is written based on the content of /sys/devices/platform
and has been tested

Note:
- On the device, matrix keypad rows actually are columns, and the columns actually are rows
- The key code of the CLEAR key of the matrix keypad is BACK in the original firmware.

Issue:
- No drivers in mainline kernel for RFID and Bluetooth.

Flash Instruction:
Using SSH/Telnet:
1. Connect the board to the computer via RJ45 Ethernet
2. Login 10.10.10.1 with root password "szqdingnet123" (SSH Port 22, Telnet Port 9900)
3. Download openwrt firmware on the computer.
4. Setup a http server on computer. And use wget download openwrt firmware from computer
5. Use command "mtd -r write openwrt-ramips-mt76x8-qding_qc202-squashfs-sysupgrade.bin firmware"
   to flash

Using U-Boot WebUI:
1. Configure PC with a static IP address 10.10.10.2/24.
2. Open http://10.10.10.1
3. Use "mkqdimg -B qc202 -f openwrt-ramips-mt76x8-qding_qc202-squashfs-sysupgrade.bin" to
   make image.
4. Upload factory.bin via U-Boot WebUI.

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-qianding-smart-locker-and-flash.html

Original U-Boot firmware image tools:
https://gitlab.com/CoiaPrant/mkqdimg

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17471
(cherry picked from commit b2f814fed4)
Link: https://github.com/openwrt/openwrt/pull/20159
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:49:46 +02:00
..
airoha kernel: add support for FudanMicro FM25S01A SPI-NAND 2025-09-10 00:02:22 +02:00
apm821xx kernel: bump 6.6 to 6.6.103 2025-09-02 23:09:49 +02:00
archs38 kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
armsr armsr: remove 'console=tty1' from kernel command line 2025-08-31 18:30:08 +02:00
at91 kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
ath79 ath79: add calibtation variant for TP-Link Archer C60 v1 2025-09-25 22:55:15 +02:00
bcm27xx kernel: bump 6.6 to 6.6.109 2025-10-05 18:20:27 +02:00
bcm47xx kernel: bump 6.6 to 6.6.78 2025-02-25 23:16:17 +01:00
bcm53xx kernel: bump 6.6 to 6.6.103 2025-09-02 23:09:49 +02:00
bcm4908 kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
bmips bmips: add missing NAND config symbol 2025-05-14 11:39:20 +02:00
d1 kernel: bump 6.6 to 6.6.93 2025-06-15 13:37:46 +02:00
gemini kernel: bump 6.6 to 6.6.95 2025-07-06 14:51:08 +02:00
generic kernel: bump 6.6 to 6.6.109 2025-10-05 18:20:27 +02:00
imx kernel: bump 6.6 to 6.6.103 2025-09-02 23:09:49 +02:00
ipq40xx kernel: bump 6.6 to 6.6.103 2025-09-02 23:09:49 +02:00
ipq806x ipq806x: fix Extreme Networks AP3935 LAN/WAN ports 2025-06-22 13:40:28 +02:00
ixp4xx ixp4xx: Break out mv88e6060 DSA switch to package 2025-01-04 19:27:05 +01:00
kirkwood kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
lantiq kernel: bump 6.6 to 6.6.109 2025-10-05 18:20:27 +02:00
layerscape kernel: bump 6.6 to 6.6.88 2025-05-07 20:53:16 +02:00
loongarch64 generic: globally enable CONFIG_PCPU_DEV_REFCNT 2025-03-19 09:24:43 +01:00
malta kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
mediatek mediatek: filogic: fix for new GL.iNet GL-MT2500/GL-MT2500A hardware revision 2025-10-05 18:18:32 +02:00
mpc85xx kernel: bump 6.6 to 6.6.103 2025-09-02 23:09:49 +02:00
mvebu kernel: bump 6.6 to 6.6.95 2025-07-06 14:51:08 +02:00
mxs mxs: run kernel_oldconfig 2024-11-28 18:48:55 +00:00
octeon octeon: ubnt-*: Add device specific DTS pruning 2025-09-05 00:48:55 +02:00
omap kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
pistachio kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
qoriq kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
qualcommax qualcommax: ipq807x: add support for Linksys HomeWRK 2025-09-18 16:41:15 +02:00
ramips ramips: add support for Qding QC202 2025-10-05 18:49:46 +02:00
realtek realtek: fix stall after restart of otto timer 2025-08-31 19:08:04 +02:00
rockchip rockchip: backport GATE_LINK support for RK3588 2025-09-10 00:05:41 +02:00
sifiveu kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
siflower kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
starfive kernel: bump 6.6 to 6.6.104 2025-09-08 14:31:30 +02:00
stm32 stm32: add missing config option 2025-05-28 13:22:00 +02:00
sunxi kernel: bump 6.6 to 6.6.61 2024-11-24 22:46:21 +01:00
tegra tegra: bring back workaround for spurious interrupts 2025-07-28 23:20:46 +02:00
uml uml: fix glibc-static check with GCC14 2024-06-22 22:06:06 +02:00
x86 x86: config: add CONFIG_MITIGATION_VMSCAPE=y 2025-09-22 01:22:49 +02:00
zynq kernel: filter out compiler opts from config 2024-11-28 18:47:54 +00:00
Makefile linux: fix missing default packages in profiles.json 2025-01-03 11:14:12 +01:00