From: Xin Ji <xji@analogixsemi.com>
To: Rob Herring <robh@kernel.org>
Cc: "David Airlie" <airlied@linux.ie>,
"Nicolas Boichat" <drinkcat@google.com>,
"Hsin-Yi Wang" <hsinyi@chromium.org>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Sam Ravnborg" <sam@ravnborg.org>,
"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Mark Brown" <broonie@kernel.org>,
"Ricardo Cañuelo" <ricardo.canuelo@collabora.com>,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
"Bernie Liang" <bliang@analogixsemi.com>,
"Sheng Pan" <span@analogixsemi.com>,
"Zhen Li" <zhenli@analogixsemi.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v10 1/4] dt-bindings:drm/bridge:anx7625:add vendor define flags
Date: Thu, 5 Aug 2021 15:47:37 +0800 [thread overview]
Message-ID: <20210805074737.GA2019639@anxtwsw-Precision-3640-Tower> (raw)
In-Reply-To: <YQL8qLpN41ocV9N0@robh.at.kernel.org>
On Thu, Jul 29, 2021 at 01:08:24PM -0600, Rob Herring wrote:
> On Mon, Jul 19, 2021 at 06:10:09PM +0800, Xin Ji wrote:
> > Add 'bus-type' and 'data-lanes' define for port0. Define DP tx lane0,
> > lane1 swing register array define, and audio enable flag.
> >
> > The device which cannot pass DP tx PHY CTS caused by long PCB trace or
> > embedded MUX, adjusting ANX7625 PHY parameters can pass the CTS test. The
> > adjusting type include Pre-emphasis, Vp-p, Rterm(Resistor Termination)
> > and Rsel(Driven Strength). Each lane has maximum 20 registers for
> > these settings.
> >
> > For the DP tx swing setting, each lane has 10 different combination for
> > swing, as Pre0: swing3|swing2|swing1|swing0, Pre1: swing2|swing1|swing0,
> > Pre2: swing1|swing0, Pre3: swing0.
> >
> > Register definition as:
> > [Boost_ctrl]
> > These registers control post cursor manual, increase the Boost_Ctrl
> > setting can increase Pre-emphasis value separately.
> > Lane Condition Register address
> > Lane0 Swing0_Pre0 0x7a:0x00 bit[3:0]
> > Lane0 Swing1_Pre0 0x7a:0x01 bit[3:0]
> > Lane0 Swing2_Pre0 0x7a:0x02 bit[3:0]
> > Lane0 Swing3_Pre0 0x7a:0x03 bit[3:0]
> > Lane0 Swing0_Pre1 0x7a:0x04 bit[3:0]
> > Lane0 Swing1_Pre1 0x7a:0x05 bit[3:0]
> > Lane0 Swing2_Pre1 0x7a:0x06 bit[3:0]
> > Lane0 Swing0_Pre2 0x7a:0x07 bit[3:0]
> > Lane0 Swing1_Pre2 0x7a:0x08 bit[3:0]
> > Lane0 Swing0_Pre3 0x7a:0x09 bit[3:0]
> > Lane1 Swing0_Pre0 0x7a:0x14 bit[3:0]
> > Lane1 Swing1_Pre0 0x7a:0x15 bit[3:0]
> > Lane1 Swing2_Pre0 0x7a:0x16 bit[3:0]
> > Lane1 Swing3_Pre0 0x7a:0x17 bit[3:0]
> > Lane1 Swing0_Pre1 0x7a:0x18 bit[3:0]
> > Lane1 Swing1_Pre1 0x7a:0x19 bit[3:0]
> > Lane1 Swing2_Pre1 0x7a:0x1a bit[3:0]
> > Lane1 Swing0_Pre2 0x7a:0x1b bit[3:0]
> > Lane1 Swing1_Pre2 0x7a:0x1c bit[3:0]
> > Lane1 Swing0_Pre3 0x7a:0x1d bit[3:0]
> >
> > [Swing_ctrl]
> > These registers control swing manual, increase Swing_Ctrl setting can
> > increase Vp-p value separately.
> > Lane Condition Register address
> > Lane0 Swing0_Pre0 0x7a:0x00 bit[6:4]
> > Lane0 Swing1_Pre0 0x7a:0x01 bit[6:4]
> > Lane0 Swing2_Pre0 0x7a:0x02 bit[6:4]
> > Lane0 Swing3_Pre0 0x7a:0x03 bit[6:4]
> > Lane0 Swing0_Pre1 0x7a:0x04 bit[6:4]
> > Lane0 Swing1_Pre1 0x7a:0x05 bit[6:4]
> > Lane0 Swing2_Pre1 0x7a:0x06 bit[6:4]
> > Lane0 Swing0_Pre2 0x7a:0x07 bit[6:4]
> > Lane0 Swing1_Pre2 0x7a:0x08 bit[6:4]
> > Lane0 Swing0_Pre3 0x7a:0x09 bit[6:4]
> > Lane1 Swing0_Pre0 0x7a:0x14 bit[6:4]
> > Lane1 Swing1_Pre0 0x7a:0x15 bit[6:4]
> > Lane1 Swing2_Pre0 0x7a:0x16 bit[6:4]
> > Lane1 Swing3_Pre0 0x7a:0x17 bit[6:4]
> > Lane1 Swing0_Pre1 0x7a:0x18 bit[6:4]
> > Lane1 Swing1_Pre1 0x7a:0x19 bit[6:4]
> > Lane1 Swing2_Pre1 0x7a:0x1a bit[6:4]
> > Lane1 Swing0_Pre2 0x7a:0x1b bit[6:4]
> > Lane1 Swing1_Pre2 0x7a:0x1c bit[6:4]
> > Lane1 Swing0_Pre3 0x7a:0x1d bit[6:4]
> >
> > [Rsel_ctrl]
> > These registers control resistor compensation manual, increase Rsel_ctrl
> > can increase the IO driven strength, increase Vp-p simultaneously.
> > Lane Condition Register address
> > Lane0 Swing0_Pre0 0x7a:0x0a bit[4:0]
> > Lane0 Swing1_Pre0 0x7a:0x0b bit[4:0]
> > Lane0 Swing2_Pre0 0x7a:0x0c bit[4:0]
> > Lane0 Swing3_Pre0 0x7a:0x0d bit[4:0]
> > Lane0 Swing0_Pre1 0x7a:0x0e bit[4:0]
> > Lane0 Swing1_Pre1 0x7a:0x0f bit[4:0]
> > Lane0 Swing2_Pre1 0x7a:0x10 bit[4:0]
> > Lane0 Swing0_Pre2 0x7a:0x11 bit[4:0]
> > Lane0 Swing1_Pre2 0x7a:0x12 bit[4:0]
> > Lane0 Swing0_Pre3 0x7a:0x13 bit[4:0]
> > Lane1 Swing0_Pre0 0x7a:0x1e bit[4:0]
> > Lane1 Swing1_Pre0 0x7a:0x1f bit[4:0]
> > Lane1 Swing2_Pre0 0x7a:0x20 bit[4:0]
> > Lane1 Swing3_Pre0 0x7a:0x21 bit[4:0]
> > Lane1 Swing0_Pre1 0x7a:0x22 bit[4:0]
> > Lane1 Swing1_Pre1 0x7a:0x23 bit[4:0]
> > Lane1 Swing2_Pre1 0x7a:0x24 bit[4:0]
> > Lane1 Swing0_Pre2 0x7a:0x25 bit[4:0]
> > Lane1 Swing1_Pre2 0x7a:0x26 bit[4:0]
> > Lane1 Swing0_Pre3 0x7a:0x27 bit[4:0]
> >
> > [Rterm_ctrl]
> > These registers adjust 50ohm impedance of DP tx
> > 00:55 ohm
> > 01:50 ohm(default)
> > 10:45 ohm
> > 11:40 ohm
> > Lane Condition Register address
> > Lane0 Swing0_Pre0 0x7a:0x0a bit[6:5]
> > Lane0 Swing1_Pre0 0x7a:0x0b bit[6:5]
> > Lane0 Swing2_Pre0 0x7a:0x0c bit[6:5]
> > Lane0 Swing3_Pre0 0x7a:0x0d bit[6:5]
> > Lane0 Swing0_Pre1 0x7a:0x0e bit[6:5]
> > Lane0 Swing1_Pre1 0x7a:0x0f bit[6:5]
> > Lane0 Swing2_Pre1 0x7a:0x10 bit[6:5]
> > Lane0 Swing0_Pre2 0x7a:0x11 bit[6:5]
> > Lane0 Swing1_Pre2 0x7a:0x12 bit[6:5]
> > Lane0 Swing0_Pre3 0x7a:0x13 bit[6:5]
> > lane1 Swing0_Pre0 0x7a:0x1e bit[6:5]
> > Lane1 Swing1_Pre0 0x7a:0x1f bit[6:5]
> > Lane1 Swing2_Pre0 0x7a:0x20 bit[6:5]
> > Lane1 Swing3_Pre0 0x7a:0x21 bit[6:5]
> > Lane1 Swing0_Pre1 0x7a:0x22 bit[6:5]
> > Lane1 Swing1_Pre1 0x7a:0x23 bit[6:5]
> > Lane1 Swing2_Pre1 0x7a:0x24 bit[6:5]
> > Lane1 Swing0_Pre2 0x7a:0x25 bit[6:5]
> > Lane1 Swing1_Pre2 0x7a:0x26 bit[6:5]
> > Lane1 Swing0_Pre3 0x7a:0x27 bit[6:5]
>
> All this information should be in the properties description. But the
> above form is not all that clear in defining how to fill in the
> properties. You need to describe what is in each word of the properties
> and assume the reader has the datasheet.
Hi Rob Herring, OK, I'll add it in the properties description
Thanks,
Xin
> >
> > Signed-off-by: Xin Ji <xji@analogixsemi.com>
> > ---
> > .../display/bridge/analogix,anx7625.yaml | 55 ++++++++++++++++++-
> > 1 file changed, 54 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
> > index ab48ab2f4240..77b160d7c269 100644
> > --- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
> > +++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
> > @@ -43,6 +43,24 @@ properties:
> > vdd33-supply:
> > description: Regulator that provides the supply 3.3V power.
> >
> > + analogix,lane0-swing:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > + minItems: 1
> > + maxItems: 20
> > + description:
> > + an array of swing register setting for DP tx lane0 PHY.
> > +
> > + analogix,lane1-swing:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > + minItems: 1
> > + maxItems: 20
> > + description:
> > + an array of swing register setting for DP tx lane1 PHY.
> > +
> > + analogix,audio-enable:
> > + type: boolean
> > + description: let the driver enable audio HDMI codec function or not.
> > +
> > ports:
> > $ref: /schemas/graph.yaml#/properties/ports
> >
> > @@ -50,13 +68,43 @@ properties:
> > port@0:
> > $ref: /schemas/graph.yaml#/properties/port
>
> This needs to be #/$defs/port-base instead since you are adding child
> properties.
>
> Also needs 'unevaluatedProperties: false'.
>
> > description:
> > - Video port for MIPI DSI input.
> > + MIPI DSI/DPI input.
> > +
> > + properties:
> > + endpoint:
> > + $ref: /schemas/media/video-interfaces.yaml#
> > + type: object
> > + additionalProperties: false
> > +
> > + properties:
> > + remote-endpoint: true
> > + bus-type: true
>
> All the possible bus-type values are supported by this h/w?
>
> > + data-lanes: true
> > +
> > + required:
> > + - remote-endpoint
>
> Drop this.
>
> > +
> > + required:
> > + - endpoint
>
> Drop this.
>
> > +
> >
> > port@1:
> > $ref: /schemas/graph.yaml#/properties/port
> > description:
> > Video port for panel or connector.
> >
> > + properties:
> > + endpoint:
> > + $ref: /schemas/media/video-interfaces.yaml#
>
> No additional properties, you don't need this reference or the rest of
> this addition.
>
> > + type: object
> > + additionalProperties: false
> > +
> > + properties:
> > + remote-endpoint: true
> > +
> > + required:
> > + - remote-endpoint
> > +
> > required:
> > - port@0
> > - port@1
> > @@ -87,6 +135,9 @@ examples:
> > vdd10-supply = <&pp1000_mipibrdg>;
> > vdd18-supply = <&pp1800_mipibrdg>;
> > vdd33-supply = <&pp3300_mipibrdg>;
> > + analogix,audio-enable;
> > + analogix,lane0-swing = <0x14 0x54 0x64 0x74 0x29 0x7b 0x77 0x5b>;
> > + analogix,lane1-swing = <0x14 0x54 0x64 0x74 0x29 0x7b 0x77 0x5b>;
>
> If the values are only 8-bit, then make the type uint8-array.
>
> >
> > ports {
> > #address-cells = <1>;
> > @@ -96,6 +147,8 @@ examples:
> > reg = <0>;
> > anx7625_in: endpoint {
> > remote-endpoint = <&mipi_dsi>;
> > + bus-type = <5>;
> > + data-lanes = <0 1 2 3>;
> > };
> > };
> >
> > --
> > 2.25.1
> >
> >
next prev parent reply other threads:[~2021-08-05 7:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-19 10:09 [PATCH v10 0/4] Add MIPI rx DPI support Xin Ji
2021-07-19 10:10 ` [PATCH v10 1/4] dt-bindings:drm/bridge:anx7625:add vendor define flags Xin Ji
2021-07-29 19:08 ` Rob Herring
2021-08-05 7:47 ` Xin Ji [this message]
2021-07-19 10:10 ` [PATCH v10 2/4] drm/bridge: anx7625: fix not correct return value Xin Ji
2021-07-19 10:11 ` [PATCH v10 3/4] drm/bridge: anx7625: add MIPI DPI input feature Xin Ji
2021-07-19 10:12 ` [PATCH v10 4/4] drm/bridge: anx7625: add HDMI audio function Xin Ji
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210805074737.GA2019639@anxtwsw-Precision-3640-Tower \
--to=xji@analogixsemi.com \
--cc=airlied@linux.ie \
--cc=bliang@analogixsemi.com \
--cc=broonie@kernel.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=drinkcat@google.com \
--cc=hsinyi@chromium.org \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=ricardo.canuelo@collabora.com \
--cc=robh@kernel.org \
--cc=sam@ravnborg.org \
--cc=span@analogixsemi.com \
--cc=zhenli@analogixsemi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).