uzbek-plus/logs/b9/b9a/b9a-stock-dt.txt
q 4a7224c41f B9: built-in display (ST7735S SPI) in Linux and persistent B9C cache
- B9A: read-only audit of stock LK/DT: the panel is an ST7735S 128x128 on SPI (BLSP1 QUP4,
  16 MHz, mode 3, D/C GPIO116, RESET GPIO118), backlight = PM8916 MPP4 current sink 40 mA.
- B9B: upstream panel-mipi-dbi with the stock init sequence as firmware; MPP4 sink via pinctrl
  + gpio-backlight; first light with correct colours/orientation/offsets.
- B9C: fbcon (6x8, 21x16) on tty1 + getty, UART console kept, aurora-display service;
  cache B9C b9ce13c9 written and verified, cold boots with LTE + Wi-Fi + display.
- B9L (RAM only): lk2nd second stage with an msm8916 SPI panel port shows a picture before Linux.
- Sanitizer: whitelist for b8/ and b9/.
2026-10-03 01:45:02 +03:00

449 lines
15 KiB
Text

# B9A stock DT display chain (dtb_01 = 512MB MTP board-id 8/0x100, used by stock LK; dtb_00 display nodes are byte-identical, see below)
# source: dt/dtb_01.dts (decompiled stock QCDT from partitions/boot.bin). Read-only extraction by b9/b9a/dt-extract.py
# dt/dtb_01.dts:1183-1354
qcom,mdss_mdp@1a00000 {
compatible = "qcom,mdss_mdp";
reg = <0x1a00000 0x90000 0x1ac8000 0x3000>;
reg-names = "mdp_phys", "vbif_phys";
interrupts = <0x00 0x48 0x00>;
vdd-supply = <0x40>;
qcom,msm-bus,name = "mdss_mdp";
qcom,msm-bus,num-cases = <0x03>;
qcom,msm-bus,num-paths = <0x01>;
qcom,msm-bus,vectors-KBps = <0x16 0x200 0x00 0x00 0x16 0x200 0x00 0x61a800 0x16 0x200 0x00 0x61a800>;
qcom,mdss-ab-factor = <0x01 0x01>;
qcom,mdss-ib-factor = <0x02 0x01>;
qcom,mdss-clk-factor = <0x69 0x64>;
qcom,max-bandwidth-low-kbps = <0x10c8e0>;
qcom,max-bandwidth-high-kbps = <0x10c8e0>;
qcom,mdss-vbif-qos-rt-setting = <0x02 0x02 0x02 0x02>;
qcom,mdss-vbif-qos-nrt-setting = <0x01 0x01 0x01 0x01>;
qcom,mdss-mdp-reg-offset = <0x1000>;
qcom,max-clk-rate = <0x1312d000>;
qcom,mdss-pipe-vig-off = <0x5000>;
qcom,mdss-pipe-rgb-off = <0x15000 0x17000>;
qcom,mdss-pipe-dma-off = <0x25000>;
qcom,mdss-pipe-vig-fetch-id = <0x01>;
qcom,mdss-pipe-rgb-fetch-id = <0x07 0x08>;
qcom,mdss-pipe-dma-fetch-id = <0x04>;
qcom,mdss-pipe-vig-xin-id = <0x00>;
qcom,mdss-pipe-rgb-xin-id = <0x01 0x05>;
qcom,mdss-pipe-dma-xin-id = <0x02>;
qcom,mdss-pipe-vig-clk-ctrl-offsets = <0x2ac 0x00 0x00>;
qcom,mdss-pipe-rgb-clk-ctrl-offsets = <0x2ac 0x04 0x08 0x2b4 0x04 0x08>;
qcom,mdss-pipe-dma-clk-ctrl-offsets = <0x2ac 0x08 0x0c>;
qcom,mdss-smp-data = <0x08 0x2000>;
qcom,mdss-ctl-off = <0x2000 0x2200 0x2400>;
qcom,mdss-mixer-intf-off = <0x45000>;
qcom,mdss-mixer-wb-off = <0x48000>;
qcom,mdss-dspp-off = <0x55000>;
qcom,mdss-pingpong-off = <0x71000>;
qcom,mdss-wb-off = <0x65000 0x65800 0x66000>;
qcom,mdss-intf-off = <0x00 0x6b800>;
qcom,mdss-rot-block-size = <0x40>;
qcom,mdss-wfd-mode = "dedicated";
qcom,mdss-has-non-scalar-rgb;
qcom,mdss-has-decimation;
qcom,mdss-traffic-shaper-enabled;
vdd-cx-supply = <0x41>;
clocks = <0x3d 0xbfb92ed3 0x3d 0x668f51de 0x3d 0x6dc1f8f1 0x3d 0x22f3521f 0x3d 0x32a09f1f>;
clock-names = "iface_clk", "bus_clk", "core_clk_src", "core_clk", "vsync_clk";
qcom,vbif-settings = <0x04 0x01 0xd8 0x707 0x124 0x03>;
qcom,mdp-settings = <0x11e4 0x00 0x65048 0x08 0x65848 0x08 0x66048 0x08>;
qcom,mdss-prefill-outstanding-buffer-bytes = <0x400>;
qcom,mdss-prefill-y-buffer-bytes = <0x00>;
qcom,mdss-prefill-scaler-buffer-lines-bilinear = <0x02>;
qcom,mdss-prefill-scaler-buffer-lines-caf = <0x04>;
qcom,mdss-prefill-post-scaler-buffer-pixels = <0x00>;
qcom,mdss-prefill-pingpong-buffer-pixels = <0x1000>;
qcom,mdss-prefill-fbc-lines = <0x00>;
qcom,mdss-pref-prim-intf = "dsi";
linux,phandle = <0x45>;
phandle = <0x45>;
qcom,mdss_fb_primary {
cell-index = <0x00>;
compatible = "qcom,mdss-fb";
qcom,memblock-reserve = <0x83200000 0xfa0000>;
linux,phandle = <0x44>;
phandle = <0x44>;
};
qcom,mdss_fb_wfd {
cell-index = <0x01>;
compatible = "qcom,mdss-fb";
};
qcom,mdss_dsi_sim_video {
qcom,mdss-dsi-panel-name = "Simulator video mode dsi panel";
qcom,mdss-dsi-panel-controller = <0x42>;
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-destination = "display_1";
qcom,mdss-dsi-panel-framerate = <0x3c>;
qcom,mdss-dsi-virtual-channel-id = <0x00>;
qcom,mdss-dsi-stream = <0x00>;
qcom,mdss-dsi-panel-width = <0x280>;
qcom,mdss-dsi-panel-height = <0x1e0>;
qcom,mdss-dsi-h-front-porch = <0x06>;
qcom,mdss-dsi-h-back-porch = <0x06>;
qcom,mdss-dsi-h-pulse-width = <0x02>;
qcom,mdss-dsi-h-sync-skew = <0x00>;
qcom,mdss-dsi-v-back-porch = <0x06>;
qcom,mdss-dsi-v-front-porch = <0x06>;
qcom,mdss-dsi-v-pulse-width = <0x02>;
qcom,mdss-dsi-h-left-border = <0x00>;
qcom,mdss-dsi-h-right-border = <0x00>;
qcom,mdss-dsi-v-top-border = <0x00>;
qcom,mdss-dsi-v-bottom-border = <0x00>;
qcom,mdss-dsi-bpp = <0x18>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0x00>;
qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00];
qcom,mdss-dsi-off-command = [22 01 00 00 00 00 02 00 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
qcom,mdss-dsi-h-sync-pulse = <0x00>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = <0x00 0x00 0x00>;
qcom,mdss-dsi-t-clk-post = <0x04>;
qcom,mdss-dsi-t-clk-pre = <0x1b>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-reset-sequence = <0x01 0x14 0x00 0xc8 0x01 0x14>;
};
qcom,mdss_spi_st7735s_wx144_128x128_cmd {
qcom,mdss-spi-panel-name = "st7735s wx144 128x128 command mode spi panel";
qcom,mdss-spi-panel-destination = "display_1";
qcom,mdss-spi-panel-controller = <0x43>;
qcom,mdss-spi-panel-framerate = <0x14>;
qcom,mdss-spi-panel-width = <0x80>;
qcom,mdss-spi-panel-height = <0x80>;
qcom,mdss-spi-h-front-porch = <0x4f>;
qcom,mdss-spi-h-back-porch = <0x3b>;
qcom,mdss-spi-h-pulse-width = <0x3c>;
qcom,mdss-spi-v-back-porch = <0x0a>;
qcom,mdss-spi-v-front-porch = <0x07>;
qcom,mdss-spi-v-pulse-width = <0x02>;
qcom,mdss-spi-h-left-border = <0x00>;
qcom,mdss-spi-h-right-border = <0x00>;
qcom,mdss-spi-v-top-border = <0x00>;
qcom,mdss-spi-v-bottom-border = <0x00>;
qcom,mdss-spi-bpp = <0x10>;
qcom,mdss-spi-on-command = [78 01 11 00 04 b1 05 3a 3a 00 04 b2 05 3a 3a 00 07 b3 05 3a 3a 05 3a 3a 00 02 b4 03 00 04 c0 62 02 04 00 02 c1 c0 00 03 c2 0d 00 00 03 c3 8d 6a 00 03 c4 8d ee 00 02 c5 12 00 11 e0 03 1b 12 11 3f 3a 32 34 2f 2b 30 3a 00 01 02 05 00 11 e1 03 1b 12 11 32 2f 2a 2f 2e 2c 35 3f 00 00 01 05 00 02 36 c8 00 02 3a 05 00 05 2a 00 02 00 81 00 05 2b 00 03 00 82 00 01 29 00 01 2c];
qcom,mdss-spi-off-command = [00 01 28 78 01 10];
qcom,mdss-spi-bl-min-level = <0x01>;
qcom,mdss-spi-bl-max-level = <0xff>;
qcom,mdss-spi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-spi-reset-sequence = <0x01 0x01 0x00 0x01 0x01 0x78>;
qcom,cont-splash-enabled;
linux,phandle = <0x48>;
phandle = <0x48>;
};
qcom,mdss_spi_nv3023a_jz05_128x128_cmd {
qcom,mdss-spi-panel-name = "nv3023a jz05 128x128 command mode spi panel";
qcom,mdss-spi-panel-destination = "display_1";
qcom,mdss-spi-panel-controller = <0x43>;
qcom,mdss-spi-panel-framerate = <0x1b>;
qcom,mdss-spi-panel-width = <0x80>;
qcom,mdss-spi-panel-height = <0x80>;
qcom,mdss-spi-h-front-porch = <0x4f>;
qcom,mdss-spi-h-back-porch = <0x3b>;
qcom,mdss-spi-h-pulse-width = <0x3c>;
qcom,mdss-spi-v-back-porch = <0x0a>;
qcom,mdss-spi-v-front-porch = <0x07>;
qcom,mdss-spi-v-pulse-width = <0x02>;
qcom,mdss-spi-h-left-border = <0x00>;
qcom,mdss-spi-h-right-border = <0x00>;
qcom,mdss-spi-v-top-border = <0x00>;
qcom,mdss-spi-v-bottom-border = <0x00>;
qcom,mdss-spi-bpp = <0x10>;
qcom,mdss-spi-on-command = [00 02 ff a5 00 02 3e 09 00 02 3a 65 00 02 82 00 00 02 63 0f 00 02 64 0f 00 02 b4 24 00 02 b5 30 00 02 83 03 00 02 86 04 00 02 87 16 00 02 88 0f 00 02 89 2d 00 02 93 63 00 02 96 81 00 02 c3 10 00 02 e6 00 00 02 99 01 00 02 70 07 00 02 71 15 00 02 72 18 00 02 73 10 00 02 74 17 00 02 75 1b 00 02 76 38 00 02 77 0a 00 02 78 04 00 02 79 3c 00 02 7a 06 00 02 7b 0c 00 02 7c 11 00 02 7d 0b 00 02 7e 08 00 02 7f 12 00 02 a0 0d 00 02 a1 3e 00 02 a2 0b 00 02 a3 0f 00 02 a4 0a 00 02 a5 23 00 02 a6 48 00 02 a7 04 00 02 a8 05 00 02 a9 45 00 02 aa 0a 00 02 ab 12 00 02 ac 0d 00 02 ad 06 00 02 ae 3e 00 02 af 12 00 02 ff 00 78 01 11 00 02 36 88 00 01 21 00 05 2a 00 00 00 7f 00 05 2b 00 00 00 7f 0a 01 29 00 01 2c];
qcom,mdss-spi-off-command = [00 01 28 78 01 10];
qcom,mdss-spi-bl-min-level = <0x01>;
qcom,mdss-spi-bl-max-level = <0xff>;
qcom,mdss-spi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-spi-reset-sequence = <0x01 0x01 0x00 0x01 0x01 0x14>;
};
};
# dt/dtb_01.dts:1356-1359
qcom,mdss_dsi@1a98000 {
linux,phandle = <0x42>;
phandle = <0x42>;
};
# dt/dtb_01.dts:1361-1399
qcom,mdss_spi {
compatible = "qcom,mdss-spi-display";
label = "mdss spi panel";
qcom,mdss-fb-map = <0x44>;
qcom,mdss-mdp = <0x45>;
vdd-supply = <0x46>;
vddio-supply = <0x47>;
qcom,spi-pref-prim-pan = <0x48>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <0x49>;
pinctrl-1 = <0x4a>;
qcom,platform-reset-gpio = <0x4b 0x76 0x00>;
qcom,platform-spi-dc-gpio = <0x4b 0x74 0x00>;
linux,phandle = <0x43>;
phandle = <0x43>;
qcom,panel-supply-entries {
#address-cells = <0x01>;
#size-cells = <0x00>;
qcom,panel-supply-entry@0 {
reg = <0x00>;
qcom,supply-name = "vdd";
qcom,supply-min-voltage = <0x2b7cd0>;
qcom,supply-max-voltage = <0x2b7cd0>;
qcom,supply-enable-load = <0x186a0>;
qcom,supply-disable-load = <0x64>;
};
qcom,panel-supply-entry@1 {
reg = <0x01>;
qcom,supply-name = "vddio";
qcom,supply-min-voltage = <0x1b7740>;
qcom,supply-max-voltage = <0x1b7740>;
qcom,supply-enable-load = <0x186a0>;
qcom,supply-disable-load = <0x64>;
};
};
};
# dt/dtb_01.dts:1401-1437
qcom,mdss_dsi_pll@1a98300 {
label = "MDSS DSI 0 PLL";
cell-index = <0x00>;
#clock-cells = <0x01>;
reg = <0x1a98300 0xd4>;
reg-names = "pll_base";
gdsc-supply = <0x40>;
vddio-supply = <0x47>;
clocks = <0x3d 0xbfb92ed3>;
clock-names = "iface_clk";
clock-rate = <0x00>;
linux,phandle = <0xa7>;
phandle = <0xa7>;
qcom,platform-supply-entries {
#address-cells = <0x01>;
#size-cells = <0x00>;
qcom,platform-supply-entry@0 {
reg = <0x00>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0x00>;
qcom,supply-max-voltage = <0x00>;
qcom,supply-enable-load = <0x00>;
qcom,supply-disable-load = <0x00>;
};
qcom,platform-supply-entry@1 {
reg = <0x01>;
qcom,supply-name = "vddio";
qcom,supply-min-voltage = <0x1b7740>;
qcom,supply-max-voltage = <0x1b7740>;
qcom,supply-enable-load = <0x186a0>;
qcom,supply-disable-load = <0x64>;
};
};
};
# dt/dtb_01.dts:3487-3506
rpm-regulator-ldoa6 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <0x06>;
qcom,regulator-type = <0x00>;
qcom,hpm-min-load = <0x2710>;
status = "okay";
regulator-l6 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "8916_l6";
qcom,set = <0x03>;
status = "okay";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
qcom,init-voltage = <0x1b7740>;
linux,phandle = <0x47>;
phandle = <0x47>;
};
};
# dt/dtb_01.dts:3732-3751
rpm-regulator-ldoa17 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <0x11>;
qcom,regulator-type = <0x00>;
qcom,hpm-min-load = <0x2710>;
status = "okay";
regulator-l17 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "8916_l17";
qcom,set = <0x03>;
status = "okay";
regulator-min-microvolt = <0x2b7cd0>;
regulator-max-microvolt = <0x2b7cd0>;
qcom,init-voltage = <0x2b7cd0>;
linux,phandle = <0x46>;
phandle = <0x46>;
};
};
# dt/dtb_01.dts:4333-4362
spi@78b8000 {
compatible = "qcom,spi-qup-v2";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0x78b8000 0x600 0x7884000 0x23000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0x00 0x62 0x00 0x00 0xee 0x00>;
spi-max-frequency = <0x2faf080>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <0xc6 0xc7>;
pinctrl-1 = <0xc8 0xc9>;
clocks = <0x3d 0x8caa5b4f 0x3d 0x80f8722f>;
clock-names = "iface_clk", "core_clk";
qcom,infinite-mode = <0x00>;
qcom,use-bam;
qcom,use-pinctrl;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <0x0a>;
qcom,bam-producer-pipe-index = <0x0b>;
qcom,master-id = <0x56>;
status = "okay";
qcom,mdss_spi_client {
reg = <0x00>;
compatible = "qcom,mdss-spi-client";
label = "MDSS SPI QUP4 CLIENT";
spi-max-frequency = <0xf42400>;
};
};
# dt/dtb_01.dts:4893-4911
qcom,leds@a300 {
compatible = "qcom,leds-qpnp";
reg = <0xa300 0x100>;
label = "mpp";
status = "okay";
qcom,led_mpp_4 {
label = "mpp";
linux,name = "lcd-bl";
linux,default-trigger = "bkl-trigger";
qcom,default-state = "off";
qcom,max-current = <0x28>;
qcom,current-setting = <0x28>;
qcom,id = <0x06>;
qcom,mode = "manual";
qcom,source-sel = <0x01>;
qcom,mode-ctrl = <0x60>;
};
};
# dt/dtb_01.dts:6017-6029
spi0_active {
qcom,pins = <0xde 0x0c 0xde 0x0d 0xde 0x0f>;
qcom,num-grp-pins = <0x03>;
qcom,pin-func = <0x01>;
label = "spi0-active";
default {
drive-strength = <0x0c>;
bias-disable = <0x00>;
linux,phandle = <0xc6>;
phandle = <0xc6>;
};
};
# dt/dtb_01.dts:6031-6043
spi0_suspend {
qcom,pins = <0xde 0x0c 0xde 0x0d 0xde 0x0f>;
qcom,num-grp-pins = <0x03>;
qcom,pin-func = <0x00>;
label = "spi0-suspend";
sleep {
drive-strength = <0x02>;
bias-pull-down;
linux,phandle = <0xc8>;
phandle = <0xc8>;
};
};
# dt/dtb_01.dts:6045-6057
spi0_cs0_active {
qcom,pins = <0xde 0x0e>;
qcom,num-grp-pins = <0x01>;
qcom,pin-func = <0x01>;
label = "spi0-cs0-active";
cs0_active {
drive-strength = <0x02>;
bias-disable = <0x00>;
linux,phandle = <0xc7>;
phandle = <0xc7>;
};
};
# dt/dtb_01.dts:6059-6071
spi0_cs0_suspend {
qcom,pins = <0xde 0x0e>;
qcom,num-grp-pins = <0x01>;
qcom,pin-func = <0x00>;
label = "spi0-cs0-suspend";
cs0_sleep {
drive-strength = <0x02>;
bias-disable = <0x00>;
linux,phandle = <0xc9>;
phandle = <0xc9>;
};
};
# dt/dtb_01.dts:6389-6410
pmx_mdss {
label = "mdss-pins";
qcom,pin-func = <0x00>;
qcom,num-grp-pins = <0x02>;
qcom,pins = <0xde 0x76 0xde 0x74>;
active {
drive-strength = <0x08>;
bias-disable = <0x00>;
output-high;
linux,phandle = <0x49>;
phandle = <0x49>;
};
suspend {
drive-strength = <0x02>;
bias-pull-down;
output-low;
linux,phandle = <0x4a>;
phandle = <0x4a>;
};
};
# reserved memory / splash
1246: qcom,memblock-reserve = <0x83200000 0xfa0000>;
1324: qcom,cont-splash-enabled;
# dtb_00 vs dtb_01 display-node sha (phandles stripped): identical