On Wed, Mar 18, 2020 at 08:07:27AM +0100, Enric Balletbo i Serra wrote: > The ANX7688 chip is a Type-C Port Controller, HDMI to DP converter and > USB-C mux between USB 3.0 lanes and the DP output. > > For our use case a big part of the chip, like power supplies, control > gpios and the usb-c part is managed by an Embedded Controller, hence, > this is its simplest form of the binding. We'd prefer introduce these > properties for someone with a different use case so they can test > on their hardware. I'm not sure this is a move in the right direction from the prior version. Just because you have multiple functions that doesn't mean the DT has multiple child nodes. What's a 'function' exactly may vary by OS (or in time). Are the USB-C functions separate h/w? Are there separate resources for each sub-function that need to be defined in DT? We do need to be able to construct a graph with this device, HDMI output, USB host, and USB connector. That may dictate what does or doesn't work here. > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx> > --- > > Changes in v4: None > Changes in v3: > - Add binding for ANX7688 multi-function device. > > Changes in v2: None > > .../bindings/mfd/analogix,anx7688.yaml | 48 +++++++++++++++++++ > 1 file changed, 48 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/analogix,anx7688.yaml > > diff --git a/Documentation/devicetree/bindings/mfd/analogix,anx7688.yaml b/Documentation/devicetree/bindings/mfd/analogix,anx7688.yaml > new file mode 100644 > index 000000000000..bb95a4e87188 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/analogix,anx7688.yaml > @@ -0,0 +1,48 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mfd/analogix,anx7688.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analogix ANX7688 HDMI to USB Type-C Bridge (Port Controller with MUX) > + > +maintainers: > + - Nicolas Boichat <drinkcat@xxxxxxxxxxxx> > + - Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx> > + > +description: | > + ANX7688 converts HDMI 2.0 to DisplayPort 1.3 Ultra-HDi (4096x2160p60) > + including an intelligent crosspoint switch to support USB Type-C (USB-C). > + The integrated crosspoint switch supports USB 3.1 data transfer along with > + the DisplayPort Alternate Mode signaling over USB Type-C. Additionally, > + an on-chip microcontroller (OCM) is available to manage the signal switching, > + Channel Configuration (CC) detection, USB Power Delivery (USB-PD), Vendor > + Defined Message (VDM) protocol support and other functions as defined in the > + USB TypeC and USB Power Delivery specifications. > + > + As a result, a multi-function device is exposed as parent of the video > + bridge, TCPC and MUX blocks. > + > +properties: > + compatible: > + const: analogix,anx7688 > + > + reg: > + maxItems: 1 > + description: I2C address of the device > + > +required: > + - compatible > + - reg If this does stay like this, then you need to define the child node(s) here and reference their bindings. > + > +examples: > + - | > + i2c0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + anx7688: anx7688@2c { > + compatible = "analogix,anx7688"; > + reg = <0x2c>; > + }; > + }; > -- > 2.25.1 >