1 /*
2  * disp_board_config.c
3  *
4  * Copyright (c) 2007-2020 Allwinnertech Co., Ltd.
5  * Author: zhengxiaobin <zhengxiaobin@allwinnertech.com>
6  *
7  * This software is licensed under the terms of the GNU General Public
8  * License version 2, as published by the Free Software Foundation, and
9  * may be copied, distributed, and modified under those terms.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  */
17 
18 #include <stdio.h>
19 #include <stdint.h>
20 #include <stdlib.h>
21 #include <hal_clk.h>
22 #include <hal_gpio.h>
23 #include "../disp/disp_sys_intf.h"
24 #include "disp_board_config.h"
25 
26 struct property_t g_lcd0_config[] = {
27     {
28         .name = "lcd_used",
29         .type = PROPERTY_INTGER,
30         .v.value = 1,
31     },
32     {
33         .name = "lcd_driver_name",
34         .type = PROPERTY_STRING,
35         .v.str = "st7701s",
36     },
37     {
38         .name = "lcd_backlight",
39         .type = PROPERTY_INTGER,
40         .v.value = 150,
41     },
42     {
43         .name = "lcd_if",
44         .type = PROPERTY_INTGER,
45         .v.value = 4,
46     },
47     {
48         .name = "lcd_x",
49         .type = PROPERTY_INTGER,
50         .v.value = 480,
51     },
52     {
53         .name = "lcd_y",
54         .type = PROPERTY_INTGER,
55         .v.value = 640,
56     },
57     {
58         .name = "lcd_width",
59         .type = PROPERTY_INTGER,
60         .v.value = 36,
61     },
62     {
63         .name = "lcd_height",
64         .type = PROPERTY_INTGER,
65         .v.value = 65,
66     },
67     {
68         .name = "lcd_dclk_freq",
69         .type = PROPERTY_INTGER,
70         .v.value = 25,
71     },
72     {
73         .name = "lcd_pwm_used",
74         .type = PROPERTY_INTGER,
75         .v.value = 1,
76     },
77     {
78         .name = "lcd_pwm_ch",
79         .type = PROPERTY_INTGER,
80         .v.value = 9,
81     },
82     {
83         .name = "lcd_pwm_freq",
84         .type = PROPERTY_INTGER,
85         .v.value = 5000,
86     },
87     {
88         .name = "lcd_pwm_pol",
89         .type = PROPERTY_INTGER,
90         .v.value = 1,
91     },
92     {
93         .name = "lcd_pwm_max_limit",
94         .type = PROPERTY_INTGER,
95         .v.value = 255,
96     },
97     {
98         .name = "lcd_hbp",
99         .type = PROPERTY_INTGER,
100         .v.value = 70,
101     },
102     {
103         .name = "lcd_ht",
104         .type = PROPERTY_INTGER,
105         .v.value = 615,
106     },
107     {
108         .name = "lcd_hspw",
109         .type = PROPERTY_INTGER,
110         .v.value = 8,
111     },
112     {
113         .name = "lcd_vbp",
114         .type = PROPERTY_INTGER,
115         .v.value = 30,
116     },
117     {
118         .name = "lcd_vt",
119         .type = PROPERTY_INTGER,
120         .v.value = 690,
121     },
122     {
123         .name = "lcd_vspw",
124         .type = PROPERTY_INTGER,
125         .v.value = 10,
126     },
127     {
128         .name = "lcd_dsi_if",
129         .type = PROPERTY_INTGER,
130         .v.value = 0,
131     },
132     {
133         .name = "lcd_dsi_lane",
134         .type = PROPERTY_INTGER,
135         .v.value = 2,
136     },
137     {
138         .name = "lcd_dsi_format",
139         .type = PROPERTY_INTGER,
140         .v.value = 0,
141     },
142     {
143         .name = "lcd_dsi_te",
144         .type = PROPERTY_INTGER,
145         .v.value = 0,
146     },
147     {
148         .name = "lcd_frm",
149         .type = PROPERTY_INTGER,
150         .v.value = 0,
151     },
152     {
153         .name = "lcd_power",
154         .type = PROPERTY_POWER,
155         .v.power = {
156             .power_name = "dldo1",
157             .power_type = AXP2101_REGULATOR,
158             .power_id = AXP2101_ID_DLDO1,
159             .power_vol = 3300000,
160         },
161     },
162     {
163         .name = "lcd_pin_power",
164         .type = PROPERTY_POWER,
165         .v.power = {
166             .power_name = "bldo1",
167             .power_type = AXP2101_REGULATOR,
168             .power_id = AXP2101_ID_BLDO1,
169             .power_vol = 1800000,
170             .always_on = true,
171         },
172     },
173     {
174         .name = "lcd_gpio_0",
175         .type = PROPERTY_GPIO,
176         .v.gpio_list = {
177             .gpio = GPIOD(9),
178             .mul_sel = GPIO_DIRECTION_OUTPUT,
179             .pull = 0,
180             .drv_level = 3,
181             .data = 1,
182         },
183     },
184 
185 };
186 
187 struct property_t g_lcd1_config[] = {
188     {
189         .name = "lcd_used",
190         .type = PROPERTY_INTGER,
191         .v.value = 0,
192     },
193 };
194 
195 struct property_t g_disp_config[] = {
196     {
197         .name = "disp_init_enable",
198         .type = PROPERTY_INTGER,
199         .v.value = 1,
200     },
201     {
202         .name = "disp_mode",
203         .type = PROPERTY_INTGER,
204         .v.value = 0,
205     },
206     {
207         .name = "screen0_output_type",
208         .type = PROPERTY_INTGER,
209         .v.value = 1,
210     },
211     {
212         .name = "screen0_output_mode",
213         .type = PROPERTY_INTGER,
214         .v.value = 4,
215     },
216     {
217         .name = "screen1_output_type",
218         .type = PROPERTY_INTGER,
219         .v.value = 1,
220     },
221     {
222         .name = "screen1_output_mode",
223         .type = PROPERTY_INTGER,
224         .v.value = 4,
225     },
226 };
227 
228 u32 g_lcd0_config_len = sizeof(g_lcd0_config) / sizeof(struct property_t);
229 u32 g_lcd1_config_len = sizeof(g_lcd1_config) / sizeof(struct property_t);
230 u32 g_disp_config_len = sizeof(g_disp_config) / sizeof(struct property_t);
231