Skip to content

Commit 9cc16f9

Browse files
dtsi: add pinctrl
Fixes #29
1 parent 0478be9 commit 9cc16f9

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

dtsi.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def generate_supplies(options: Options):
1414
if options.regulator:
1515
for r in options.regulator:
1616
s += f"\t\t{r}-supply = <&...>;\n"
17+
s += "\n"
1718
return s
1819

1920

@@ -22,6 +23,43 @@ def generate_gpios(options: Options):
2223
for name, flags in options.gpios.items():
2324
flags = "GPIO_ACTIVE_LOW" if flags & GpioFlag.ACTIVE_LOW else "GPIO_ACTIVE_HIGH"
2425
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+
'''
2563
return s
2664

2765

@@ -35,6 +73,10 @@ def generate_panel_dtsi(p: Panel, options: Options) -> None:
3573
''')
3674
f.write(f'''\
3775
&mdss_dsi0 {{
76+
pinctrl-0 = <&mdss_default>;
77+
pinctrl-1 = <&mdss_sleep>;
78+
pinctrl-names = "default", "sleep";
79+
3880
panel@0 {{
3981
compatible = "{options.compatible}";
4082
reg = <0>;
@@ -55,6 +97,7 @@ def generate_panel_dtsi(p: Panel, options: Options) -> None:
5597
data-lanes = <{' '.join(map(str, p.lane_map.phys2log[:p.lanes]))}>;
5698
remote-endpoint = <&panel_in>;
5799
}};
100+
58101
''')
59102

60103
if p.ldo_mode:
@@ -69,3 +112,5 @@ def generate_panel_dtsi(p: Panel, options: Options) -> None:
69112
phy-type = <PHY_TYPE_CPHY>;
70113
};
71114
''')
115+
116+
f.write(generate_tlmm(options))

0 commit comments

Comments
 (0)