| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
| /* | 
|  * Copyright (c) 2022 Rockchip Electronics Co., Ltd. | 
|  */ | 
|   | 
| #include <dt-bindings/display/media-bus-format.h> | 
|   | 
| / { | 
|     backlight: backlight { | 
|         status = "okay"; | 
|         compatible = "pwm-backlight"; | 
|         pwms = <&pwm3 0 25000 0>; | 
|         brightness-levels = < | 
|               0   1   2   3   4   5   6   7 | 
|               8   9  10  11  12  13  14  15 | 
|              16  17  18  19  20  21  22  23 | 
|              24  25  26  27  28  29  30  31 | 
|              32  33  34  35  36  37  38  39 | 
|              40  41  42  43  44  45  46  47 | 
|              48  49  50  51  52  53  54  55 | 
|              56  57  58  59  60  61  62  63 | 
|              64  65  66  67  68  69  70  71 | 
|              72  73  74  75  76  77  78  79 | 
|              80  81  82  83  84  85  86  87 | 
|              88  89  90  91  92  93  94  95 | 
|              96  97  98  99 100 101 102 103 | 
|             104 105 106 107 108 109 110 111 | 
|             112 113 114 115 116 117 118 119 | 
|             120 121 122 123 124 125 126 127 | 
|             128 129 130 131 132 133 134 135 | 
|             136 137 138 139 140 141 142 143 | 
|             144 145 146 147 148 149 150 151 | 
|             152 153 154 155 156 157 158 159 | 
|             160 161 162 163 164 165 166 167 | 
|             168 169 170 171 172 173 174 175 | 
|             176 177 178 179 180 181 182 183 | 
|             184 185 186 187 188 189 190 191 | 
|             192 193 194 195 196 197 198 199 | 
|             200 201 202 203 204 205 206 207 | 
|             208 209 210 211 212 213 214 215 | 
|             216 217 218 219 220 221 222 223 | 
|             224 225 226 227 228 229 230 231 | 
|             232 233 234 235 236 237 238 239 | 
|             240 241 242 243 244 245 246 247 | 
|             248 249 250 251 252 253 254 255>; | 
|         default-brightness-level = <200>; | 
|     }; | 
|   | 
|     reserved-memory { | 
|         #address-cells = <1>; | 
|         #size-cells = <1>; | 
|         ranges; | 
|   | 
|         linux,cma { | 
|             compatible = "shared-dma-pool"; | 
|             inactive; | 
|             reusable; | 
|             size = <0x1000000>; | 
|             linux,cma-default; | 
|         }; | 
|   | 
|         drm_logo: drm-logo@00000000 { | 
|             compatible = "rockchip,drm-logo"; | 
|             reg = <0x0 0x0>; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &display_subsystem { | 
|     status = "okay"; | 
|     logo-memory-region = <&drm_logo>; | 
| }; | 
|   | 
| &pwm3 { | 
|     status = "okay"; | 
|     pinctrl-names = "active"; | 
|     pinctrl-0 = <&pwm3m1_pins>; | 
| }; | 
|   | 
| &rgb { | 
|     status = "okay"; | 
|     rockchip,data-sync-bypass; | 
|     pinctrl-names = "default"; | 
|     /* | 
|      * rgb3x8_pins for RGB3x8(8bit) | 
|      * rgb565_pins for RGB565(16bit) | 
|      */ | 
|     pinctrl-0 = <&rgb565_pins>; | 
|   | 
|     /* | 
|      * 320x480 RGB/MCU screen K350C4516T | 
|      */ | 
|     mcu_panel: mcu-panel { | 
|         /* | 
|          * MEDIA_BUS_FMT_RGB888_3X8  for RGB3x8(8bit) | 
|          * MEDIA_BUS_FMT_RGB565_1X16 for RGB565(16bit) | 
|          */ | 
|         bus-format = <MEDIA_BUS_FMT_RGB565_1X16>; | 
|         backlight = <&backlight>; | 
|         enable-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>; | 
|         enable-delay-ms = <20>; | 
|         reset-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>; | 
|         reset-delay-ms = <10>; | 
|         prepare-delay-ms = <20>; | 
|         unprepare-delay-ms = <20>; | 
|         disable-delay-ms = <20>; | 
|         init-delay-ms = <10>; | 
|         width-mm = <217>; | 
|         height-mm = <136>; | 
|   | 
|         // type:0 is cmd, 1 is data | 
|         panel-init-sequence = [ | 
|             //type delay num val1 val2 val3 | 
|               00   00  01  e0 | 
|               01   00  01  00 | 
|               01   00  01  07 | 
|               01   00  01  0f | 
|               01   00  01  0d | 
|               01   00  01  1b | 
|               01   00  01  0a | 
|               01   00  01  3c | 
|               01   00  01  78 | 
|               01   00  01  4a | 
|               01   00  01  07 | 
|               01   00  01  0e | 
|               01   00  01  09 | 
|               01   00  01  1b | 
|               01   00  01  1e | 
|               01   00  01  0f | 
|               00   00  01  e1 | 
|               01   00  01  00 | 
|               01   00  01  22 | 
|               01   00  01  24 | 
|               01   00  01  06 | 
|               01   00  01  12 | 
|               01   00  01  07 | 
|               01   00  01  36 | 
|               01   00  01  47 | 
|               01   00  01  47 | 
|               01   00  01  06 | 
|               01   00  01  0a | 
|               01   00  01  07 | 
|               01   00  01  30 | 
|               01   00  01  37 | 
|               01   00  01  0f | 
|   | 
|               00   00  01  c0 | 
|               01   00  01  10 | 
|               01   00  01  10 | 
|   | 
|               00   00  01  c1 | 
|               01   00  01  41 | 
|   | 
|               00   00  01  c5 | 
|               01   00  01  00 | 
|               01   00  01  22 | 
|               01   00  01  80 | 
|   | 
|               00   00  01  36 | 
|               01   00  01  48 | 
|   | 
|               00   00  01  3a | 
|               01   00  01  55 /* | 
|                        * interface pixel format: | 
|                        * 66 for RGB3x8(8bit) | 
|                        * 55 for RGB565(16bit) | 
|                        */ | 
|   | 
|               00   00  01  b0 | 
|               01   00  01  00 | 
|   | 
|               00   00  01  b1 | 
|               01   00  01  a0 /* | 
|                        * frame rate control: | 
|                        * 70 (45hz) for RGB3x8(8bit) | 
|                        * a0 (60hz) for RGB565(16bit) | 
|                        */ | 
|               01   00  01  11 | 
|               00   00  01  b4 | 
|               01   00  01  02 | 
|               00   00  01  B6 | 
|               01   00  01  02 /* | 
|                        * display function control: | 
|                        * 32 for RGB | 
|                        * 02 for MCU | 
|                        */ | 
|               01   00  01  02 | 
|   | 
|               00   00  01  b7 | 
|               01   00  01  c6 | 
|   | 
|               00   00  01  be | 
|               01   00  01  00 | 
|               01   00  01  04 | 
|   | 
|               00   00  01  e9 | 
|               01   00  01  00 | 
|   | 
|               00   00  01  f7 | 
|               01   00  01  a9 | 
|               01   00  01  51 | 
|               01   00  01  2c | 
|               01   00  01  82 | 
|   | 
|               00   78  01  11 | 
|               00   32  01  29 | 
|               00   00  01  2c | 
|         ]; | 
|   | 
|         panel-exit-sequence = [ | 
|             //type delay num val1 val2 val3 | 
|             00   0a  01  28 | 
|             00   78  01  10 | 
|         ]; | 
|   | 
|         display-timings { | 
|             native-mode = <&kd050fwfba002_timing>; | 
|   | 
|             kd050fwfba002_timing: timing0 { | 
|                 /* | 
|                  * 7840125  for frame rate 45Hz | 
|                  * 10453500 for frame rate 60Hz | 
|                  */ | 
|                 clock-frequency = <10453500>; | 
|                 hactive = <320>; | 
|                 vactive = <480>; | 
|                 hback-porch = <10>; | 
|                 hfront-porch = <5>; | 
|                 vback-porch = <10>; | 
|                 vfront-porch = <5>; | 
|                 hsync-len = <10>; | 
|                 vsync-len = <10>; | 
|                 hsync-active = <0>; | 
|                 vsync-active = <0>; | 
|                 de-active = <0>; | 
|                 pixelclk-active = <1>; | 
|             }; | 
|         }; | 
|   | 
|         port { | 
|             panel_in_rgb: endpoint { | 
|                 remote-endpoint = <&rgb_out_panel>; | 
|             }; | 
|         }; | 
|     }; | 
|   | 
|     ports { | 
|         rgb_out: port@1 { | 
|             reg = <1>; | 
|             #address-cells = <1>; | 
|             #size-cells = <0>; | 
|   | 
|             rgb_out_panel: endpoint@0 { | 
|                 reg = <0>; | 
|                 remote-endpoint = <&panel_in_rgb>; | 
|             }; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &rgb_in_vop { | 
|     status = "okay"; | 
| }; | 
|   | 
| &route_rgb { | 
|     status = "disabled"; | 
| }; | 
|   | 
| /* | 
|  * The pins of sdmmc1 and lcd are multiplexed | 
|  */ | 
| &sdio { | 
|     status = "disabled"; | 
| }; | 
|   | 
| &sdio_pwrseq { | 
|     status = "disabled"; | 
| }; | 
|   | 
| &vop { | 
|     status = "okay"; | 
|   | 
|     /* | 
|      * Default config is as follows: | 
|      * | 
|      * mcu-pix-total = <9>; | 
|      * mcu-cs-pst = <1>; | 
|      * mcu-cs-pend = <8>; | 
|      * mcu-rw-pst = <2>; | 
|      * mcu-rw-pend = <5>; | 
|      * mcu-hold-mode = <0>; // default set to 0 | 
|      * | 
|      * To increase the frame rate, reduce all parameters because | 
|      * the max dclk rate of mcu is 150M in rv1103/rv1106. | 
|      */ | 
|     mcu-timing { | 
|         mcu-pix-total = <5>; | 
|         mcu-cs-pst = <1>; | 
|         mcu-cs-pend = <4>; | 
|         mcu-rw-pst = <2>; | 
|         mcu-rw-pend = <3>; | 
|   | 
|         mcu-hold-mode = <0>; // default set to 0 | 
|     }; | 
| }; |