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