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@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@0 { > > + reg = <0>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + lcdc_panel_output: endpoint@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@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@0 { > reg = <0>; > #address-cells = <1>; > #size-cells = <0>; > lcdc_panel_output: endpoint@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