@@ -14,6 +14,7 @@ def generate_supplies(options: Options):
14
14
if options .regulator :
15
15
for r in options .regulator :
16
16
s += f"\t \t { r } -supply = <&...>;\n "
17
+ s += "\n "
17
18
return s
18
19
19
20
@@ -22,6 +23,43 @@ def generate_gpios(options: Options):
22
23
for name , flags in options .gpios .items ():
23
24
flags = "GPIO_ACTIVE_LOW" if flags & GpioFlag .ACTIVE_LOW else "GPIO_ACTIVE_HIGH"
24
25
s += f"\t \t { name } -gpios = <&tlmm XY { flags } >;\n "
26
+
27
+ if 'backlight' in options .gpios :
28
+ s += '''
29
+ pinctrl-0 = <&lcd_bl_en_default>;
30
+ pinctrl-names = "default";
31
+ '''
32
+ return s
33
+
34
+
35
+ def generate_tlmm (options : Options ):
36
+ s = "&tlmm {"
37
+ if 'backlight' in options .gpios :
38
+ s += '''
39
+ lcd_bl_en_default: lcd-bl-en-default-state {
40
+ pins = "gpioXY";
41
+ function = "gpio";
42
+ drive-strength = <2>;
43
+ bias-disable;
44
+ };
45
+ '''
46
+
47
+ s += '''
48
+ mdss_default: mdss-default-state {
49
+ pins = "gpioXY";
50
+ function = "gpio";
51
+ drive-strength = <8>;
52
+ bias-disable;
53
+ };
54
+
55
+ mdss_sleep: mdss-sleep-state {
56
+ pins = "gpioXY";
57
+ function = "gpio";
58
+ drive-strength = <2>;
59
+ bias-pull-down;
60
+ };
61
+ };
62
+ '''
25
63
return s
26
64
27
65
@@ -35,6 +73,10 @@ def generate_panel_dtsi(p: Panel, options: Options) -> None:
35
73
''' )
36
74
f .write (f'''\
37
75
&mdss_dsi0 {{
76
+ pinctrl-0 = <&mdss_default>;
77
+ pinctrl-1 = <&mdss_sleep>;
78
+ pinctrl-names = "default", "sleep";
79
+
38
80
panel@0 {{
39
81
compatible = "{ options .compatible } ";
40
82
reg = <0>;
@@ -55,6 +97,7 @@ def generate_panel_dtsi(p: Panel, options: Options) -> None:
55
97
data-lanes = <{ ' ' .join (map (str , p .lane_map .phys2log [:p .lanes ]))} >;
56
98
remote-endpoint = <&panel_in>;
57
99
}};
100
+
58
101
''' )
59
102
60
103
if p .ldo_mode :
@@ -69,3 +112,5 @@ def generate_panel_dtsi(p: Panel, options: Options) -> None:
69
112
phy-type = <PHY_TYPE_CPHY>;
70
113
};
71
114
''' )
115
+
116
+ f .write (generate_tlmm (options ))
0 commit comments