1*57b7d5d3SDharma Balasubiramani# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*57b7d5d3SDharma Balasubiramani%YAML 1.2 3*57b7d5d3SDharma Balasubiramani--- 4*57b7d5d3SDharma Balasubiramani$id: http://devicetree.org/schemas/display/atmel,lcdc-display.yaml# 5*57b7d5d3SDharma Balasubiramani$schema: http://devicetree.org/meta-schemas/core.yaml# 6*57b7d5d3SDharma Balasubiramani 7*57b7d5d3SDharma Balasubiramanititle: Microchip's LCDC Display 8*57b7d5d3SDharma Balasubiramani 9*57b7d5d3SDharma Balasubiramanimaintainers: 10*57b7d5d3SDharma Balasubiramani - Nicolas Ferre <nicolas.ferre@microchip.com> 11*57b7d5d3SDharma Balasubiramani - Dharma Balasubiramani <dharma.b@microchip.com> 12*57b7d5d3SDharma Balasubiramani 13*57b7d5d3SDharma Balasubiramanidescription: 14*57b7d5d3SDharma Balasubiramani The LCD Controller (LCDC) consists of logic for transferring LCD image data 15*57b7d5d3SDharma Balasubiramani from an external display buffer to a TFT LCD panel. The LCDC has one display 16*57b7d5d3SDharma Balasubiramani input buffer per layer that fetches pixels through the single bus host 17*57b7d5d3SDharma Balasubiramani interface and a look-up table to allow palletized display configurations. The 18*57b7d5d3SDharma Balasubiramani LCDC is programmable on a per layer basis, and supports different LCD 19*57b7d5d3SDharma Balasubiramani resolutions, window sizes, image formats and pixel depths. 20*57b7d5d3SDharma Balasubiramani 21*57b7d5d3SDharma Balasubiramani# We need a select here since this schema is applicable only for nodes with the 22*57b7d5d3SDharma Balasubiramani# following properties 23*57b7d5d3SDharma Balasubiramani 24*57b7d5d3SDharma Balasubiramaniselect: 25*57b7d5d3SDharma Balasubiramani anyOf: 26*57b7d5d3SDharma Balasubiramani - required: [ 'atmel,dmacon' ] 27*57b7d5d3SDharma Balasubiramani - required: [ 'atmel,lcdcon2' ] 28*57b7d5d3SDharma Balasubiramani - required: [ 'atmel,guard-time' ] 29*57b7d5d3SDharma Balasubiramani 30*57b7d5d3SDharma Balasubiramaniproperties: 31*57b7d5d3SDharma Balasubiramani atmel,dmacon: 32*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/uint32 33*57b7d5d3SDharma Balasubiramani description: dma controller configuration 34*57b7d5d3SDharma Balasubiramani 35*57b7d5d3SDharma Balasubiramani atmel,lcdcon2: 36*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/uint32 37*57b7d5d3SDharma Balasubiramani description: lcd controller configuration 38*57b7d5d3SDharma Balasubiramani 39*57b7d5d3SDharma Balasubiramani atmel,guard-time: 40*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/uint32 41*57b7d5d3SDharma Balasubiramani description: lcd guard time (Delay in frame periods) 42*57b7d5d3SDharma Balasubiramani maximum: 127 43*57b7d5d3SDharma Balasubiramani 44*57b7d5d3SDharma Balasubiramani bits-per-pixel: 45*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/uint32 46*57b7d5d3SDharma Balasubiramani description: lcd panel bit-depth. 47*57b7d5d3SDharma Balasubiramani enum: [1, 2, 4, 8, 16, 24, 32] 48*57b7d5d3SDharma Balasubiramani 49*57b7d5d3SDharma Balasubiramani atmel,lcdcon-backlight: 50*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/flag 51*57b7d5d3SDharma Balasubiramani description: enable backlight 52*57b7d5d3SDharma Balasubiramani 53*57b7d5d3SDharma Balasubiramani atmel,lcdcon-backlight-inverted: 54*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/flag 55*57b7d5d3SDharma Balasubiramani description: invert backlight PWM polarity 56*57b7d5d3SDharma Balasubiramani 57*57b7d5d3SDharma Balasubiramani atmel,lcd-wiring-mode: 58*57b7d5d3SDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/string 59*57b7d5d3SDharma Balasubiramani description: lcd wiring mode "RGB" or "BRG" 60*57b7d5d3SDharma Balasubiramani enum: 61*57b7d5d3SDharma Balasubiramani - RGB 62*57b7d5d3SDharma Balasubiramani - BRG 63*57b7d5d3SDharma Balasubiramani 64*57b7d5d3SDharma Balasubiramani atmel,power-control-gpio: 65*57b7d5d3SDharma Balasubiramani description: gpio to power on or off the LCD (as many as needed) 66*57b7d5d3SDharma Balasubiramani maxItems: 1 67*57b7d5d3SDharma Balasubiramani 68*57b7d5d3SDharma Balasubiramani display-timings: 69*57b7d5d3SDharma Balasubiramani $ref: panel/display-timings.yaml# 70*57b7d5d3SDharma Balasubiramani 71*57b7d5d3SDharma Balasubiramanirequired: 72*57b7d5d3SDharma Balasubiramani - atmel,dmacon 73*57b7d5d3SDharma Balasubiramani - atmel,lcdcon2 74*57b7d5d3SDharma Balasubiramani - atmel,guard-time 75*57b7d5d3SDharma Balasubiramani - bits-per-pixel 76*57b7d5d3SDharma Balasubiramani 77*57b7d5d3SDharma BalasubiramaniadditionalProperties: false 78*57b7d5d3SDharma Balasubiramani 79*57b7d5d3SDharma Balasubiramaniexamples: 80*57b7d5d3SDharma Balasubiramani - | 81*57b7d5d3SDharma Balasubiramani display: panel { 82*57b7d5d3SDharma Balasubiramani bits-per-pixel = <32>; 83*57b7d5d3SDharma Balasubiramani atmel,lcdcon-backlight; 84*57b7d5d3SDharma Balasubiramani atmel,dmacon = <0x1>; 85*57b7d5d3SDharma Balasubiramani atmel,lcdcon2 = <0x80008002>; 86*57b7d5d3SDharma Balasubiramani atmel,guard-time = <9>; 87*57b7d5d3SDharma Balasubiramani atmel,lcd-wiring-mode = "RGB"; 88*57b7d5d3SDharma Balasubiramani 89*57b7d5d3SDharma Balasubiramani display-timings { 90*57b7d5d3SDharma Balasubiramani native-mode = <&timing0>; 91*57b7d5d3SDharma Balasubiramani timing0: timing0 { 92*57b7d5d3SDharma Balasubiramani clock-frequency = <9000000>; 93*57b7d5d3SDharma Balasubiramani hactive = <480>; 94*57b7d5d3SDharma Balasubiramani vactive = <272>; 95*57b7d5d3SDharma Balasubiramani hback-porch = <1>; 96*57b7d5d3SDharma Balasubiramani hfront-porch = <1>; 97*57b7d5d3SDharma Balasubiramani vback-porch = <40>; 98*57b7d5d3SDharma Balasubiramani vfront-porch = <1>; 99*57b7d5d3SDharma Balasubiramani hsync-len = <45>; 100*57b7d5d3SDharma Balasubiramani vsync-len = <1>; 101*57b7d5d3SDharma Balasubiramani }; 102*57b7d5d3SDharma Balasubiramani }; 103*57b7d5d3SDharma Balasubiramani }; 104