From 0ffab1fb82b636fc69cf46e8e69391e2d8a09ed0 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Sat, 16 May 2026 21:51:48 +0900 Subject: [PATCH 01/17] dt-bindings: add "reeder" Signed-off-by: Akari Tsuyukusa --- Documentation/devicetree/bindings/arm/sprd/sprd.yaml | 5 +++++ Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 2 files changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/sprd/sprd.yaml b/Documentation/devicetree/bindings/arm/sprd/sprd.yaml index 40fc3c8b9dceec..6674ee3ae70d2e 100644 --- a/Documentation/devicetree/bindings/arm/sprd/sprd.yaml +++ b/Documentation/devicetree/bindings/arm/sprd/sprd.yaml @@ -35,6 +35,11 @@ properties: - sprd,ums512-1h10 - const: sprd,ums512 + - items: + - enum: + - reeder,s19mps + - const: sprd,ums9230 + - items: - enum: - sprd,ums9620-2h10 diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index 28784d66ae7ba5..cec12cd4af71e8 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -1373,6 +1373,8 @@ patternProperties: description: Raydium Semiconductor Corp. "^raystar,.*": description: Raystar Optronics, Inc. + "^reeder,.*": + description: Reeder Teknoloji Sanayi Ve Ticaret Anonim Şirketi "^rda,.*": description: Unisoc Communications, Inc. "^realtek,.*": From d002ed06d2b711f0cce6d8d2b8c2ea6c994534bc Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Sun, 17 May 2026 00:11:37 +0900 Subject: [PATCH 02/17] dt-bindings: add Blackview Tab 15 Pro Signed-off-by: Akari Tsuyukusa --- .../devicetree/bindings/arm/sprd/sprd.yaml | 1 + .../devicetree/bindings/vendor-prefixes.yaml | 2 + arch/arm64/boot/dts/sprd/Makefile | 1 + .../dts/sprd/ums9230-blackview-tab15pro.dts | 59 +++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts diff --git a/Documentation/devicetree/bindings/arm/sprd/sprd.yaml b/Documentation/devicetree/bindings/arm/sprd/sprd.yaml index 6674ee3ae70d2e..5e89e50dc2a545 100644 --- a/Documentation/devicetree/bindings/arm/sprd/sprd.yaml +++ b/Documentation/devicetree/bindings/arm/sprd/sprd.yaml @@ -37,6 +37,7 @@ properties: - items: - enum: + - doke,blackview-tab15pro - reeder,s19mps - const: sprd,ums9230 diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index cec12cd4af71e8..9d3dc79df7e53b 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -449,6 +449,8 @@ patternProperties: description: Data Modul AG "^doestek,.*": description: Doestek Co., Ltd. + "^doke,.*": + description: Shenzhen Doke Electronic Co., Ltd. "^domintech,.*": description: Domintech Co., Ltd. "^dongwoon,.*": diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile index 0af83bf5f28a46..0cc46d3cb483b6 100644 --- a/arch/arm64/boot/dts/sprd/Makefile +++ b/arch/arm64/boot/dts/sprd/Makefile @@ -3,5 +3,6 @@ dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \ sp9860g-1h10.dtb \ sp9863a-1h10.dtb \ ums512-1h10.dtb \ + ums9230-blackview-tab15pro.dts \ ums9230-reeder-s19mps.dtb \ ums9620-2h10.dtb diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts new file mode 100644 index 00000000000000..5f58d197a974b9 --- /dev/null +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright (C) 2026 Akari Tsuyukusa + */ + +/dts-v1/; + +#include +#include +#include +#include +#include "ums9230.dtsi" +#include "sc2730.dtsi" + +/ { + model = "Blackview Tab 15 Pro"; + + compatible = "doke,blackview-tab15pro", "sprd,ums9230"; + + aliases { + }; + + chosen { + framebuffer { + compatible = "simple-framebuffer"; + memory-region = <&framebuffer_region>; + width = <1920>; + height = <1200>; + stride = <(1920 * 4)>; + format = "a8r8g8b8"; + + status = "okay"; + }; + }; + + reserved-memory { + framebuffer_region: framebuffer-region@9e000000 { + compatible = "framebuffer"; + reg = <0 0x9e000000 0 (1920 * 1200 * 4)>; + iommu-addresses = <&dpu 0x9e000000 (1920 * 1200 * 4)>; + no-map; + }; + + ramoops@fff80000 { + compatible = "ramoops"; + reg = <0x0 0xfff80000 0x0 0x40000>; + console-size = <0x8000>; + record-size = <0x8000>; + pmsg-size = <0x8000>; + }; + + linux,cma { + compatible = "shared-dma-pool"; + size = <0x0 0x8000000>; + reusable; + linux,cma-default; + }; + }; +}; From 9d262f327396b7e2caa99caf47f17e9a078884ab Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Sun, 17 May 2026 18:17:26 +0900 Subject: [PATCH 03/17] arm64: dts: sprd: fix makefile --- arch/arm64/boot/dts/sprd/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile index 0cc46d3cb483b6..259d6f6fb234e4 100644 --- a/arch/arm64/boot/dts/sprd/Makefile +++ b/arch/arm64/boot/dts/sprd/Makefile @@ -3,6 +3,6 @@ dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \ sp9860g-1h10.dtb \ sp9863a-1h10.dtb \ ums512-1h10.dtb \ - ums9230-blackview-tab15pro.dts \ + ums9230-blackview-tab15pro.dtb \ ums9230-reeder-s19mps.dtb \ ums9620-2h10.dtb From 12d9602def2398d07fd002dba6ac6a441be9dbd6 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Sun, 17 May 2026 20:16:33 +0900 Subject: [PATCH 04/17] dt-bindings: vendor-prefixes: fix reeder --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index 9d3dc79df7e53b..747fdac91247ec 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -1375,12 +1375,12 @@ patternProperties: description: Raydium Semiconductor Corp. "^raystar,.*": description: Raystar Optronics, Inc. - "^reeder,.*": - description: Reeder Teknoloji Sanayi Ve Ticaret Anonim Şirketi "^rda,.*": description: Unisoc Communications, Inc. "^realtek,.*": description: Realtek Semiconductor Corp. + "^reeder,.*": + description: Reeder Teknoloji Sanayi Ve Ticaret Anonim Şirketi "^relfor,.*": description: Relfor Labs Pvt. Ltd. "^remarkable,.*": From ce3865cbc35a535948ae0b1deb2fa6a5099671cd Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Sun, 17 May 2026 20:21:53 +0900 Subject: [PATCH 05/17] =?UTF-8?q?dt-bindings:=20vendor-prefixes:=20reeder:?= =?UTF-8?q?=20use=20A.=C5=9E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index 747fdac91247ec..2f717bb2bd245d 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -1380,7 +1380,7 @@ patternProperties: "^realtek,.*": description: Realtek Semiconductor Corp. "^reeder,.*": - description: Reeder Teknoloji Sanayi Ve Ticaret Anonim Şirketi + description: Reeder Teknoloji Sanayi Ve Ticaret A.Ş. "^relfor,.*": description: Relfor Labs Pvt. Ltd. "^remarkable,.*": From 47a3c88db082c115062ce03a261fda3b17bdd33f Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Mon, 18 May 2026 01:14:59 +0900 Subject: [PATCH 06/17] arm64: dts: sprd: ums9230-blackview-tab15pro: fix? fb width/height --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 5f58d197a974b9..cb18f53b1e1769 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -24,8 +24,8 @@ framebuffer { compatible = "simple-framebuffer"; memory-region = <&framebuffer_region>; - width = <1920>; - height = <1200>; + width = <1200>; + height = <1920>; stride = <(1920 * 4)>; format = "a8r8g8b8"; From 79651ba5abf4140100aa2f4d3b177ce9cc44dddc Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 12:29:07 +0900 Subject: [PATCH 07/17] arm64: dts: blackview-tab15pro: add battery node Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Akari Tsuyukusa --- .../dts/sprd/ums9230-blackview-tab15pro.dts | 246 ++++++++++++++++++ 1 file changed, 246 insertions(+) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index cb18f53b1e1769..881b286c060064 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -56,4 +56,250 @@ linux,cma-default; }; }; + + /* + * Battery node — converted from decompiled DTS (hex → decimal) + * + * Conventions (Spreadtrum/SPRD driver): + * - voltages : microvolt (µV) + * - currents : microamp (µA) + * - resistance: micro-ohm (µΩ) + * - capacity : microamp-hour (µAh) + * - JEITA temp columns: raw 0.1 °C units (÷10 → °C) + * e.g. 1000 = 100 °C, 1150 = 115 °C + * voltage-temp-table resistance column: ohm (NTC raw) + * voltage-temp-table temp column: raw 0.1 °C units (same encoding) + * + * JEITA table row format: + * All four JEITA zone tables share voltage = 4 440 000 µV (4.44 V = constant-charge-voltage-max) + */ + bat: battery { + compatible = "simple-battery"; + + /* + * Basic charge parameters + */ + + constant-charge-voltage-max-microvolt = <4440000>; /* 4.440 V */ + voltage-min-design-microvolt = <3450000>; /* 3.450 V */ + charge-full-design-microamp-hours = <7600000>; /* 7600 mAh */ + charge-term-current-microamp = <60000>; /* 60 mA */ + + /* Fast-charge threshold */ + fast-charge-threshold-microvolt = <4100000>; /* 4.100 V */ + + /* Full-battery detection */ + fullbatt-voltage = <4310000>; /* 4.310 V */ + fullbatt-current = <430000>; /* 430 mA */ + fullbatt-voltage-offset-microvolt = <45000>; /* 45 mV */ + fullbatt-track-end-vol = <4310000>; /* 4.310 V */ + fullbatt-track-end-cur = <430000>; /* 430 mA */ + first-fullbatt-current = <280000>; /* 280 mA */ + + /* Internal resistance */ + factory-internal-resistance-micro-ohms = <77000>; /* 77 mΩ */ + ir-rc-micro-ohms = <20000>; /* 20 mΩ */ + ir-cv-offset-microvolt = <100000>; /* 100 mV */ + ir-us-upper-limit-microvolt = <4500000>; /* 4.500 V */ + + /* First calibration point */ + first-calib-voltage = <3550000>; /* 3.550 V */ + first-calib-capacity = <50>; /* 50 % */ + + /* JEITA status override (zone index, 0 = auto) */ + force-jeita-status = <2>; + + /* + * Per-charger type max charge current: + */ + + charge-fchg-current-microamp = <3250000 2000000>; /* SFCP/HVDCP: 3250/2000 mA */ + charge-unknown-current-microamp = <2000000 2000000>; /* Unknown: 2000/2000 mA */ + charge-cdp-current-microamp = <2000000 2000000>; /* CDP: 2000/2000 mA */ + charge-dcp-current-microamp = <2000000 2000000>; /* DCP: 2000/2000 mA */ + charge-sdp-current-microamp = <2000000 2000000>; /* SDP: 2000/2000 mA */ + + /* + * OCV (Open Circuit Voltage) → capacity table @ 20 °C + * Format: (descending capacity) + */ + + ocv-capacity-celsius = <20>; + + ocv-capacity-table-0 = + <4321000 100>, + <4271000 95>, + <4210000 90>, + <4160000 85>, + <4105000 80>, + <4060000 75>, + <3995000 70>, + <3970000 65>, + <3931000 60>, + <3886000 55>, + <3852000 50>, + <3828000 45>, + <3810000 40>, + <3794000 35>, + <3781000 30>, + <3766000 25>, + <3740000 20>, + <3702000 15>, + <3654000 10>, + <3570000 5>, + <3480000 0>; + + /* + * Energy-density reference OCV breakpoints (µV) + * 3.350 V / 3.800 V / 4.150 V / 4.350 V + */ + + energy-desity-ocv-table = <3350000 3800000 4150000 4350000>; + + /* + * Resistance vs temperature + * Format: (normalised to 25 °C = 100 %) + */ + + resistance-temp-table = + < 45 53>, + < 25 100>, + < 10 395>, + < 0 567>, + <(-10) 793>; + + /* + * Capacity vs temperature + * Format: + */ + + capacity-temp-table = + < 45 100>, + < 25 100>, + < 10 95>, + < 0 78>, + <(-10) 60>; + + /* + * NTC thermistor: resistance (Ω) → temperature (raw 0.1 °C units) + * Format: + * resistance decreases as temperature rises (NTC characteristic) + */ + + voltage-temp-table = + <1242000 750>, /* 75.0 °C */ + <1132000 800>, /* 80.0 °C */ + <1022000 850>, /* 85.0 °C */ + < 886000 900>, /* 90.0 °C */ + < 803000 950>, /* 95.0 °C */ + < 691000 1000>, /* 100.0 °C */ + < 608000 1050>, /* 105.0 °C */ + < 512000 1100>, /* 110.0 °C */ + < 448000 1150>, /* 115.0 °C */ + < 376000 1200>, /* 120.0 °C */ + < 325000 1250>, /* 125.0 °C */ + < 278000 1300>, /* 130.0 °C */ + < 237000 1350>, /* 135.0 °C */ + < 203000 1400>, /* 140.0 °C */ + < 175000 1450>, /* 145.0 °C */ + < 148000 1500>, /* 150.0 °C */ + < 128000 1550>, /* 155.0 °C */ + < 118000 1600>; /* 160.0 °C */ + + /* + * JEITA charging tables + * Format per row: + * Temperature unit: raw 0.1 °C (e.g. 1000 = 100.0 °C, 1150 = 115.0 °C) + * All zones share constant-charge-voltage-max = 4 440 000 µV (4.44 V) + */ + + /* + * wl-epp-jeita-temp-table — Wireless EPP (Extended Power Profile) + * + * zone 1: temp < 100.0 °C → suspend (0 mA) + * zone 2: 115.0 °C ≤ temp < 118.0 °C → 2000 mA + * zone 3: 145.0 °C < temp ≤ 148.0 °C → 2000 mA + * zone 4: temp > 154.0 °C → 2000 mA + */ + wl-epp-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 2000000 4440000>, + <1480 1450 2000000 4440000>, + <1570 1540 2000000 4440000>; + + /* + * wl-bpp-jeita-temp-table — Wireless BPP (Baseline Power Profile) + * + * zone 1: temp < 100.0 °C → suspend (0 mA) + * zone 2: 115.0 °C ≤ temp < 118.0 °C → 500 mA + * zone 3: 145.0 °C < temp ≤ 148.0 °C → 1000 mA + * zone 4: temp > 154.0 °C → 5000 mA (shutdown zone) + */ + wl-bpp-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 500000 4440000>, + <1480 1450 1000000 4440000>, + <1570 1540 5000000 4440000>; + + /* + * flash-jeita-temp-table — Flash / Turbo charging + * + * 11 zones from < 100.0 °C to > 154.0 °C + * Peak current = 5000 mA (5 A) in 134.0–136.0 °C / 135.0–137.0 °C zones + */ + flash-jeita-temp-table = + <1000 1020 0 4440000>, + <1050 1070 500000 4440000>, + <1120 1140 1000000 4440000>, + <1160 1180 2000000 4440000>, + <1220 1240 4500000 4440000>, + <1340 1360 5000000 4440000>, + <1370 1350 5000000 4440000>, + <1400 1380 4500000 4440000>, + <1420 1400 4250000 4440000>, + <1450 1430 4000000 4440000>, + <1570 1540 1000000 4440000>; + + /* + * fchg-jeita-temp-table — Fast Charge (SFCP / PE) + * + * zone 1: temp < 100.0 °C → suspend (0 mA) + * zone 2: 115.0 °C ≤ temp < 118.0 °C → 3250 mA + * zone 3: 145.0 °C < temp ≤ 148.0 °C → 3250 mA + * zone 4: temp > 154.0 °C → 2100 mA (warm derating) + */ + fchg-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 3250000 4440000>, + <1480 1450 3250000 4440000>, + <1570 1540 2100000 4440000>; + + /* + * unknown / CDP / SDP / DCP — identical profile (2000 mA in all active zones) + */ + unknown-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 2000000 4440000>, + <1480 1450 2000000 4440000>, + <1570 1540 2000000 4440000>; + + cdp-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 2000000 4440000>, + <1480 1450 2000000 4440000>, + <1570 1540 2000000 4440000>; + + sdp-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 2000000 4440000>, + <1480 1450 2000000 4440000>, + <1570 1540 2000000 4440000>; + + dcp-jeita-temp-table = + <1000 1030 0 4440000>, + <1150 1180 2000000 4440000>, + <1480 1450 2000000 4440000>, + <1570 1540 2000000 4440000>; + }; + }; }; From b90c91a339b13425c8bf7b7b32c9684cf278a40a Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 12:47:26 +0900 Subject: [PATCH 08/17] arm64: dts: blackview-tab15pro: add usb Signed-off-by: Akari Tsuyukusa --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 881b286c060064..0e51ecc3d54a94 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -303,3 +303,8 @@ }; }; }; + +&usb { + dr_mode = "peripheral"; + status = "okay"; +}; From 8aed964bb0aa923dbe381d16a095e2a47f6ce426 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 15:04:14 +0900 Subject: [PATCH 09/17] arm64: dts: sprd: blackview-tab15pro: add email Signed-off-by: Akari Tsuyukusa --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 0e51ecc3d54a94..ad61eb5a89464d 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: (GPL-2.0 OR MIT) /* - * Copyright (C) 2026 Akari Tsuyukusa + * Copyright (C) 2026 Akari Tsuyukusa */ /dts-v1/; From ce7cae0384fb37056d20a3d56a62dd735dfc1892 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 15:42:05 +0900 Subject: [PATCH 10/17] arm64: dts: sprd: blackview-tab15pro: drop battery node for now Signed-off-by: Akari Tsuyukusa --- .../dts/sprd/ums9230-blackview-tab15pro.dts | 246 ------------------ 1 file changed, 246 deletions(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index ad61eb5a89464d..6b824cf0d89c05 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -56,252 +56,6 @@ linux,cma-default; }; }; - - /* - * Battery node — converted from decompiled DTS (hex → decimal) - * - * Conventions (Spreadtrum/SPRD driver): - * - voltages : microvolt (µV) - * - currents : microamp (µA) - * - resistance: micro-ohm (µΩ) - * - capacity : microamp-hour (µAh) - * - JEITA temp columns: raw 0.1 °C units (÷10 → °C) - * e.g. 1000 = 100 °C, 1150 = 115 °C - * voltage-temp-table resistance column: ohm (NTC raw) - * voltage-temp-table temp column: raw 0.1 °C units (same encoding) - * - * JEITA table row format: - * All four JEITA zone tables share voltage = 4 440 000 µV (4.44 V = constant-charge-voltage-max) - */ - bat: battery { - compatible = "simple-battery"; - - /* - * Basic charge parameters - */ - - constant-charge-voltage-max-microvolt = <4440000>; /* 4.440 V */ - voltage-min-design-microvolt = <3450000>; /* 3.450 V */ - charge-full-design-microamp-hours = <7600000>; /* 7600 mAh */ - charge-term-current-microamp = <60000>; /* 60 mA */ - - /* Fast-charge threshold */ - fast-charge-threshold-microvolt = <4100000>; /* 4.100 V */ - - /* Full-battery detection */ - fullbatt-voltage = <4310000>; /* 4.310 V */ - fullbatt-current = <430000>; /* 430 mA */ - fullbatt-voltage-offset-microvolt = <45000>; /* 45 mV */ - fullbatt-track-end-vol = <4310000>; /* 4.310 V */ - fullbatt-track-end-cur = <430000>; /* 430 mA */ - first-fullbatt-current = <280000>; /* 280 mA */ - - /* Internal resistance */ - factory-internal-resistance-micro-ohms = <77000>; /* 77 mΩ */ - ir-rc-micro-ohms = <20000>; /* 20 mΩ */ - ir-cv-offset-microvolt = <100000>; /* 100 mV */ - ir-us-upper-limit-microvolt = <4500000>; /* 4.500 V */ - - /* First calibration point */ - first-calib-voltage = <3550000>; /* 3.550 V */ - first-calib-capacity = <50>; /* 50 % */ - - /* JEITA status override (zone index, 0 = auto) */ - force-jeita-status = <2>; - - /* - * Per-charger type max charge current: - */ - - charge-fchg-current-microamp = <3250000 2000000>; /* SFCP/HVDCP: 3250/2000 mA */ - charge-unknown-current-microamp = <2000000 2000000>; /* Unknown: 2000/2000 mA */ - charge-cdp-current-microamp = <2000000 2000000>; /* CDP: 2000/2000 mA */ - charge-dcp-current-microamp = <2000000 2000000>; /* DCP: 2000/2000 mA */ - charge-sdp-current-microamp = <2000000 2000000>; /* SDP: 2000/2000 mA */ - - /* - * OCV (Open Circuit Voltage) → capacity table @ 20 °C - * Format: (descending capacity) - */ - - ocv-capacity-celsius = <20>; - - ocv-capacity-table-0 = - <4321000 100>, - <4271000 95>, - <4210000 90>, - <4160000 85>, - <4105000 80>, - <4060000 75>, - <3995000 70>, - <3970000 65>, - <3931000 60>, - <3886000 55>, - <3852000 50>, - <3828000 45>, - <3810000 40>, - <3794000 35>, - <3781000 30>, - <3766000 25>, - <3740000 20>, - <3702000 15>, - <3654000 10>, - <3570000 5>, - <3480000 0>; - - /* - * Energy-density reference OCV breakpoints (µV) - * 3.350 V / 3.800 V / 4.150 V / 4.350 V - */ - - energy-desity-ocv-table = <3350000 3800000 4150000 4350000>; - - /* - * Resistance vs temperature - * Format: (normalised to 25 °C = 100 %) - */ - - resistance-temp-table = - < 45 53>, - < 25 100>, - < 10 395>, - < 0 567>, - <(-10) 793>; - - /* - * Capacity vs temperature - * Format: - */ - - capacity-temp-table = - < 45 100>, - < 25 100>, - < 10 95>, - < 0 78>, - <(-10) 60>; - - /* - * NTC thermistor: resistance (Ω) → temperature (raw 0.1 °C units) - * Format: - * resistance decreases as temperature rises (NTC characteristic) - */ - - voltage-temp-table = - <1242000 750>, /* 75.0 °C */ - <1132000 800>, /* 80.0 °C */ - <1022000 850>, /* 85.0 °C */ - < 886000 900>, /* 90.0 °C */ - < 803000 950>, /* 95.0 °C */ - < 691000 1000>, /* 100.0 °C */ - < 608000 1050>, /* 105.0 °C */ - < 512000 1100>, /* 110.0 °C */ - < 448000 1150>, /* 115.0 °C */ - < 376000 1200>, /* 120.0 °C */ - < 325000 1250>, /* 125.0 °C */ - < 278000 1300>, /* 130.0 °C */ - < 237000 1350>, /* 135.0 °C */ - < 203000 1400>, /* 140.0 °C */ - < 175000 1450>, /* 145.0 °C */ - < 148000 1500>, /* 150.0 °C */ - < 128000 1550>, /* 155.0 °C */ - < 118000 1600>; /* 160.0 °C */ - - /* - * JEITA charging tables - * Format per row: - * Temperature unit: raw 0.1 °C (e.g. 1000 = 100.0 °C, 1150 = 115.0 °C) - * All zones share constant-charge-voltage-max = 4 440 000 µV (4.44 V) - */ - - /* - * wl-epp-jeita-temp-table — Wireless EPP (Extended Power Profile) - * - * zone 1: temp < 100.0 °C → suspend (0 mA) - * zone 2: 115.0 °C ≤ temp < 118.0 °C → 2000 mA - * zone 3: 145.0 °C < temp ≤ 148.0 °C → 2000 mA - * zone 4: temp > 154.0 °C → 2000 mA - */ - wl-epp-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 2000000 4440000>, - <1480 1450 2000000 4440000>, - <1570 1540 2000000 4440000>; - - /* - * wl-bpp-jeita-temp-table — Wireless BPP (Baseline Power Profile) - * - * zone 1: temp < 100.0 °C → suspend (0 mA) - * zone 2: 115.0 °C ≤ temp < 118.0 °C → 500 mA - * zone 3: 145.0 °C < temp ≤ 148.0 °C → 1000 mA - * zone 4: temp > 154.0 °C → 5000 mA (shutdown zone) - */ - wl-bpp-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 500000 4440000>, - <1480 1450 1000000 4440000>, - <1570 1540 5000000 4440000>; - - /* - * flash-jeita-temp-table — Flash / Turbo charging - * - * 11 zones from < 100.0 °C to > 154.0 °C - * Peak current = 5000 mA (5 A) in 134.0–136.0 °C / 135.0–137.0 °C zones - */ - flash-jeita-temp-table = - <1000 1020 0 4440000>, - <1050 1070 500000 4440000>, - <1120 1140 1000000 4440000>, - <1160 1180 2000000 4440000>, - <1220 1240 4500000 4440000>, - <1340 1360 5000000 4440000>, - <1370 1350 5000000 4440000>, - <1400 1380 4500000 4440000>, - <1420 1400 4250000 4440000>, - <1450 1430 4000000 4440000>, - <1570 1540 1000000 4440000>; - - /* - * fchg-jeita-temp-table — Fast Charge (SFCP / PE) - * - * zone 1: temp < 100.0 °C → suspend (0 mA) - * zone 2: 115.0 °C ≤ temp < 118.0 °C → 3250 mA - * zone 3: 145.0 °C < temp ≤ 148.0 °C → 3250 mA - * zone 4: temp > 154.0 °C → 2100 mA (warm derating) - */ - fchg-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 3250000 4440000>, - <1480 1450 3250000 4440000>, - <1570 1540 2100000 4440000>; - - /* - * unknown / CDP / SDP / DCP — identical profile (2000 mA in all active zones) - */ - unknown-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 2000000 4440000>, - <1480 1450 2000000 4440000>, - <1570 1540 2000000 4440000>; - - cdp-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 2000000 4440000>, - <1480 1450 2000000 4440000>, - <1570 1540 2000000 4440000>; - - sdp-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 2000000 4440000>, - <1480 1450 2000000 4440000>, - <1570 1540 2000000 4440000>; - - dcp-jeita-temp-table = - <1000 1030 0 4440000>, - <1150 1180 2000000 4440000>, - <1480 1450 2000000 4440000>, - <1570 1540 2000000 4440000>; - }; - }; }; &usb { From b920f0945acb96f27c8774b12635fd7329bd139d Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 22:32:22 +0900 Subject: [PATCH 11/17] arm64: dts: sprd: blackview-tab15pro: fix framebuffer format Signed-off-by: Akari Tsuyukusa --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 6b824cf0d89c05..5d509b9d2c1784 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -27,7 +27,7 @@ width = <1200>; height = <1920>; stride = <(1920 * 4)>; - format = "a8r8g8b8"; + format = "r5g6b5"; status = "okay"; }; From f647d12aca8e1ae10452d10fce91834b832b948d Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 23:09:49 +0900 Subject: [PATCH 12/17] arm64: dts: sprd: blackview-tab15pro: fix framebuffer memory Signed-off-by: Akari Tsuyukusa --- .../boot/dts/sprd/ums9230-blackview-tab15pro.dts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 5d509b9d2c1784..b2ab0543d547b9 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -26,18 +26,23 @@ memory-region = <&framebuffer_region>; width = <1200>; height = <1920>; - stride = <(1920 * 4)>; + stride = <(1920 * 2)>; format = "r5g6b5"; status = "okay"; }; }; + memory@80000000 { + device_type = "memory"; + reg = <0x00 0x80000000 0x01 0xfffff000>; + }; + reserved-memory { framebuffer_region: framebuffer-region@9e000000 { compatible = "framebuffer"; - reg = <0 0x9e000000 0 (1920 * 1200 * 4)>; - iommu-addresses = <&dpu 0x9e000000 (1920 * 1200 * 4)>; + reg = <0 0x9e000000 0 (1200 * 1920 * 2)>; + //iommu-addresses = <&dpu 0x9e000000 (1200 * 1920 * 2)>; no-map; }; From cbb31b47a5f3bcae08877388363ff9dccfdde178 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 23:17:46 +0900 Subject: [PATCH 13/17] arm64: dts: sprd: blackview-tab15pro: fix framebuffer stride Signed-off-by: Akari Tsuyukusa --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index b2ab0543d547b9..ca9d30d02073b1 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -26,7 +26,7 @@ memory-region = <&framebuffer_region>; width = <1200>; height = <1920>; - stride = <(1920 * 2)>; + stride = <(1200 * 2)>; format = "r5g6b5"; status = "okay"; From 2e9eaf2b75e8d774809fe8e23ddcf6154988d4d2 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 23:26:30 +0900 Subject: [PATCH 14/17] arm: dts: ums9230-blackview-tab15pro: add bootargs = "clk_ignore_unused"; Signed-off-by: Akari Tsuyukusa --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index ca9d30d02073b1..5c5c9c684e2e11 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -21,6 +21,8 @@ }; chosen { + bootargs = "clk_ignore_unused"; + framebuffer { compatible = "simple-framebuffer"; memory-region = <&framebuffer_region>; From 2b477fdef3e896f59b3551c524bd59e6a56ad8a6 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Tue, 19 May 2026 23:35:15 +0900 Subject: [PATCH 15/17] arm64: dts: blackview-tab15pro: restore iommu-addresses Signed-off-by: Akari Tsuyukusa --- arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 5c5c9c684e2e11..5c5ceb324681f8 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -44,7 +44,7 @@ framebuffer_region: framebuffer-region@9e000000 { compatible = "framebuffer"; reg = <0 0x9e000000 0 (1200 * 1920 * 2)>; - //iommu-addresses = <&dpu 0x9e000000 (1200 * 1920 * 2)>; + iommu-addresses = <&dpu 0x9e000000 (1200 * 1920 * 2)>; no-map; }; From 5e1ae2543e41b1de3f82e82902583ca942949fde Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Wed, 20 May 2026 00:15:13 +0900 Subject: [PATCH 16/17] arm64: dts: sprd: blackview-tab15pro: add gpio-keys Signed-off-by: Akari Tsuyukusa --- .../dts/sprd/ums9230-blackview-tab15pro.dts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index 5c5ceb324681f8..b6e5a95fa01b81 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -63,6 +63,34 @@ linux,cma-default; }; }; + + gpio-keys { + compatible = "gpio-keys"; + + key-power { + label = "Power Key"; + linux,code = ; + gpios = <&pmic_eic 1 GPIO_ACTIVE_LOW>; + debounce-interval = <0x02>; + wakeup-source; + }; + + key-volumeup { + label = "Volume Up Key"; + linux,code = ; + gpios = <&ap_gpio 125 GPIO_ACTIVE_LOW>; + debounce-interval = <2>; + wakeup-source; + }; + + key-volumedown { + label = "Volume Down Key"; + linux,code = ; + gpios = <&ap_gpio 124 GPIO_ACTIVE_LOW>; + debounce-interval = <2>; + wakeup-source; + }; + }; }; &usb { From db517cb5db5a380a2f260e233745e8a36d02d426 Mon Sep 17 00:00:00 2001 From: Akari Tsuyukusa Date: Wed, 20 May 2026 00:23:50 +0900 Subject: [PATCH 17/17] WIP: arm64: dts: sprd: blackview-tab15pro: add usb, ufs, sd card (not working) Signed-off-by: Akari Tsuyukusa --- .../dts/sprd/ums9230-blackview-tab15pro.dts | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts index b6e5a95fa01b81..c60645f7718b01 100644 --- a/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts +++ b/arch/arm64/boot/dts/sprd/ums9230-blackview-tab15pro.dts @@ -21,7 +21,7 @@ }; chosen { - bootargs = "clk_ignore_unused"; + bootargs = "clk_ignore_unused pd_ignore_unused regulator_ignore_unused"; framebuffer { compatible = "simple-framebuffer"; @@ -97,3 +97,32 @@ dr_mode = "peripheral"; status = "okay"; }; + +&hsphy { + phy-supply = <&vddusb33>; + status = "okay"; +}; + +&ufs { + status = "okay"; + vcc-supply = <&vddemmccore>; +}; + +/* SD Card */ +&sdio0 { + status = "okay"; + + vmmc-supply = <&vddsdcore>; + vqmmc-supply = <&vddsdio>; + cd-gpios = <&eic_async 35 GPIO_ACTIVE_HIGH>; + + bus-width = <4>; + no-sdio; + no-mmc; + sprd,phy-delay-sd-uhs-sdr104 = <0x7f 0x73 0x72 0x72>; + sprd,phy-delay-sd-uhs-sdr50 = <0x6e 0x7f 0x01 0x01>; + sprd,phy-delay-sd-highspeed = <0x7f 0x1a 0x9a 0x9a>; + sprd,phy-delay-legacy = <0x7f 0x1a 0x9a 0x9a>; + sd-uhs-sdr104; + sd-uhs-sdr50; +};