xref: /freebsd/sys/contrib/device-tree/Bindings/display/atmel,lcdc.txt (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
1*c66ec88fSEmmanuel VadotAtmel LCDC Framebuffer
2*c66ec88fSEmmanuel Vadot-----------------------------------------------------
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotRequired properties:
5*c66ec88fSEmmanuel Vadot- compatible :
6*c66ec88fSEmmanuel Vadot	"atmel,at91sam9261-lcdc" ,
7*c66ec88fSEmmanuel Vadot	"atmel,at91sam9263-lcdc" ,
8*c66ec88fSEmmanuel Vadot	"atmel,at91sam9g10-lcdc" ,
9*c66ec88fSEmmanuel Vadot	"atmel,at91sam9g45-lcdc" ,
10*c66ec88fSEmmanuel Vadot	"atmel,at91sam9g45es-lcdc" ,
11*c66ec88fSEmmanuel Vadot	"atmel,at91sam9rl-lcdc" ,
12*c66ec88fSEmmanuel Vadot- reg : Should contain 1 register ranges(address and length).
13*c66ec88fSEmmanuel Vadot	Can contain an additional register range(address and length)
14*c66ec88fSEmmanuel Vadot	for fixed framebuffer memory. Useful for dedicated memories.
15*c66ec88fSEmmanuel Vadot- interrupts : framebuffer controller interrupt
16*c66ec88fSEmmanuel Vadot- display: a phandle pointing to the display node
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotRequired nodes:
19*c66ec88fSEmmanuel Vadot- display: a display node is required to initialize the lcd panel
20*c66ec88fSEmmanuel Vadot	This should be in the board dts.
21*c66ec88fSEmmanuel Vadot- default-mode: a videomode within the display with timing parameters
22*c66ec88fSEmmanuel Vadot	as specified below.
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel VadotOptional properties:
25*c66ec88fSEmmanuel Vadot- lcd-supply: Regulator for LCD supply voltage.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel VadotExample:
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel Vadot	fb0: fb@00500000 {
30*c66ec88fSEmmanuel Vadot		compatible = "atmel,at91sam9g45-lcdc";
31*c66ec88fSEmmanuel Vadot		reg = <0x00500000 0x1000>;
32*c66ec88fSEmmanuel Vadot		interrupts = <23 3 0>;
33*c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
34*c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pinctrl_fb>;
35*c66ec88fSEmmanuel Vadot		display = <&display0>;
36*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
37*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot	};
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel VadotExample for fixed framebuffer memory:
42*c66ec88fSEmmanuel Vadot
43*c66ec88fSEmmanuel Vadot	fb0: fb@00500000 {
44*c66ec88fSEmmanuel Vadot		compatible = "atmel,at91sam9263-lcdc";
45*c66ec88fSEmmanuel Vadot		reg = <0x00700000 0x1000 0x70000000 0x200000>;
46*c66ec88fSEmmanuel Vadot		[...]
47*c66ec88fSEmmanuel Vadot	};
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel VadotAtmel LCDC Display
50*c66ec88fSEmmanuel Vadot-----------------------------------------------------
51*c66ec88fSEmmanuel VadotRequired properties (as per of_videomode_helper):
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel Vadot - atmel,dmacon: dma controller configuration
54*c66ec88fSEmmanuel Vadot - atmel,lcdcon2: lcd controller configuration
55*c66ec88fSEmmanuel Vadot - atmel,guard-time: lcd guard time (Delay in frame periods)
56*c66ec88fSEmmanuel Vadot - bits-per-pixel: lcd panel bit-depth.
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel VadotOptional properties (as per of_videomode_helper):
59*c66ec88fSEmmanuel Vadot - atmel,lcdcon-backlight: enable backlight
60*c66ec88fSEmmanuel Vadot - atmel,lcdcon-backlight-inverted: invert backlight PWM polarity
61*c66ec88fSEmmanuel Vadot - atmel,lcd-wiring-mode: lcd wiring mode "RGB" or "BRG"
62*c66ec88fSEmmanuel Vadot - atmel,power-control-gpio: gpio to power on or off the LCD (as many as needed)
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel VadotExample:
65*c66ec88fSEmmanuel Vadot	display0: display {
66*c66ec88fSEmmanuel Vadot		bits-per-pixel = <32>;
67*c66ec88fSEmmanuel Vadot		atmel,lcdcon-backlight;
68*c66ec88fSEmmanuel Vadot		atmel,dmacon = <0x1>;
69*c66ec88fSEmmanuel Vadot		atmel,lcdcon2 = <0x80008002>;
70*c66ec88fSEmmanuel Vadot		atmel,guard-time = <9>;
71*c66ec88fSEmmanuel Vadot		atmel,lcd-wiring-mode = <1>;
72*c66ec88fSEmmanuel Vadot
73*c66ec88fSEmmanuel Vadot		display-timings {
74*c66ec88fSEmmanuel Vadot			native-mode = <&timing0>;
75*c66ec88fSEmmanuel Vadot			timing0: timing0 {
76*c66ec88fSEmmanuel Vadot				clock-frequency = <9000000>;
77*c66ec88fSEmmanuel Vadot				hactive = <480>;
78*c66ec88fSEmmanuel Vadot				vactive = <272>;
79*c66ec88fSEmmanuel Vadot				hback-porch = <1>;
80*c66ec88fSEmmanuel Vadot				hfront-porch = <1>;
81*c66ec88fSEmmanuel Vadot				vback-porch = <40>;
82*c66ec88fSEmmanuel Vadot				vfront-porch = <1>;
83*c66ec88fSEmmanuel Vadot				hsync-len = <45>;
84*c66ec88fSEmmanuel Vadot				vsync-len = <1>;
85*c66ec88fSEmmanuel Vadot			};
86*c66ec88fSEmmanuel Vadot		};
87*c66ec88fSEmmanuel Vadot	};
88