Re: [RFC PATCH 1/8] dt-bindings: drm/panel-simple: Introduce generic eDP panels

From: Rob Herring
Date: Thu Jul 29 2021 - 16:27:46 EST


On Thu, Jul 22, 2021 at 05:21:39PM -0700, Douglas Anderson wrote:
> eDP panels generally contain almost everything needed to control them
> in their EDID. This comes from their DP heritage were a computer needs
> to be able to properly control pretty much any DP display that's
> plugged into it.
>
> The one big issue with eDP panels and the reason that we need a panel
> driver for them is that the power sequencing can be different per
> panel.
>
> While it is true that eDP panel sequencing can be arbitrarily complex,
> in practice it turns out that many eDP panels are compatible with just
> some slightly different delays. See the contents of the bindings file
> introduced in this patch for some details.
>
> The fact that eDP panels are 99% probable and that the power
> sequencing (especially power up) can be compatible between many panels
> means that there's a constant desire to plug multiple different panels
> into the same board. This could be for second sourcing purposes or to
> support multiple SKUs (maybe a 11" and a 13", for instance).
>
> As discussed [1], it should be OK to support this by adding two
> properties to the device tree to specify the delays needed for
> powering up the panel the first time. We'll create a new "edp-panel"
> bindings file and define the two delays that might need to be
> specified. NOTE: in the vast majority of the cases (HPD is hooked up
> and isn't glitchy or is debounced) even these delays aren't needed.
>
> In order to help ease the transition, we'll support old "panel-simple"
> panels as "fallback" panels. In this case "edp-panel" should be
> specified first but if there are problems or a panel is unknown we can
> fallback to controlling panels like we used to.
>
> [1] https://lore.kernel.org/r/CAD=FV=VZYOMPwQZzWdhJGh5cjJWw_EcM-wQVEivZ-bdGXjPrEQ@xxxxxxxxxxxxxx
>
> Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
> ---
> As usual with anything remotely complicated with yaml bindings, I
> mostly messed around with these until it seemed to validate
> correctly. Hopefully this is somewhat the way to do things. If folks
> would prefer something different (maybe just having one bindings file
> for edp-panel and simple-panel) I can change it up.
>
> .../bindings/display/panel/panel-edp.yaml | 196 ++++++
> .../bindings/display/panel/panel-simple.yaml | 559 +++++++++---------
> 2 files changed, 479 insertions(+), 276 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/panel/panel-edp.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-edp.yaml b/Documentation/devicetree/bindings/display/panel/panel-edp.yaml
> new file mode 100644
> index 000000000000..7a9dcf270646
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-edp.yaml
> @@ -0,0 +1,196 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/panel-edp.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Probable (via DP AUX / EDID) eDP Panels with simple poweron sequences
> +
> +maintainers:
> + - Douglas Anderson <dianders@xxxxxxxxxxxx>
> +
> +description: |
> + This binding file can be used to indicate that an eDP panel is connected
> + to a Embedded DisplayPort AUX bus (see display/dp-aux-bus.yaml) without
> + actually specifying exactly what panel is connected. This is useful for
> + the case that more than one different panel could be connected to the
> + board, either for second-sourcing purposes or to support multiple SKUs
> + with different LCDs that hook up to a common board.
> +
> + As per above, a requirement for using this binding is that the panel is
> + represented under the DP AUX bus. This means that we can use any
> + information provided by the DP AUX bus (including the EDID) to identify
> + the panel. We can use this to identify display size, resolution, and
> + timings among other things.
> +
> + One piece of information about eDP panels that is typically _not_
> + provided anywhere on the DP AUX bus is the power sequencing timings.
> + This is the reason why, historically, we've always had to explicitly
> + list eDP panels. We solve that here with two tricks. The "worst case"
> + power on timings for any panels expected to be connected to a board are
> + specified in these bindings. Once we've powered on, it's expected that
> + the operating system will lookup the panel in a table (based on EDID
> + information) to figure out other power sequencing timings.
> +
> + eDP panels in general can have fairly arbitrary power sequencing
> + requirements. However, even though it's arbitrary in general, the
> + vast majority of panel datasheets have a power sequence diagram that
> + looks the exactly the same as every other panel. Each panel datasheet
> + cares about different timings in this diagram but the fact that the
> + diagram is so similar means we can come up with a single driver to
> + handle it.
> +
> + These diagrams all look roughly like this, sometimes labeled with
> + slightly different numbers / lines but all pretty much the same sequence:
> +
> + __________________________________________________
> + Vdd ___/: :\____ /
> + _/ : : \_____/
> + :<T1>:<T2>: :<--T10-->:<T11>:<T12>:
> + : +-----------------------+---------+---------+
> + eDP -----------+ Black video | Src vid | Blk vid +
> + Display : +-----------------------+---------+---------+
> + : _______________________:_________:_________:
> + HPD :<T3>| : : |
> + ___________| : : |_____________
> + : : : :
> + Sink +-----------------------:---------:---------+
> + AUX CH -----------+ AUX Ch operational : : +-------------
> + +-----------------------:---------:---------+
> + : : : :
> + :<T4>: :<T7>: : :
> + Src main +------+------+--------------+---------+
> + lnk data----------------+LnkTrn| Idle |Valid vid data| Idle/off+-------------
> + +------+------+--------------+---------+
> + : <T5> :<-T6->:<-T8->: :
> + :__:<T9>:
> + LED_EN | |
> + _____________________________________| |____________________________
> + : :
> + __________:__:_
> + PWM | : : |
> + __________________________| : : |__________________________
> + : : : :
> + _____________:__________:__:_:______
> + Bklight ____/: : : : : :\____
> + power _______/ :<---T13---->: : : :<T16>: \______________
> + (Vbl) :<T17>:<---------T14--------->: :<-T15->:<T18>:
> +
> + The above looks fairly complex but, as per above, each panel only cares
> + about a subset of those timings.
> +
> +allOf:
> + - $ref: panel-common.yaml#
> +
> +properties:
> + compatible:
> + items:
> + - const: edp-panel
> +
> + # You can list a panel from panel-simple.yaml as a fallback which will

edp-panel should be the fallback. If you want to define that in schema,
then you need to add another case under a oneOf:

items:
- {}
- const: edp-panel

> + # be used for power sequence timings in case the operating system can't
> + # auto-detect using the AUX bus.
> + additionalItems: true
> + minItems: 1
> + maxItems: 2

and then drop all this.

> +
> + hpd-reliable-delay:

standard unit suffix needed

> + $ref: /schemas/types.yaml#/definitions/uint32

Then you can drop this.

> + description:
> + A fixed amount of time (in milliseconds) that must be waited after
> + powering on the panel's power-supply before the HPD signal is a reliable
> + way to know when the AUX channel is ready. This is useful for panels
> + that glitch the HPD at the start of power-on. This value is not needed
> + if HPD is always reliable for all panels that might be connected.
> +
> + hpd-absent-delay:
> + $ref: /schemas/types.yaml#/definitions/uint32

Same here.

> + description:
> + The panel specifies that HPD will be asserted this many milliseconds
> + from power on (timing T3 in the diagram above). If we have no way to
> + measure HPD then a fixed delay of this many milliseconds can be used.
> + This can also be used as a timeout when waiting for HPD. Does not
> + include the hpd-reliable-delay, so if hpd-reliable-delay was 80 ms
> + and hpd-absent-delay was 200 ms then we'd do a fixed 80 ms delay and
> + then we know HPD would assert in the next 120 ms. This value is not
> + needed if HPD hooked up, either through a GPIO in the panel node or
> + hooked up directly to the eDP controller.
> +
> + backlight: true
> + enable-gpios: true
> + port: true
> + power-supply: true
> + no-hpd: true
> + hpd-gpios: true
> +
> +additionalProperties: false
> +
> +required:
> + - compatible
> + - power-supply
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,rpmh.h>
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + bridge@2d {
> + compatible = "ti,sn65dsi86";
> + reg = <0x2d>;
> +
> + interrupt-parent = <&tlmm>;
> + interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
> +
> + enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
> +
> + vpll-supply = <&src_pp1800_s4a>;
> + vccio-supply = <&src_pp1800_s4a>;
> + vcca-supply = <&src_pp1200_l2a>;
> + vcc-supply = <&src_pp1200_l2a>;
> +
> + clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
> + clock-names = "refclk";
> +
> + no-hpd;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + endpoint {
> + remote-endpoint = <&dsi0_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + sn65dsi86_out: endpoint {
> + remote-endpoint = <&panel_in_edp>;
> + };
> + };
> + };
> +
> + aux-bus {
> + panel {
> + compatible = "edp-panel", "boe,nv133fhm-n62";
> + power-supply = <&pp3300_dx_edp>;
> + backlight = <&backlight>;
> + hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
> + hpd-reliable-delay = <15>;
> +
> + port {
> + panel_in_edp: endpoint {
> + remote-endpoint = <&sn65dsi86_out>;
> + };
> + };
> + };
> + };
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> index 3624363938dd..a3ebd2bdbe1e 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> @@ -23,284 +23,287 @@ allOf:
> - $ref: panel-common.yaml#
>
> properties:
> -
> compatible:
> - enum:
> - # compatible must be listed in alphabetical order, ordered by compatible.
> - # The description in the comment is mandatory for each compatible.
> + anyOf:
> + - minItems: 1
> + - items:
> + - const: edp-panel
> + - enum:

This is odd... I'm somewhat surprised it works with the dtschema fixups
and 'select' generation code.

> + # compatible must be listed in alphabetical order, ordered by compatible.
> + # The description in the comment is mandatory for each compatible.
>
> - # Ampire AM-1280800N3TZQW-T00H 10.1" WQVGA TFT LCD panel
> - - ampire,am-1280800n3tzqw-t00h
> - # Ampire AM-480272H3TMQW-T01H 4.3" WQVGA TFT LCD panel
> - - ampire,am-480272h3tmqw-t01h
> - # Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
> - - ampire,am800480r3tmqwa1h
> - # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> - - auo,b101aw03
> - # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> - - auo,b101ean01
> - # AU Optronics Corporation 10.1" WXGA TFT LCD panel
> - - auo,b101xtn01
> - # AUO B116XAK01 eDP TFT LCD panel
> - - auo,b116xa01
> - # AU Optronics Corporation 11.6" HD (1366x768) color TFT-LCD panel
> - - auo,b116xw03
> - # AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
> - - auo,b133htn01
> - # AU Optronics Corporation 13.3" WXGA (1366x768) TFT LCD panel
> - - auo,b133xtn01
> - # AU Optronics Corporation 7.0" FHD (800 x 480) TFT LCD panel
> - - auo,g070vvn01
> - # AU Optronics Corporation 10.1" (1280x800) color TFT LCD panel
> - - auo,g101evn010
> - # AU Optronics Corporation 10.4" (800x600) color TFT LCD panel
> - - auo,g104sn02
> - # AU Optronics Corporation 12.1" (1280x800) TFT LCD panel
> - - auo,g121ean01
> - # AU Optronics Corporation 13.3" FHD (1920x1080) TFT LCD panel
> - - auo,g133han01
> - # AU Optronics Corporation 15.6" (1366x768) TFT LCD panel
> - - auo,g156xtn01
> - # AU Optronics Corporation 18.5" FHD (1920x1080) TFT LCD panel
> - - auo,g185han01
> - # AU Optronics Corporation 19.0" (1280x1024) TFT LCD panel
> - - auo,g190ean01
> - # AU Optronics Corporation 31.5" FHD (1920x1080) TFT LCD panel
> - - auo,p320hvn03
> - # AU Optronics Corporation 21.5" FHD (1920x1080) color TFT LCD panel
> - - auo,t215hvn01
> - # Shanghai AVIC Optoelectronics 7" 1024x600 color TFT-LCD panel
> - - avic,tm070ddh03
> - # BOE HV070WSA-100 7.01" WSVGA TFT LCD panel
> - - boe,hv070wsa-100
> - # BOE OPTOELECTRONICS TECHNOLOGY 10.1" WXGA TFT LCD panel
> - - boe,nv101wxmn51
> - # BOE NV133FHM-N61 13.3" FHD (1920x1080) TFT LCD Panel
> - - boe,nv110wtm-n61
> - # BOE NV110WTM-N61 11.0" 2160x1440 TFT LCD Panel
> - - boe,nv133fhm-n61
> - # BOE NV133FHM-N62 13.3" FHD (1920x1080) TFT LCD Panel
> - - boe,nv133fhm-n62
> - # BOE NV140FHM-N49 14.0" FHD a-Si FT panel
> - - boe,nv140fhmn49
> - # CDTech(H.K.) Electronics Limited 4.3" 480x272 color TFT-LCD panel
> - - cdtech,s043wq26h-ct7
> - # CDTech(H.K.) Electronics Limited 7" WSVGA (1024x600) TFT LCD Panel
> - - cdtech,s070pws19hp-fc21
> - # CDTech(H.K.) Electronics Limited 7" WVGA (800x480) TFT LCD Panel
> - - cdtech,s070swv29hg-dc44
> - # CDTech(H.K.) Electronics Limited 7" 800x480 color TFT-LCD panel
> - - cdtech,s070wv95-ct16
> - # Chefree CH101OLHLWH-002 10.1" (1280x800) color TFT LCD panel
> - - chefree,ch101olhlwh-002
> - # Chunghwa Picture Tubes Ltd. 7" WXGA TFT LCD panel
> - - chunghwa,claa070wp03xg
> - # Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel
> - - chunghwa,claa101wa01a
> - # Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel
> - - chunghwa,claa101wb01
> - # Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel
> - - chunghwa,claa101wb03
> - # DataImage, Inc. 7" WVGA (800x480) TFT LCD panel with 24-bit parallel interface.
> - - dataimage,scf0700c48ggu18
> - # DLC Display Co. DLC1010GIG 10.1" WXGA TFT LCD Panel
> - - dlc,dlc1010gig
> - # Emerging Display Technology Corp. 3.5" QVGA TFT LCD panel
> - - edt,et035012dm6
> - # Emerging Display Technology Corp. 5.7" VGA TFT LCD panel
> - - edt,et057090dhu
> - - edt,et070080dh6
> - # Emerging Display Technology Corp. 3.5" WVGA TFT LCD panel with
> - # capacitive multitouch
> - - edt,etm0350g0dh6
> - # Emerging Display Technology Corp. 480x272 TFT Display with capacitive touch
> - - edt,etm043080dh6gp
> - # Emerging Display Technology Corp. 480x272 TFT Display
> - - edt,etm0430g0dh6
> - # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> - # Same as ETM0700G0DH6 but with inverted pixel clock.
> - - edt,etm070080bdh6
> - # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> - # Same timings as the ETM0700G0DH6, but with resistive touch.
> - - edt,etm070080dh6
> - # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> - # Same display as the ETM0700G0BDH6, but with changed hardware for the
> - # backlight and the touch interface.
> - - edt,etm070080edh6
> - - edt,etm0700g0bdh6
> - # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> - - edt,etm0700g0dh6
> - - edt,etm0700g0edh6
> - # Emerging Display Technology Corp. 5.7" VGA TFT LCD panel with
> - # capacitive touch
> - - edt,etmv570g2dhu
> - # Evervision Electronics Co. Ltd. VGG804821 5.0" WVGA TFT LCD Panel
> - - evervision,vgg804821
> - # Foxlink Group 5" WVGA TFT LCD panel
> - - foxlink,fl500wvr00-a0t
> - # Frida FRD350H54004 3.5" QVGA TFT LCD panel
> - - frida,frd350h54004
> - # FriendlyELEC HD702E 800x1280 LCD panel
> - - friendlyarm,hd702e
> - # GiantPlus GPG48273QS5 4.3" (480x272) WQVGA TFT LCD panel
> - - giantplus,gpg48273qs5
> - # GiantPlus GPM940B0 3.0" QVGA TFT LCD panel
> - - giantplus,gpm940b0
> - # HannStar Display Corp. HSD070PWW1 7.0" WXGA TFT LCD panel
> - - hannstar,hsd070pww1
> - # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel
> - - hannstar,hsd100pxn1
> - # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel
> - - hit,tx23d38vm0caa
> - # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panel
> - - ivo,m133nwf4-r0
> - # Innolux AT043TN24 4.3" WQVGA TFT LCD panel
> - - innolux,at043tn24
> - # Innolux AT070TN92 7.0" WQVGA TFT LCD panel
> - - innolux,at070tn92
> - # Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD panel
> - - innolux,g070y2-l01
> - # Innolux Corporation 10.1" G101ICE-L01 WXGA (1280x800) LVDS panel
> - - innolux,g101ice-l01
> - # Innolux Corporation 12.1" WXGA (1280x800) TFT LCD panel
> - - innolux,g121i1-l01
> - # Innolux Corporation 12.1" G121X1-L03 XGA (1024x768) TFT LCD panel
> - - innolux,g121x1-l03
> - # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
> - - innolux,n116bca-ea1
> - # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
> - - innolux,n116bge
> - # InnoLux 13.3" FHD (1920x1080) eDP TFT LCD panel
> - - innolux,n125hce-gn1
> - # InnoLux 15.6" WXGA TFT LCD panel
> - - innolux,n156bge-l21
> - # Innolux Corporation 7.0" WSVGA (1024x600) TFT LCD panel
> - - innolux,zj070na-01p
> - # King & Display KD116N21-30NV-A010 eDP TFT LCD panel
> - - kingdisplay,kd116n21-30nv-a010
> - # Kaohsiung Opto-Electronics Inc. 5.7" QVGA (320 x 240) TFT LCD panel
> - - koe,tx14d24vm1bpa
> - # Kaohsiung Opto-Electronics Inc. 10.1" WUXGA (1920 x 1200) LVDS TFT LCD panel
> - - koe,tx26d202vm0bwa
> - # Kaohsiung Opto-Electronics. TX31D200VM0BAA 12.3" HSXGA LVDS panel
> - - koe,tx31d200vm0baa
> - # Kyocera Corporation 7" WVGA (800x480) transmissive color TFT
> - - kyo,tcg070wvlq
> - # Kyocera Corporation 12.1" XGA (1024x768) TFT LCD panel
> - - kyo,tcg121xglp
> - # LeMaker BL035-RGB-002 3.5" QVGA TFT LCD panel
> - - lemaker,bl035-rgb-002
> - # LG 7" (800x480 pixels) TFT LCD panel
> - - lg,lb070wv8
> - # LG Corporation 5" HD TFT LCD panel
> - - lg,lh500wx1-sd03
> - # LG LP079QX1-SP0V 7.9" (1536x2048 pixels) TFT LCD panel
> - - lg,lp079qx1-sp0v
> - # LG 9.7" (2048x1536 pixels) TFT LCD panel
> - - lg,lp097qx1-spa1
> - # LG 12.0" (1920x1280 pixels) TFT LCD panel
> - - lg,lp120up1
> - # LG 12.9" (2560x1700 pixels) TFT LCD panel
> - - lg,lp129qe
> - # Logic Technologies LT161010-2NHC 7" WVGA TFT Cap Touch Module
> - - logictechno,lt161010-2nhc
> - # Logic Technologies LT161010-2NHR 7" WVGA TFT Resistive Touch Module
> - - logictechno,lt161010-2nhr
> - # Logic Technologies LT170410-2WHC 10.1" 1280x800 IPS TFT Cap Touch Mod.
> - - logictechno,lt170410-2whc
> - # Mitsubishi "AA070MC01 7.0" WVGA TFT LCD panel
> - - mitsubishi,aa070mc01-ca1
> - # NEC LCD Technologies, Ltd. 12.1" WXGA (1280x800) LVDS TFT LCD panel
> - - nec,nl12880bc20-05
> - # NEC LCD Technologies,Ltd. WQVGA TFT LCD panel
> - - nec,nl4827hc19-05b
> - # Netron-DY E231732 7.0" WSVGA TFT LCD panel
> - - netron-dy,e231732
> - # NewEast Optoelectronics CO., LTD WJFH116008A eDP TFT LCD panel
> - - neweast,wjfh116008a
> - # Newhaven Display International 480 x 272 TFT LCD panel
> - - newhaven,nhd-4.3-480272ef-atxl
> - # NLT Technologies, Ltd. 15.6" FHD (1920x1080) LVDS TFT LCD panel
> - - nlt,nl192108ac18-02d
> - # New Vision Display 7.0" 800 RGB x 480 TFT LCD panel
> - - nvd,9128
> - # OKAYA Electric America, Inc. RS800480T-7X0GP 7" WVGA LCD panel
> - - okaya,rs800480t-7x0gp
> - # Olimex 4.3" TFT LCD panel
> - - olimex,lcd-olinuxino-43-ts
> - # On Tat Industrial Company 7" DPI TFT panel.
> - - ontat,yx700wv03
> - # OrtusTech COM37H3M05DTC Blanview 3.7" VGA portrait TFT-LCD panel
> - - ortustech,com37h3m05dtc
> - # OrtusTech COM37H3M99DTC Blanview 3.7" VGA portrait TFT-LCD panel
> - - ortustech,com37h3m99dtc
> - # OrtusTech COM43H4M85ULC Blanview 3.7" TFT-LCD panel
> - - ortustech,com43h4m85ulc
> - # OSD Displays OSD070T1718-19TS 7" WVGA TFT LCD panel
> - - osddisplays,osd070t1718-19ts
> - # One Stop Displays OSD101T2045-53TS 10.1" 1920x1200 panel
> - - osddisplays,osd101t2045-53ts
> - # POWERTIP PH800480T013-IDF2 7.0" WVGA TFT LCD panel
> - - powertip,ph800480t013-idf02
> - # QiaoDian XianShi Corporation 4"3 TFT LCD panel
> - - qiaodian,qd43003c0-40
> - # Rocktech Displays Ltd. RK101II01D-CT 10.1" TFT 1280x800
> - - rocktech,rk101ii01d-ct
> - # Rocktech Display Ltd. RK070ER9427 800(RGB)x480 TFT LCD panel
> - - rocktech,rk070er9427
> - # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
> - - samsung,atna33xc20
> - # Samsung 12.2" (2560x1600 pixels) TFT LCD panel
> - - samsung,lsn122dl01-c01
> - # Samsung Electronics 10.1" WSVGA TFT LCD panel
> - - samsung,ltn101nt05
> - # Samsung Electronics 14" WXGA (1366x768) TFT LCD panel
> - - samsung,ltn140at29-301
> - # Satoz SAT050AT40H12R2 5.0" WVGA TFT LCD panel
> - - satoz,sat050at40h12r2
> - # Sharp LQ035Q7DB03 3.5" QVGA TFT LCD panel
> - - sharp,lq035q7db03
> - # Sharp LQ070Y3DG3B 7.0" WVGA landscape TFT LCD panel
> - - sharp,lq070y3dg3b
> - # Sharp Display Corp. LQ101K1LY04 10.07" WXGA TFT LCD panel
> - - sharp,lq101k1ly04
> - # Sharp 12.3" (2400x1600 pixels) TFT LCD panel
> - - sharp,lq123p1jx31
> - # Sharp LS020B1DD01D 2.0" HQVGA TFT LCD panel
> - - sharp,ls020b1dd01d
> - # Shelly SCA07010-BFN-LNN 7.0" WVGA TFT LCD panel
> - - shelly,sca07010-bfn-lnn
> - # Starry KR070PE2T 7" WVGA TFT LCD panel
> - - starry,kr070pe2t
> - # Starry 12.2" (1920x1200 pixels) TFT LCD panel
> - - starry,kr122ea0sra
> - # Tianma Micro-electronics TM070JDHG30 7.0" WXGA TFT LCD panel
> - - tianma,tm070jdhg30
> - # Tianma Micro-electronics TM070JVHG33 7.0" WXGA TFT LCD panel
> - - tianma,tm070jvhg33
> - # Tianma Micro-electronics TM070RVHG71 7.0" WXGA TFT LCD panel
> - - tianma,tm070rvhg71
> - # Toshiba 8.9" WXGA (1280x768) TFT LCD panel
> - - toshiba,lt089ac29000
> - # TPK U.S.A. LLC Fusion 7" 800 x 480 (WVGA) LCD panel with capacitive touch
> - - tpk,f07a-0102
> - # TPK U.S.A. LLC Fusion 10.1" 1024 x 600 (WSVGA) LCD panel with capacitive touch
> - - tpk,f10a-0102
> - # United Radiant Technology UMSH-8596MD-xT 7.0" WVGA TFT LCD panel
> - # Supported are LVDS versions (-11T, -19T) and parallel ones
> - # (-T, -1T, -7T, -20T).
> - - urt,umsh-8596md-t
> - - urt,umsh-8596md-1t
> - - urt,umsh-8596md-7t
> - - urt,umsh-8596md-11t
> - - urt,umsh-8596md-19t
> - - urt,umsh-8596md-20t
> - # VXT 800x480 color TFT LCD panel
> - - vxt,vl050-8048nt-c01
> - # Winstar Display Corporation 3.5" QVGA (320x240) TFT LCD panel
> - - winstar,wf35ltiacd
> - # Yes Optoelectronics YTC700TLAG-05-201C 7" TFT LCD panel
> - - yes-optoelectronics,ytc700tlag-05-201c
> + # Ampire AM-1280800N3TZQW-T00H 10.1" WQVGA TFT LCD panel
> + - ampire,am-1280800n3tzqw-t00h
> + # Ampire AM-480272H3TMQW-T01H 4.3" WQVGA TFT LCD panel
> + - ampire,am-480272h3tmqw-t01h
> + # Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
> + - ampire,am800480r3tmqwa1h
> + # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> + - auo,b101aw03
> + # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> + - auo,b101ean01
> + # AU Optronics Corporation 10.1" WXGA TFT LCD panel
> + - auo,b101xtn01
> + # AUO B116XAK01 eDP TFT LCD panel
> + - auo,b116xa01
> + # AU Optronics Corporation 11.6" HD (1366x768) color TFT-LCD panel
> + - auo,b116xw03
> + # AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
> + - auo,b133htn01
> + # AU Optronics Corporation 13.3" WXGA (1366x768) TFT LCD panel
> + - auo,b133xtn01
> + # AU Optronics Corporation 7.0" FHD (800 x 480) TFT LCD panel
> + - auo,g070vvn01
> + # AU Optronics Corporation 10.1" (1280x800) color TFT LCD panel
> + - auo,g101evn010
> + # AU Optronics Corporation 10.4" (800x600) color TFT LCD panel
> + - auo,g104sn02
> + # AU Optronics Corporation 12.1" (1280x800) TFT LCD panel
> + - auo,g121ean01
> + # AU Optronics Corporation 13.3" FHD (1920x1080) TFT LCD panel
> + - auo,g133han01
> + # AU Optronics Corporation 15.6" (1366x768) TFT LCD panel
> + - auo,g156xtn01
> + # AU Optronics Corporation 18.5" FHD (1920x1080) TFT LCD panel
> + - auo,g185han01
> + # AU Optronics Corporation 19.0" (1280x1024) TFT LCD panel
> + - auo,g190ean01
> + # AU Optronics Corporation 31.5" FHD (1920x1080) TFT LCD panel
> + - auo,p320hvn03
> + # AU Optronics Corporation 21.5" FHD (1920x1080) color TFT LCD panel
> + - auo,t215hvn01
> + # Shanghai AVIC Optoelectronics 7" 1024x600 color TFT-LCD panel
> + - avic,tm070ddh03
> + # BOE HV070WSA-100 7.01" WSVGA TFT LCD panel
> + - boe,hv070wsa-100
> + # BOE OPTOELECTRONICS TECHNOLOGY 10.1" WXGA TFT LCD panel
> + - boe,nv101wxmn51
> + # BOE NV133FHM-N61 13.3" FHD (1920x1080) TFT LCD Panel
> + - boe,nv110wtm-n61
> + # BOE NV110WTM-N61 11.0" 2160x1440 TFT LCD Panel
> + - boe,nv133fhm-n61
> + # BOE NV133FHM-N62 13.3" FHD (1920x1080) TFT LCD Panel
> + - boe,nv133fhm-n62
> + # BOE NV140FHM-N49 14.0" FHD a-Si FT panel
> + - boe,nv140fhmn49
> + # CDTech(H.K.) Electronics Limited 4.3" 480x272 color TFT-LCD panel
> + - cdtech,s043wq26h-ct7
> + # CDTech(H.K.) Electronics Limited 7" WSVGA (1024x600) TFT LCD Panel
> + - cdtech,s070pws19hp-fc21
> + # CDTech(H.K.) Electronics Limited 7" WVGA (800x480) TFT LCD Panel
> + - cdtech,s070swv29hg-dc44
> + # CDTech(H.K.) Electronics Limited 7" 800x480 color TFT-LCD panel
> + - cdtech,s070wv95-ct16
> + # Chefree CH101OLHLWH-002 10.1" (1280x800) color TFT LCD panel
> + - chefree,ch101olhlwh-002
> + # Chunghwa Picture Tubes Ltd. 7" WXGA TFT LCD panel
> + - chunghwa,claa070wp03xg
> + # Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel
> + - chunghwa,claa101wa01a
> + # Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel
> + - chunghwa,claa101wb01
> + # Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel
> + - chunghwa,claa101wb03
> + # DataImage, Inc. 7" WVGA (800x480) TFT LCD panel with 24-bit parallel interface.
> + - dataimage,scf0700c48ggu18
> + # DLC Display Co. DLC1010GIG 10.1" WXGA TFT LCD Panel
> + - dlc,dlc1010gig
> + # Emerging Display Technology Corp. 3.5" QVGA TFT LCD panel
> + - edt,et035012dm6
> + # Emerging Display Technology Corp. 5.7" VGA TFT LCD panel
> + - edt,et057090dhu
> + - edt,et070080dh6
> + # Emerging Display Technology Corp. 3.5" WVGA TFT LCD panel with
> + # capacitive multitouch
> + - edt,etm0350g0dh6
> + # Emerging Display Technology Corp. 480x272 TFT Display with capacitive touch
> + - edt,etm043080dh6gp
> + # Emerging Display Technology Corp. 480x272 TFT Display
> + - edt,etm0430g0dh6
> + # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> + # Same as ETM0700G0DH6 but with inverted pixel clock.
> + - edt,etm070080bdh6
> + # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> + # Same timings as the ETM0700G0DH6, but with resistive touch.
> + - edt,etm070080dh6
> + # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> + # Same display as the ETM0700G0BDH6, but with changed hardware for the
> + # backlight and the touch interface.
> + - edt,etm070080edh6
> + - edt,etm0700g0bdh6
> + # Emerging Display Technology Corp. WVGA TFT Display with capacitive touch
> + - edt,etm0700g0dh6
> + - edt,etm0700g0edh6
> + # Emerging Display Technology Corp. 5.7" VGA TFT LCD panel with
> + # capacitive touch
> + - edt,etmv570g2dhu
> + # Evervision Electronics Co. Ltd. VGG804821 5.0" WVGA TFT LCD Panel
> + - evervision,vgg804821
> + # Foxlink Group 5" WVGA TFT LCD panel
> + - foxlink,fl500wvr00-a0t
> + # Frida FRD350H54004 3.5" QVGA TFT LCD panel
> + - frida,frd350h54004
> + # FriendlyELEC HD702E 800x1280 LCD panel
> + - friendlyarm,hd702e
> + # GiantPlus GPG48273QS5 4.3" (480x272) WQVGA TFT LCD panel
> + - giantplus,gpg48273qs5
> + # GiantPlus GPM940B0 3.0" QVGA TFT LCD panel
> + - giantplus,gpm940b0
> + # HannStar Display Corp. HSD070PWW1 7.0" WXGA TFT LCD panel
> + - hannstar,hsd070pww1
> + # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel
> + - hannstar,hsd100pxn1
> + # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel
> + - hit,tx23d38vm0caa
> + # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panel
> + - ivo,m133nwf4-r0
> + # Innolux AT043TN24 4.3" WQVGA TFT LCD panel
> + - innolux,at043tn24
> + # Innolux AT070TN92 7.0" WQVGA TFT LCD panel
> + - innolux,at070tn92
> + # Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD panel
> + - innolux,g070y2-l01
> + # Innolux Corporation 10.1" G101ICE-L01 WXGA (1280x800) LVDS panel
> + - innolux,g101ice-l01
> + # Innolux Corporation 12.1" WXGA (1280x800) TFT LCD panel
> + - innolux,g121i1-l01
> + # Innolux Corporation 12.1" G121X1-L03 XGA (1024x768) TFT LCD panel
> + - innolux,g121x1-l03
> + # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
> + - innolux,n116bca-ea1
> + # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
> + - innolux,n116bge
> + # InnoLux 13.3" FHD (1920x1080) eDP TFT LCD panel
> + - innolux,n125hce-gn1
> + # InnoLux 15.6" WXGA TFT LCD panel
> + - innolux,n156bge-l21
> + # Innolux Corporation 7.0" WSVGA (1024x600) TFT LCD panel
> + - innolux,zj070na-01p
> + # King & Display KD116N21-30NV-A010 eDP TFT LCD panel
> + - kingdisplay,kd116n21-30nv-a010
> + # Kaohsiung Opto-Electronics Inc. 5.7" QVGA (320 x 240) TFT LCD panel
> + - koe,tx14d24vm1bpa
> + # Kaohsiung Opto-Electronics Inc. 10.1" WUXGA (1920 x 1200) LVDS TFT LCD panel
> + - koe,tx26d202vm0bwa
> + # Kaohsiung Opto-Electronics. TX31D200VM0BAA 12.3" HSXGA LVDS panel
> + - koe,tx31d200vm0baa
> + # Kyocera Corporation 7" WVGA (800x480) transmissive color TFT
> + - kyo,tcg070wvlq
> + # Kyocera Corporation 12.1" XGA (1024x768) TFT LCD panel
> + - kyo,tcg121xglp
> + # LeMaker BL035-RGB-002 3.5" QVGA TFT LCD panel
> + - lemaker,bl035-rgb-002
> + # LG 7" (800x480 pixels) TFT LCD panel
> + - lg,lb070wv8
> + # LG Corporation 5" HD TFT LCD panel
> + - lg,lh500wx1-sd03
> + # LG LP079QX1-SP0V 7.9" (1536x2048 pixels) TFT LCD panel
> + - lg,lp079qx1-sp0v
> + # LG 9.7" (2048x1536 pixels) TFT LCD panel
> + - lg,lp097qx1-spa1
> + # LG 12.0" (1920x1280 pixels) TFT LCD panel
> + - lg,lp120up1
> + # LG 12.9" (2560x1700 pixels) TFT LCD panel
> + - lg,lp129qe
> + # Logic Technologies LT161010-2NHC 7" WVGA TFT Cap Touch Module
> + - logictechno,lt161010-2nhc
> + # Logic Technologies LT161010-2NHR 7" WVGA TFT Resistive Touch Module
> + - logictechno,lt161010-2nhr
> + # Logic Technologies LT170410-2WHC 10.1" 1280x800 IPS TFT Cap Touch Mod.
> + - logictechno,lt170410-2whc
> + # Mitsubishi "AA070MC01 7.0" WVGA TFT LCD panel
> + - mitsubishi,aa070mc01-ca1
> + # NEC LCD Technologies, Ltd. 12.1" WXGA (1280x800) LVDS TFT LCD panel
> + - nec,nl12880bc20-05
> + # NEC LCD Technologies,Ltd. WQVGA TFT LCD panel
> + - nec,nl4827hc19-05b
> + # Netron-DY E231732 7.0" WSVGA TFT LCD panel
> + - netron-dy,e231732
> + # NewEast Optoelectronics CO., LTD WJFH116008A eDP TFT LCD panel
> + - neweast,wjfh116008a
> + # Newhaven Display International 480 x 272 TFT LCD panel
> + - newhaven,nhd-4.3-480272ef-atxl
> + # NLT Technologies, Ltd. 15.6" FHD (1920x1080) LVDS TFT LCD panel
> + - nlt,nl192108ac18-02d
> + # New Vision Display 7.0" 800 RGB x 480 TFT LCD panel
> + - nvd,9128
> + # OKAYA Electric America, Inc. RS800480T-7X0GP 7" WVGA LCD panel
> + - okaya,rs800480t-7x0gp
> + # Olimex 4.3" TFT LCD panel
> + - olimex,lcd-olinuxino-43-ts
> + # On Tat Industrial Company 7" DPI TFT panel.
> + - ontat,yx700wv03
> + # OrtusTech COM37H3M05DTC Blanview 3.7" VGA portrait TFT-LCD panel
> + - ortustech,com37h3m05dtc
> + # OrtusTech COM37H3M99DTC Blanview 3.7" VGA portrait TFT-LCD panel
> + - ortustech,com37h3m99dtc
> + # OrtusTech COM43H4M85ULC Blanview 3.7" TFT-LCD panel
> + - ortustech,com43h4m85ulc
> + # OSD Displays OSD070T1718-19TS 7" WVGA TFT LCD panel
> + - osddisplays,osd070t1718-19ts
> + # One Stop Displays OSD101T2045-53TS 10.1" 1920x1200 panel
> + - osddisplays,osd101t2045-53ts
> + # POWERTIP PH800480T013-IDF2 7.0" WVGA TFT LCD panel
> + - powertip,ph800480t013-idf02
> + # QiaoDian XianShi Corporation 4"3 TFT LCD panel
> + - qiaodian,qd43003c0-40
> + # Rocktech Displays Ltd. RK101II01D-CT 10.1" TFT 1280x800
> + - rocktech,rk101ii01d-ct
> + # Rocktech Display Ltd. RK070ER9427 800(RGB)x480 TFT LCD panel
> + - rocktech,rk070er9427
> + # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
> + - samsung,atna33xc20
> + # Samsung 12.2" (2560x1600 pixels) TFT LCD panel
> + - samsung,lsn122dl01-c01
> + # Samsung Electronics 10.1" WSVGA TFT LCD panel
> + - samsung,ltn101nt05
> + # Samsung Electronics 14" WXGA (1366x768) TFT LCD panel
> + - samsung,ltn140at29-301
> + # Satoz SAT050AT40H12R2 5.0" WVGA TFT LCD panel
> + - satoz,sat050at40h12r2
> + # Sharp LQ035Q7DB03 3.5" QVGA TFT LCD panel
> + - sharp,lq035q7db03
> + # Sharp LQ070Y3DG3B 7.0" WVGA landscape TFT LCD panel
> + - sharp,lq070y3dg3b
> + # Sharp Display Corp. LQ101K1LY04 10.07" WXGA TFT LCD panel
> + - sharp,lq101k1ly04
> + # Sharp 12.3" (2400x1600 pixels) TFT LCD panel
> + - sharp,lq123p1jx31
> + # Sharp LS020B1DD01D 2.0" HQVGA TFT LCD panel
> + - sharp,ls020b1dd01d
> + # Shelly SCA07010-BFN-LNN 7.0" WVGA TFT LCD panel
> + - shelly,sca07010-bfn-lnn
> + # Starry KR070PE2T 7" WVGA TFT LCD panel
> + - starry,kr070pe2t
> + # Starry 12.2" (1920x1200 pixels) TFT LCD panel
> + - starry,kr122ea0sra
> + # Tianma Micro-electronics TM070JDHG30 7.0" WXGA TFT LCD panel
> + - tianma,tm070jdhg30
> + # Tianma Micro-electronics TM070JVHG33 7.0" WXGA TFT LCD panel
> + - tianma,tm070jvhg33
> + # Tianma Micro-electronics TM070RVHG71 7.0" WXGA TFT LCD panel
> + - tianma,tm070rvhg71
> + # Toshiba 8.9" WXGA (1280x768) TFT LCD panel
> + - toshiba,lt089ac29000
> + # TPK U.S.A. LLC Fusion 7" 800 x 480 (WVGA) LCD panel with capacitive touch
> + - tpk,f07a-0102
> + # TPK U.S.A. LLC Fusion 10.1" 1024 x 600 (WSVGA) LCD panel with capacitive touch
> + - tpk,f10a-0102
> + # United Radiant Technology UMSH-8596MD-xT 7.0" WVGA TFT LCD panel
> + # Supported are LVDS versions (-11T, -19T) and parallel ones
> + # (-T, -1T, -7T, -20T).
> + - urt,umsh-8596md-t
> + - urt,umsh-8596md-1t
> + - urt,umsh-8596md-7t
> + - urt,umsh-8596md-11t
> + - urt,umsh-8596md-19t
> + - urt,umsh-8596md-20t
> + # VXT 800x480 color TFT LCD panel
> + - vxt,vl050-8048nt-c01
> + # Winstar Display Corporation 3.5" QVGA (320x240) TFT LCD panel
> + - winstar,wf35ltiacd
> + # Yes Optoelectronics YTC700TLAG-05-201C 7" TFT LCD panel
> + - yes-optoelectronics,ytc700tlag-05-201c

Well, this is going to cause every patch to conflict...

IMO, you should move any applicable compatibles to the edp-panel schema.
Also, I don't think you should add 'edp-panel' to them. If they can work
better with the generic eDP driver, then that should be an internal
kernel change without a DT change. Also, if 2 different drivers match on
compatible, it's a roll of the dice which driver binds.

Rob