[PATCH 2/4] dt-bindings: Document the Raspberry Pi Touchscreen nodes.

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon May 15 21:56:10 UTC 2017


Hi Rob,

On Monday 15 May 2017 15:44:57 Rob Herring wrote:
> On Thu, May 11, 2017 at 04:56:23PM -0700, Eric Anholt wrote:
> > The Raspberry Pi 7" Touchscreen is a DPI touchscreen panel with
> > DSI->DPI bridge and touchscreen controller integrated, that connects
> > to the Raspberry Pi through its 15-pin "DSI" connector (some lines are
> > DSI, some lines are I2C).
> > 
> > This device is represented in the DT as three nodes (DSI device, I2C
> > device, panel).  Input will be left to a separate binding later, as it
> > will be a basic I2C client device.
> > 
> > Signed-off-by: Eric Anholt <eric at anholt.net>
> > ---
> > 
> >  .../raspberrypi,7inch-touchscreen-bridge.txt       | 68
> >  ++++++++++++++++++++++ .../panel/raspberrypi,7inch-touchscreen-panel.txt
> >   |  7 +++
> >  2 files changed, 75 insertions(+)
> >  create mode 100644
> >  Documentation/devicetree/bindings/display/bridge/raspberrypi,7inch-touch
> >  screen-bridge.txt create mode 100644
> >  Documentation/devicetree/bindings/display/panel/raspberrypi,7inch-touchs
> >  creen-panel.txt> 
> > diff --git
> > a/Documentation/devicetree/bindings/display/bridge/raspberrypi,7inch-touc
> > hscreen-bridge.txt
> > b/Documentation/devicetree/bindings/display/bridge/raspberrypi,7inch-touc
> > hscreen-bridge.txt new file mode 100644
> > index 000000000000..a5669beaf68f
> > --- /dev/null
> > +++
> > b/Documentation/devicetree/bindings/display/bridge/raspberrypi,7inch-touc
> > hscreen-bridge.txt @@ -0,0 +1,68 @@
> > +Official 7" (800x480) Raspberry Pi touchscreen panel's bridge.
> > +
> > +This DSI panel contains:
> > +
> > +- TC358762 DSI->DPI bridge
> > +- Atmel microcontroller on I2C for power sequencing the DSI bridge and
> > +  controlling backlight
> > +- Touchscreen controller on I2C for touch input
> 
> This is 1 uC or 2?
> 
> > +
> > +and this covers the TC358762 bridge and Atmel microcontroller, while
> > +../panel/raspberrypi,7inch-touchscreen-panel.txt covers the panel.
> > +
> > +Required properties:
> > +- compatible:	Must be "raspberrypi,7inch-touchscreen-bridge"
> > +- raspberrypi,touchscreen-bridge:
> > +		Handle to the I2C device for Atmel microcontroller
> > +
> > +Example:
> > +
> > +dsi1: dsi at 7e700000 {
> > +	#address-cells = <1>;
> > +	#size-cells = <0>;
> > +	<...>
> > +
> > +	lcd-bridge at 0 {
> > +		compatible = "raspberrypi,7inch-touchscreen-bridge";
> > +		reg = <0>;
> > +
> > +		raspberrypi,touchscreen-bridge = <&pitouchscreen_bridge>;
> 
> I think this should be a port with a graph connection from the DSI
> node to the i2c bridge device (and then to the panel).

No, this should actually not exist :-) The property references the I2C device 
DT node corresponding to the microcontroller that controls the backlight (and, 
if I understand correctly, handles power sequencing). The DSI driver (in patch 
3/4) then grabs the I2C device and talks to it. I don't think this is right, 
as commented separately on this patch, the bindings should be split, with a 
standalone binding for the TC358762 (and a separate standalone driver too).

> It's also how other DSI bridges like the tc358767 are done.
> 
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +			port at 0 {
> > +				reg = <0>;
> 
> BTW, you don't need this when there is only 1.
> 
> > +				pitouchscreen_bridge_port: endpoint {
> > +					remote-endpoint = 
<&pitouchscreen_panel_port>;
> > +				};
> > +			};
> > +		};
> > +	};
> > +};
> > +
> > +i2c_dsi: i2c {
> > +	compatible = "i2c-gpio";
> > +	#address-cells = <1>;
> > +	#size-cells = <0>;
> > +	gpios = <&gpio 28 0
> > +		 &gpio 29 0>;
> > +
> > +	pitouchscreen_bridge: bridge at 45 {
> > +		compatible = "raspberrypi,touchscreen-bridge-i2c";
> > +		reg = <0x45>;
> > +	};
> > +};
> > +
> > +lcd {
> > +	compatible = "raspberrypi,7inch-touchscreen-panel";
> > +	ports {
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +		port at 0 {
> > +			reg = <0>;
> > +			pitouchscreen_panel_port: endpoint {
> > +				remote-endpoint = 
<&pitouchscreen_bridge_port>;
> > +			};
> > +		};
> > +	};
> > +};
> > diff --git
> > a/Documentation/devicetree/bindings/display/panel/raspberrypi,7inch-touch
> > screen-panel.txt
> > b/Documentation/devicetree/bindings/display/panel/raspberrypi,7inch-touch
> > screen-panel.txt new file mode 100644
> > index 000000000000..1e84f97b3b20
> > --- /dev/null
> > +++
> > b/Documentation/devicetree/bindings/display/panel/raspberrypi,7inch-touch
> > screen-panel.txt @@ -0,0 +1,7 @@
> > +Official 7" (800x480) Raspberry Pi touchscreen panel's panel.
> > +
> > +This binding is compatible with the simple-panel binding, which is
> > specified +in simple-panel.txt in this directory.
> > +
> > +Required properties:
> > +- compatible:	Must be "raspberrypi,7inch-touchscreen-panel"

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list