Message ID | 20220325171511.23493-1-granquet@baylibre.com |
---|---|
Headers | show |
Series | drm/mediatek: Add mt8195 DisplayPort driver | expand |
On 25/03/2022 18:14, Guillaume Ranquet wrote: > From: Markus Schneider-Pargmann <msp@baylibre.com> > > This controller is present on several mediatek hardware. Currently > mt8195 and mt8395 have this controller without a functional difference, > so only one compatible field is added. > > The controller can have two forms, as a normal display port and as an > embedded display port. > > Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com> > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > .../display/mediatek/mediatek,dp.yaml | 97 +++++++++++++++++++ > 1 file changed, 97 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml > new file mode 100644 > index 000000000000..74db5c4e0f73 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml > @@ -0,0 +1,97 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,dp.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek Display Port Controller > + > +maintainers: > + - CK Hu <ck.hu@mediatek.com> > + - Jitao shi <jitao.shi@mediatek.com> > + > +description: | > + Device tree bindings for the Mediatek (embedded) Display Port controller > + present on some Mediatek SoCs. > + > +properties: > + compatible: > + enum: > + - mediatek,mt8195-dp-tx > + - syscon This is wrong, should be a list. Are you sure you got Rob's review? I see now v8 with his Reviewed-by tag, but without syscon, so he looked at something else. Please drop his tag and please test your changes. This would be easily spotted with dt_binding_check. > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + items: > + - description: faxi clock > + > + clock-names: > + items: > + - const: faxi > + > + phys: > + maxItems: 1 > + > + phy-names: > + items: > + - const: dp > + > + power-domains: > + maxItems: 1 > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: Input endpoint of the controller, usually dp_intf > + > + port@1: > + $ref: /schemas/graph.yaml#/properties/port > + description: Output endpoint of the controller None of the ports are required? > + > +required: > + - compatible > + - reg > + - interrupts > + - ports > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/power/mt8195-power.h> > + edp_tx: edp_tx@1c500000 { generic node name, so I guess "dp" as display-port. > + compatible = "mediatek,mt8195-dp-tx","syscon"; > + reg = <0 0x1c500000 0 0x8000>; > + interrupts = <GIC_SPI 676 IRQ_TYPE_LEVEL_HIGH 0>; > + power-domains = <&spm MT8195_POWER_DOMAIN_EPD_TX>; > + pinctrl-names = "default"; > + pinctrl-0 = <&edp_pin>; > + phys = <&dp_phy>; > + phy-names = "dp"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + edp_in: endpoint { > + remote-endpoint = <&dp_intf0_out>; > + }; > + }; > + port@1 { > + reg = <1>; > + edp_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + }; > + }; Best regards, Krzysztof
On Fri, 25 Mar 2022 18:14, Guillaume Ranquet <granquet@baylibre.com> wrote: >this series is built around the DisplayPort driver. The dpi/dpintf >driver and the added helper functions are required for the DisplayPort >driver to work. > >This v9 is not quite ready yet, as project constraints forces me to >publish v9 this week, I'm sorry if it's not standard practice. > >Moreover, it is still un-tested on a recent kernel. >The integration kernel we are using is still based on 5.10... but we >are actively working on bringing up a mt8195 integration branch on 5.17. >The patches have been rebased on top of next-20220301 and have been >tested to build sucessfully (no functional testing). > >Changes from v8: >- The DP-Phy now has its own dt-bindings and now shares a regmap using the > syscon facility with the DP driver. >- hot plug detection has been removed from the Embedded Display Port. > patch and moved to the patch adding External Display Port support. >- started working on better error handling for the mtk_dp driver. >- rebased on linux-next. >- removal of tvd pll clocks re-introduced by mistake. >- various coding style fixes. > >Things that are in my todolist for v10: >- fixing the train_handler in the mtk_dp driver, as I haven't been able > to reproduce locally (hopefully migrating to running the tests on a > more recent kernel will help) >- explaining the various sleep/delays introduced in the drivers >- explaining some of the differences between mt8195 and "legacy" >- retrieve CK/DE support from panel driver instead of hardcoding it into > the dpi driver. >- better error handling/reporting in mtk_dp >- look into re-implementing mtk_dp_aux_transfer() using drm_dp_dpcd_read and > drm_dp_dpcd_write as suggested by Rex. > >Older revisions: >RFC - https://lore.kernel.org/linux-mediatek/20210816192523.1739365-1-msp@baylibre.com/ >v1 - https://lore.kernel.org/linux-mediatek/20210906193529.718845-1-msp@baylibre.com/ >v2 - https://lore.kernel.org/linux-mediatek/20210920084424.231825-1-msp@baylibre.com/ >v3 - https://lore.kernel.org/linux-mediatek/20211001094443.2770169-1-msp@baylibre.com/ >v4 - https://lore.kernel.org/linux-mediatek/20211011094624.3416029-1-msp@baylibre.com/ >v5 - https://lore.kernel.org/all/20211021092707.3562523-1-msp@baylibre.com/ >v6 - https://lore.kernel.org/linux-mediatek/20211110130623.20553-1-granquet@baylibre.com/ >v7 - https://lore.kernel.org/linux-mediatek/20211217150854.2081-1-granquet@baylibre.com/ >v8 - https://lore.kernel.org/linux-mediatek/20220218145437.18563-1-granquet@baylibre.com/ > >Functional dependencies are: >- Add Mediatek Soc DRM (vdosys0) support for mt8195 > https://lore.kernel.org/all/20211026155911.17651-1-jason-jh.lin@mediatek.com/ >- Add MediaTek SoC DRM (vdosys1) support for mt8195 > https://lore.kernel.org/all/20211029075203.17093-1-nancy.lin@mediatek.com/ > >Guillaume Ranquet (15): > dt-bindings: mediatek,dp_phy: Add Display Port PHY binding > drm/edid: Convert cea_sad helper struct to kernelDoc > drm/edid: Add cea_sad helpers for freq/length > drm/mediatek: dpi: move dpi limits to SoC config > drm/mediatek: dpi: implement a CK/DE pol toggle in SoC config > drm/mediatek: dpi: implement a swap_input toggle in SoC config > drm/mediatek: dpi: move dimension mask to SoC config > drm/mediatek: dpi: move hvsize_mask to SoC config > drm/mediatek: dpi: move swap_shift to SoC config > drm/mediatek: dpi: move the yuv422_en_bit to SoC config > drm/mediatek: dpi: move the csc_enable bit to SoC config > drm/mediatek: dpi: Add dpintf support > drm/meditek: dpi: Add matrix_sel helper > drm/mediatek: Add mt8195 External DisplayPort support > drm/mediatek: DP audio support for mt8195 > >Jitao Shi (2): > drm/mediatek: add hpd debounce > drm/mediatek: change the aux retries times when receiving AUX_DEFER > >Markus Schneider-Pargmann (5): > dt-bindings: mediatek,dpi: Add DP_INTF compatible > dt-bindings: mediatek,dp: Add Display Port binding > video/hdmi: Add audio_infoframe packing for DP > phy: phy-mtk-dp: Add driver for DP phy > drm/mediatek: Add mt8195 Embedded DisplayPort driver > > .../display/mediatek/mediatek,dp.yaml | 97 + > .../display/mediatek/mediatek,dpi.yaml | 11 +- > .../bindings/phy/mediatek,dp-phy.yaml | 43 + > MAINTAINERS | 1 + > drivers/gpu/drm/drm_edid.c | 74 + > drivers/gpu/drm/mediatek/Kconfig | 8 + > drivers/gpu/drm/mediatek/Makefile | 2 + > drivers/gpu/drm/mediatek/mtk_dp.c | 3204 +++++++++++++++++ > drivers/gpu/drm/mediatek/mtk_dp_reg.h | 568 +++ > drivers/gpu/drm/mediatek/mtk_dpi.c | 222 +- > drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 38 + > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 8 + > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 + > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 + > drivers/phy/mediatek/Kconfig | 8 + > drivers/phy/mediatek/Makefile | 1 + > drivers/phy/mediatek/phy-mtk-dp.c | 202 ++ > drivers/video/hdmi.c | 82 +- > include/drm/dp/drm_dp_helper.h | 2 + > include/drm/drm_edid.h | 25 +- > include/linux/hdmi.h | 7 +- > include/linux/soc/mediatek/mtk-mmsys.h | 3 +- > 23 files changed, 4541 insertions(+), 73 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml > create mode 100644 Documentation/devicetree/bindings/phy/mediatek,dp-phy.yaml > create mode 100644 drivers/gpu/drm/mediatek/mtk_dp.c > create mode 100644 drivers/gpu/drm/mediatek/mtk_dp_reg.h > create mode 100644 drivers/phy/mediatek/phy-mtk-dp.c > >-- >2.34.1 > This is actually v9. Please ignore these as I will resend the patches properly tagged as v9. Sorry for the inconveniance, Guillaume.