| .. | .. |
|---|
| 192 | 192 | interrupts = <27>; |
|---|
| 193 | 193 | }; |
|---|
| 194 | 194 | |
|---|
| 195 | + bridge { |
|---|
| 196 | + compatible = "ti,ths8134a", "ti,ths8134"; |
|---|
| 197 | + #address-cells = <1>; |
|---|
| 198 | + #size-cells = <0>; |
|---|
| 199 | + |
|---|
| 200 | + ports { |
|---|
| 201 | + #address-cells = <1>; |
|---|
| 202 | + #size-cells = <0>; |
|---|
| 203 | + |
|---|
| 204 | + port@0 { |
|---|
| 205 | + reg = <0>; |
|---|
| 206 | + |
|---|
| 207 | + vga_bridge_in: endpoint { |
|---|
| 208 | + remote-endpoint = <&clcd_pads_vga_dac>; |
|---|
| 209 | + }; |
|---|
| 210 | + }; |
|---|
| 211 | + |
|---|
| 212 | + port@1 { |
|---|
| 213 | + reg = <1>; |
|---|
| 214 | + |
|---|
| 215 | + vga_bridge_out: endpoint { |
|---|
| 216 | + remote-endpoint = <&vga_con_in>; |
|---|
| 217 | + }; |
|---|
| 218 | + }; |
|---|
| 219 | + }; |
|---|
| 220 | + }; |
|---|
| 221 | + |
|---|
| 222 | + vga { |
|---|
| 223 | + compatible = "vga-connector"; |
|---|
| 224 | + |
|---|
| 225 | + port { |
|---|
| 226 | + vga_con_in: endpoint { |
|---|
| 227 | + remote-endpoint = <&vga_bridge_out>; |
|---|
| 228 | + }; |
|---|
| 229 | + }; |
|---|
| 230 | + }; |
|---|
| 231 | + |
|---|
| 195 | 232 | fpga { |
|---|
| 196 | 233 | /* |
|---|
| 197 | 234 | * These PrimeCells are at the same location and using |
|---|
| .. | .. |
|---|
| 254 | 291 | interrupts = <22>; |
|---|
| 255 | 292 | clocks = <&auxosc>, <&pclk>; |
|---|
| 256 | 293 | clock-names = "clcdclk", "apb_pclk"; |
|---|
| 294 | + /* 640x480 16bpp @ 25.175MHz is 36827428 bytes/s */ |
|---|
| 295 | + max-memory-bandwidth = <40000000>; |
|---|
| 257 | 296 | |
|---|
| 258 | | - port { |
|---|
| 259 | | - /* |
|---|
| 260 | | - * The VGA connected is implemented with a |
|---|
| 261 | | - * THS8134A triple DAC that can be run in 24bit |
|---|
| 262 | | - * or 16bit RGB mode. |
|---|
| 263 | | - */ |
|---|
| 264 | | - clcd_pads: endpoint { |
|---|
| 265 | | - remote-endpoint = <&clcd_panel>; |
|---|
| 266 | | - arm,pl11x,tft-r0g0b0-pads = <1 7 13>; |
|---|
| 267 | | - }; |
|---|
| 268 | | - }; |
|---|
| 269 | | - |
|---|
| 270 | | - panel { |
|---|
| 271 | | - compatible = "panel-dpi"; |
|---|
| 272 | | - |
|---|
| 273 | | - port { |
|---|
| 274 | | - clcd_panel: endpoint { |
|---|
| 275 | | - remote-endpoint = <&clcd_pads>; |
|---|
| 276 | | - }; |
|---|
| 277 | | - }; |
|---|
| 278 | | - |
|---|
| 279 | | - /* Standard 640x480 VGA timings */ |
|---|
| 280 | | - panel-timing { |
|---|
| 281 | | - clock-frequency = <25175000>; |
|---|
| 282 | | - hactive = <640>; |
|---|
| 283 | | - hback-porch = <48>; |
|---|
| 284 | | - hfront-porch = <16>; |
|---|
| 285 | | - hsync-len = <96>; |
|---|
| 286 | | - vactive = <480>; |
|---|
| 287 | | - vback-porch = <33>; |
|---|
| 288 | | - vfront-porch = <10>; |
|---|
| 289 | | - vsync-len = <2>; |
|---|
| 297 | + /* |
|---|
| 298 | + * This port is routed through a PLD (Programmable |
|---|
| 299 | + * Logic Device) that routes the output from the CLCD |
|---|
| 300 | + * (after transformations) to the VGA DAC and also an |
|---|
| 301 | + * external panel connector. The PLD is essential for |
|---|
| 302 | + * supporting RGB565/BGR565. |
|---|
| 303 | + * |
|---|
| 304 | + * The signals from the port thus reaches two endpoints. |
|---|
| 305 | + * The PLD is managed through a few special bits in the |
|---|
| 306 | + * FPGA "sysreg". |
|---|
| 307 | + * |
|---|
| 308 | + * This arrangement can be clearly seen in |
|---|
| 309 | + * ARM DUI 0225D, page 3-41, figure 3-19. |
|---|
| 310 | + */ |
|---|
| 311 | + port@0 { |
|---|
| 312 | + clcd_pads_vga_dac: endpoint { |
|---|
| 313 | + remote-endpoint = <&vga_bridge_in>; |
|---|
| 314 | + arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
|---|
| 290 | 315 | }; |
|---|
| 291 | 316 | }; |
|---|
| 292 | 317 | }; |
|---|