[PATCH v1 2/7] dt-binding: add bindings for Atmel LCDC mfd

Sam Ravnborg sam at ravnborg.org
Fri Aug 24 15:58:24 UTC 2018


Hi Boris.

> > +The LCDC IP exposes two subdevices:
> > + - a PWM chip: see ../pwm/atmel-lcdc-pwm.txt
> > + - a Display Controller: see ../display/atmel/lcdc-display-controller.txt
> > +
> > +Example:
> > +	lcdc0: lcdc at 700000 {
> > +		compatible = "atmel,at91sam9263-lcdc-mfd";
> > +		reg = <0x700000 0x1000>;
> > +		interrupts = <26 IRQ_TYPE_LEVEL_HIGH 3>;
> > +		clocks = <&lcd_clk>, <&lcd_clk>;
> > +		clock-names = "lcdc_clk", "hclk";
> > +
> > +		lcdc-display-controller {
> > +			compatible = "atmel,lcdc-display-controller";
> > +			lcd-supply = <&lcdc_reg>;
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port at 0 {
> > +				reg = <0>;
> > +				#address-cells = <1>;
> > +				#size-cells = <0>;
> > +				lcdc_panel_output: endpoint at 0 {
> > +					reg = <0>;
> > +					remote-endpoint = <&panel_input>;
> > +				};
> > +			};
> > +		};
> > +
> > +		lcdc_pwm: lcdc-pwm {
> > +			compatible = "atmel,lcdc-pwm";
> > +			pinctrl-names = "default";
> > +			pinctrl-0 = <&pinctrl_lcdc_pwm>;
> > +			#pwm-cells = <3>;
> > +		};
> > +
> > +	};
> 
> Also, I don't remember why I decided to declare distinct nodes for the
> PWM and display controller, but you should probably try to only declare
> the lcdc node. Something like that:
> 
> 	lcdc0: lcdc at 700000 {
> 		compatible = "atmel,at91sam9263-lcdc";
> 		reg = <0x700000 0x1000>;
> 		interrupts = <26 IRQ_TYPE_LEVEL_HIGH 3>;
> 		clocks = <&lcd_clk>, <&lcd_clk>;
> 		clock-names = "lcdc_clk", "hclk";
> 		pinctrl-names = "default";
> 		pinctrl-0 = <&pinctrl_lcdc_pwm ...>;
> 		#pwm-cells = <3>;
> 		#address-cells = <1>;
> 		#size-cells = <0>;
> 
> 		port at 0 {
> 			reg = <0>;
> 			#address-cells = <1>;
> 			#size-cells = <0>;
> 			lcdc_panel_output: endpoint at 0 {
> 				reg = <0>;
> 				remote-endpoint = <&panel_input>;
> 			};
> 		};
> 	};
> 
> Note that this representation does not prevent us from having an MFD
> which declares the PWM and Display Engine, it's just that all devs will
> point to the same of_node.

I have something similar in my tree now, just need to figure out the mfd parts.

> 
> > +
> > +		lcdc-display-controller {
> > +			compatible = "atmel,lcdc-display-controller";
> > +			lcd-supply = <&lcdc_reg>;
> 
> Hm, is this a regulator for the LCD controller or the LCD? If it's for
> the LCD it should be placed under the panel node.
It was added only because I could do it and I was (and continue to be) a
DT newbie.  Will drop it in v2 as this is just an example which this part do
not add any value to.

> > +	panel: panel {
> > +		compatible = "logictechnologies,lttd800480070-l2rt", "simple-panel";
Reminds me that I need to dig out a panel-simple patch for a few
displays I use (logic + seiko).
But they are otherwise not related to this work.

	Sam


More information about the dri-devel mailing list