Re: [PATCH v1 2/4] dt-bindings: display: convert atmel lcdc to DT Schema

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 15, 2020 at 06:44:27PM +0200, Sam Ravnborg wrote:
> Hi Maxime.
>
> On Tue, Apr 14, 2020 at 10:30:10AM +0200, Maxime Ripard wrote:
> > On Sun, Apr 12, 2020 at 08:20:10PM +0200, Sam Ravnborg wrote:
> > > Add a new binding file to describe the bindings
> > > for the Atmel LCDC IP.
> > > This replaces the old txt based binding.
> > >
> > > The binding file describes the current binding,
> > > including properties to specify register values etc.
> > > The binding will be updated in a follow-up patch,
> > > the current binding describes the actual situation.
> > >
> > > This new binding file replaces the old .txt based
> > > binding which is deleted.
> > >
> > > Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
> > > ---
> > >  .../bindings/display/atmel,lcdc.txt           |  88 -----------
> > >  .../bindings/display/atmel/lcdc.yaml          | 137 ++++++++++++++++++
> > >  2 files changed, 137 insertions(+), 88 deletions(-)
> > >  delete mode 100644 Documentation/devicetree/bindings/display/atmel,lcdc.txt
> > >  create mode 100644 Documentation/devicetree/bindings/display/atmel/lcdc.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/display/atmel,lcdc.txt b/Documentation/devicetree/bindings/display/atmel,lcdc.txt
> > > deleted file mode 100644
> > > index acb5a0132127..000000000000
> > > --- a/Documentation/devicetree/bindings/display/atmel,lcdc.txt
> > > +++ /dev/null
> > > @@ -1,88 +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" ,
> > > -	"atmel,at32ap-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>;
> > > -			};
> > > -		};
> > > -	};
> > > diff --git a/Documentation/devicetree/bindings/display/atmel/lcdc.yaml b/Documentation/devicetree/bindings/display/atmel/lcdc.yaml
> > > new file mode 100644
> > > index 000000000000..7dcb9a4d5902
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/display/atmel/lcdc.yaml
> > > @@ -0,0 +1,137 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only 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: Atmel LCDC (LCD Controller) display controller with PWM
> > > +
> > > +maintainers:
> > > +  - Sam Ravnborg <sam@xxxxxxxxxxxx>
> > > +
> > > +description: |
> > > +  The Atmel LCDC Display Controller is display controller that
> > > +  includes a PWM for backlight/contrast.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - atmel,at91sam9261-lcdc
> > > +      - atmel,at91sam9263-lcdc
> > > +      - atmel,at91sam9g10-lcdc
> > > +      - atmel,at91sam9g45-lcdc
> > > +      - atmel,at91sam9g45es-lcdc
> > > +      - atmel,at91sam9g46-lcdc
> > > +      - atmel,at91sam9m10-lcdc
> > > +      - atmel,at91sam9m11-lcdc
> > > +      - atmel,at91sam9rl-lcdc
> > > +
> > > +  "#address-cells":
> > > +    const: 1
> > > +  "#size-cells":
> > > +    const: 0
> > > +
> > > +  reg:
> > > +    description: |
> > > +      Contains 1 register range (address and length).
> > > +      Can contain an additional register range (address and length)
> > > +      for fixed framebuffer memory
> >
> > So, minItems: 1 , maxItems: 2?
> The syntax is either:
>
>     reg = <0x00700000 0x1000>;
>
> or
>
>     reg = <0x00700000 0x1000 0x70000000 0x200000>;
>
> So always minItems: 1

Yeah, but <0x00700000 0x1000 0x70000000 0x200000 0x70000000 0x200000>;
would be invalid, right?

> >
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  lcd-supply:
> > > +    description: Regulator for LCD supply voltage.
> > > +
> > > +  display:
> > > +    $ref: /schemas/types.yaml#/definitions/phandle
> > > +    description: phandle to display node
> > > +
> > > +patternProperties:
> > > +  "^display[0-9]$":
> > > +    type: object
> > > +    description: |
> > > +      Display node is required to initialize the lcd panel.
> > > +      This should be in the board dts
> > > +
> > > +    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)
> > > +
> > > +      bits-per-pixel:
> > > +        $ref: /schemas/types.yaml#/definitions/uint32
> > > +        description: LCD panel bit-depth.
> >
> > Those properties aren't documented anywhere?
>
> Not more than this and then by their use in the driver(s).
>
> In the current patchset the node is deprecated in next patch.
> I plan to do in two patches:
>   - delete properites which is not used in kernel, barebox, u-boot)
>   - Mark all the old properties deprecated
>
> And for the soon-to-be deprecated properties we need no detailed
> description.

Even if they are going to be deprecated, and it never was done, it
seems to be a good occasion to document them properly.

Maxime

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux