Some checks failed
CI / markdown-lint (push) Failing after 15s
- Added comprehensive hardware research documentation - Created bootloader analysis and driver compatibility research - Set up development environment with cross-compilation tools - Created Q20-specific device tree (simplified version) - Added kernel build scripts and configuration - Set up CI/CD pipeline with Gitea Actions - Added .gitignore for build artifacts
244 lines
6.5 KiB
Plaintext
244 lines
6.5 KiB
Plaintext
/dts-v1/;
|
|
|
|
/ {
|
|
model = "BlackBerry Classic Q20";
|
|
compatible = "blackberry,q20", "qcom,msm8960";
|
|
|
|
interrupt-parent = <&intc>;
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
bootargs = "console=ttyMSM0,115200n8 root=/dev/mmcblk0p2 rw rootwait";
|
|
};
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0x00000000 0x80000000>; // 2GB RAM
|
|
};
|
|
|
|
reserved-memory {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
// Reserved for modem
|
|
modem@0x00000000 {
|
|
reg = <0x00000000 0x40000000>;
|
|
no-map;
|
|
};
|
|
|
|
// Reserved for display
|
|
display@0x40000000 {
|
|
reg = <0x40000000 0x10000000>;
|
|
no-map;
|
|
};
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu@0 {
|
|
device_type = "cpu";
|
|
compatible = "arm,cortex-a9";
|
|
reg = <0>;
|
|
next-level-cache = <&L2>;
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
};
|
|
|
|
cpu@1 {
|
|
device_type = "cpu";
|
|
compatible = "arm,cortex-a9";
|
|
reg = <1>;
|
|
next-level-cache = <&L2>;
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
};
|
|
};
|
|
|
|
cpu_opp_table: opp_table {
|
|
compatible = "operating-points-v2";
|
|
opp-shared;
|
|
|
|
opp-384000000 {
|
|
opp-hz = /bits/ 64 <384000000>;
|
|
opp-microvolt = <1050000>;
|
|
clock-latency-ns = <256000>;
|
|
};
|
|
|
|
opp-1026000000 {
|
|
opp-hz = /bits/ 64 <1026000000>;
|
|
opp-microvolt = <1150000>;
|
|
clock-latency-ns = <256000>;
|
|
};
|
|
|
|
opp-1500000000 {
|
|
opp-hz = /bits/ 64 <1500000000>;
|
|
opp-microvolt = <1250000>;
|
|
clock-latency-ns = <256000>;
|
|
};
|
|
};
|
|
|
|
soc {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
compatible = "simple-bus";
|
|
|
|
intc: interrupt-controller@2000000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
#interrupt-cells = <3>;
|
|
#size-cells = <0>;
|
|
#address-cells = <1>;
|
|
interrupt-controller;
|
|
reg = <0x02000000 0x1000>,
|
|
<0x02002000 0x1000>;
|
|
};
|
|
|
|
L2: l2-cache@2010000 {
|
|
compatible = "arm,pl310-cache";
|
|
reg = <0x02010000 0x1000>;
|
|
arm,data-latency = <3 3 3>;
|
|
arm,tag-latency = <2 2 2>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
};
|
|
|
|
// Serial console
|
|
serial@16440000 {
|
|
compatible = "qcom,msm-uartdm";
|
|
reg = <0x16440000 0x1000>;
|
|
interrupts = <0 154 0>;
|
|
clocks = <&gcc 108>, <&gcc 109>;
|
|
clock-names = "core", "iface";
|
|
status = "okay";
|
|
};
|
|
|
|
// Display controller
|
|
mdp@5100000 {
|
|
compatible = "qcom,mdp5";
|
|
reg = <0x05100000 0x90000>;
|
|
reg-names = "mdp_phys";
|
|
interrupts = <0 75 0>;
|
|
clocks = <&gcc 20>, <&gcc 21>;
|
|
clock-names = "iface", "core";
|
|
status = "okay";
|
|
};
|
|
|
|
// Audio system
|
|
sound {
|
|
compatible = "qcom,msm8960-snd-card";
|
|
qcom,model = "blackberry-q20-snd-card";
|
|
qcom,audio-routing = "RX_BIAS", "MCLK",
|
|
"LDO_H", "MCLK";
|
|
qcom,cdc-mclk-gpios = <&pm8941_gpios 15 0>;
|
|
};
|
|
|
|
// Keyboard controller
|
|
keyboard@78 {
|
|
compatible = "blackberry,q20-keyboard";
|
|
reg = <0x78>;
|
|
interrupts = <0 123 0>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
status = "okay";
|
|
};
|
|
|
|
// Trackpad
|
|
trackpad@5d {
|
|
compatible = "blackberry,q20-trackpad";
|
|
reg = <0x5d>;
|
|
interrupts = <0 124 0>;
|
|
status = "okay";
|
|
};
|
|
|
|
// Battery management
|
|
battery {
|
|
compatible = "blackberry,q20-battery";
|
|
voltage-min-design-microvolt = <3200000>;
|
|
voltage-max-design-microvolt = <4200000>;
|
|
energy-full-design-microwatt-hours = <9500000>;
|
|
charge-full-design-microamp-hours = <2515000>;
|
|
};
|
|
|
|
// Charger
|
|
charger {
|
|
compatible = "blackberry,q20-charger";
|
|
qcom,fast-charge-current = <1000000>;
|
|
qcom,fast-charge-voltage = <4200000>;
|
|
};
|
|
|
|
// USB OTG
|
|
usb@12500000 {
|
|
compatible = "qcom,ci-hdrc";
|
|
reg = <0x12500000 0x200>,
|
|
<0x12500200 0x200>;
|
|
interrupts = <0 134 0>;
|
|
status = "okay";
|
|
dr_mode = "otg";
|
|
};
|
|
|
|
// MMC/SD card
|
|
mmc@12400000 {
|
|
compatible = "qcom,msm-sdcc";
|
|
reg = <0x12400000 0x1000>;
|
|
interrupts = <0 81 0>;
|
|
clocks = <&gcc 80>, <&gcc 81>;
|
|
clock-names = "core", "iface";
|
|
status = "okay";
|
|
bus-width = <4>;
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
};
|
|
|
|
// Wi-Fi
|
|
wifi@0 {
|
|
compatible = "qcom,ath6kl";
|
|
reg = <0x0 0x0>;
|
|
interrupts = <0 70 0>;
|
|
status = "okay";
|
|
};
|
|
|
|
// Bluetooth
|
|
bluetooth@0 {
|
|
compatible = "qcom,wcn3660";
|
|
reg = <0x0 0x0>;
|
|
interrupts = <0 71 0>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
// Display panel
|
|
panel@0 {
|
|
compatible = "blackberry,q20-panel";
|
|
reg = <0>;
|
|
|
|
// Panel specifications
|
|
width-mm = <89>;
|
|
height-mm = <89>;
|
|
|
|
// Display timing
|
|
display-timings {
|
|
native-mode = <&timing0>;
|
|
|
|
timing0: timing0 {
|
|
clock-frequency = <72000000>;
|
|
hactive = <720>;
|
|
vactive = <720>;
|
|
hfront-porch = <10>;
|
|
hsync-len = <10>;
|
|
hback-porch = <10>;
|
|
vfront-porch = <10>;
|
|
vsync-len = <10>;
|
|
vback-porch = <10>;
|
|
};
|
|
};
|
|
|
|
// Backlight
|
|
backlight {
|
|
compatible = "pwm-backlight";
|
|
pwms = <&pwm 0 1000000>;
|
|
brightness-levels = <0 1 2 3 4 5 6 7 8 9 10>;
|
|
default-brightness-level = <10>;
|
|
};
|
|
};
|
|
}; |