mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
dt-bindings: display: atmel,lcdc: convert to dtschema
Convert the atmel,lcdc bindings to DT schema. Changes during conversion: add missing clocks and clock-names properties. Signed-off-by: Dharma Balasubiramani <dharma.b@microchip.com> Link: https://lore.kernel.org/r/20240318-lcdc-fb-v4-1-c533c7c2c706@microchip.com Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
ad6d17e103
commit
57b7d5d315
3 changed files with 173 additions and 87 deletions
|
@ -0,0 +1,103 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/display/atmel,lcdc-display.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip's LCDC Display
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Dharma Balasubiramani <dharma.b@microchip.com>
|
||||
|
||||
description:
|
||||
The LCD Controller (LCDC) consists of logic for transferring LCD image data
|
||||
from an external display buffer to a TFT LCD panel. The LCDC has one display
|
||||
input buffer per layer that fetches pixels through the single bus host
|
||||
interface and a look-up table to allow palletized display configurations. The
|
||||
LCDC is programmable on a per layer basis, and supports different LCD
|
||||
resolutions, window sizes, image formats and pixel depths.
|
||||
|
||||
# We need a select here since this schema is applicable only for nodes with the
|
||||
# following properties
|
||||
|
||||
select:
|
||||
anyOf:
|
||||
- required: [ 'atmel,dmacon' ]
|
||||
- required: [ 'atmel,lcdcon2' ]
|
||||
- required: [ 'atmel,guard-time' ]
|
||||
|
||||
properties:
|
||||
atmel,dmacon:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: dma controller configuration
|
||||
|
||||
atmel,lcdcon2:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: lcd controller configuration
|
||||
|
||||
atmel,guard-time:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: lcd guard time (Delay in frame periods)
|
||||
maximum: 127
|
||||
|
||||
bits-per-pixel:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: lcd panel bit-depth.
|
||||
enum: [1, 2, 4, 8, 16, 24, 32]
|
||||
|
||||
atmel,lcdcon-backlight:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: enable backlight
|
||||
|
||||
atmel,lcdcon-backlight-inverted:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: invert backlight PWM polarity
|
||||
|
||||
atmel,lcd-wiring-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: lcd wiring mode "RGB" or "BRG"
|
||||
enum:
|
||||
- RGB
|
||||
- BRG
|
||||
|
||||
atmel,power-control-gpio:
|
||||
description: gpio to power on or off the LCD (as many as needed)
|
||||
maxItems: 1
|
||||
|
||||
display-timings:
|
||||
$ref: panel/display-timings.yaml#
|
||||
|
||||
required:
|
||||
- atmel,dmacon
|
||||
- atmel,lcdcon2
|
||||
- atmel,guard-time
|
||||
- bits-per-pixel
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
display: panel {
|
||||
bits-per-pixel = <32>;
|
||||
atmel,lcdcon-backlight;
|
||||
atmel,dmacon = <0x1>;
|
||||
atmel,lcdcon2 = <0x80008002>;
|
||||
atmel,guard-time = <9>;
|
||||
atmel,lcd-wiring-mode = "RGB";
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing0>;
|
||||
timing0: timing0 {
|
||||
clock-frequency = <9000000>;
|
||||
hactive = <480>;
|
||||
vactive = <272>;
|
||||
hback-porch = <1>;
|
||||
hfront-porch = <1>;
|
||||
vback-porch = <40>;
|
||||
vfront-porch = <1>;
|
||||
hsync-len = <45>;
|
||||
vsync-len = <1>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,87 +0,0 @@
|
|||
Atmel LCDC Framebuffer
|
||||
-----------------------------------------------------
|
||||
|
||||
Required properties:
|
||||
- compatible :
|
||||
"atmel,at91sam9261-lcdc" ,
|
||||
"atmel,at91sam9263-lcdc" ,
|
||||
"atmel,at91sam9g10-lcdc" ,
|
||||
"atmel,at91sam9g45-lcdc" ,
|
||||
"atmel,at91sam9g45es-lcdc" ,
|
||||
"atmel,at91sam9rl-lcdc" ,
|
||||
- reg : Should contain 1 register ranges(address and length).
|
||||
Can contain an additional register range(address and length)
|
||||
for fixed framebuffer memory. Useful for dedicated memories.
|
||||
- interrupts : framebuffer controller interrupt
|
||||
- display: a phandle pointing to the display node
|
||||
|
||||
Required nodes:
|
||||
- display: a display node is required to initialize the lcd panel
|
||||
This should be in the board dts.
|
||||
- default-mode: a videomode within the display with timing parameters
|
||||
as specified below.
|
||||
|
||||
Optional properties:
|
||||
- lcd-supply: Regulator for LCD supply voltage.
|
||||
|
||||
Example:
|
||||
|
||||
fb0: fb@00500000 {
|
||||
compatible = "atmel,at91sam9g45-lcdc";
|
||||
reg = <0x00500000 0x1000>;
|
||||
interrupts = <23 3 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_fb>;
|
||||
display = <&display0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
};
|
||||
|
||||
Example for fixed framebuffer memory:
|
||||
|
||||
fb0: fb@00500000 {
|
||||
compatible = "atmel,at91sam9263-lcdc";
|
||||
reg = <0x00700000 0x1000 0x70000000 0x200000>;
|
||||
[...]
|
||||
};
|
||||
|
||||
Atmel LCDC Display
|
||||
-----------------------------------------------------
|
||||
Required properties (as per of_videomode_helper):
|
||||
|
||||
- atmel,dmacon: dma controller configuration
|
||||
- atmel,lcdcon2: lcd controller configuration
|
||||
- atmel,guard-time: lcd guard time (Delay in frame periods)
|
||||
- bits-per-pixel: lcd panel bit-depth.
|
||||
|
||||
Optional properties (as per of_videomode_helper):
|
||||
- atmel,lcdcon-backlight: enable backlight
|
||||
- atmel,lcdcon-backlight-inverted: invert backlight PWM polarity
|
||||
- atmel,lcd-wiring-mode: lcd wiring mode "RGB" or "BRG"
|
||||
- atmel,power-control-gpio: gpio to power on or off the LCD (as many as needed)
|
||||
|
||||
Example:
|
||||
display0: display {
|
||||
bits-per-pixel = <32>;
|
||||
atmel,lcdcon-backlight;
|
||||
atmel,dmacon = <0x1>;
|
||||
atmel,lcdcon2 = <0x80008002>;
|
||||
atmel,guard-time = <9>;
|
||||
atmel,lcd-wiring-mode = <1>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing0>;
|
||||
timing0: timing0 {
|
||||
clock-frequency = <9000000>;
|
||||
hactive = <480>;
|
||||
vactive = <272>;
|
||||
hback-porch = <1>;
|
||||
hfront-porch = <1>;
|
||||
vback-porch = <40>;
|
||||
vfront-porch = <1>;
|
||||
hsync-len = <45>;
|
||||
vsync-len = <1>;
|
||||
};
|
||||
};
|
||||
};
|
70
Documentation/devicetree/bindings/display/atmel,lcdc.yaml
Normal file
70
Documentation/devicetree/bindings/display/atmel,lcdc.yaml
Normal file
|
@ -0,0 +1,70 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/display/atmel,lcdc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip's LCDC Framebuffer
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Dharma Balasubiramani <dharma.b@microchip.com>
|
||||
|
||||
description:
|
||||
The LCDC works with a framebuffer, which is a section of memory that contains
|
||||
a complete frame of data representing pixel values for the display. The LCDC
|
||||
reads the pixel data from the framebuffer and sends it to the LCD panel to
|
||||
render the image.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- atmel,at91sam9261-lcdc
|
||||
- atmel,at91sam9263-lcdc
|
||||
- atmel,at91sam9g10-lcdc
|
||||
- atmel,at91sam9g45-lcdc
|
||||
- atmel,at91sam9g45es-lcdc
|
||||
- atmel,at91sam9rl-lcdc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: hclk
|
||||
- const: lcdc_clk
|
||||
|
||||
display:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: A phandle pointing to the display node.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- display
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
fb@500000 {
|
||||
compatible = "atmel,at91sam9g45-lcdc";
|
||||
reg = <0x00500000 0x1000>;
|
||||
interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_fb>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_PERIPHERAL 23>;
|
||||
clock-names = "hclk", "lcdc_clk";
|
||||
display = <&display>;
|
||||
};
|
Loading…
Add table
Reference in a new issue