Re: [linux-sunxi] [PATCH v3 00/24] Add support for R40 HDMI pipeline
From: Jernej Åkrabec
Date: Mon Jun 25 2018 - 08:08:54 EST
Dne ponedeljek, 25. junij 2018 ob 14:02:40 CEST je Jernej Skrabec napisal(a):
> This series adds support for R40 HDMI pipeline. It is a bit special
> than other already supported pipelines because it has additional unit
> called TCON TOP responsible for relationship configuration between
> mixers, TCONs and HDMI. Additionally, it has additional gates for DSI
> and TV TCONs, TV encoder clock settings and pin muxing between LCD
> and TV encoders.
>
> However, it seems that TCON TOP will become a norm, since newer
> Allwinner SoCs like H6 also have this unit.
>
> I tested different possible configurations:
> - mixer0 <> TCON-TV0 <> HDMI
> - mixer0 <> TCON-TV1 <> HDMI
> - mixer1 <> TCON-TV0 <> HDMI
> - mixer1 <> TCON-TV1 <> HDMI
>
> Please review.
>
> Best regards,
> Jernej
>
> Changes from v2:
> - Collected tags
> - Exported drm_crtc_port_mask() symbol
> - Removed TCON TOP reset name
> - TCON TOP gates have now right parents
> - updated TCON TOP bindings
> - dropped new TCON quirk due TCON TOP rework
Forgot to add:
- in "drm/sun4i: Don't change clock bits in DW HDMI PHY driver" patch, only
parent selection bit is reset to 0. Previously whole register was set to 0.
Previous version broke H3 HDMI.
>
> Changes from v1:
> - Split DT bindings patch and updated description
> - Split HDMI PHY patch
> - Move header file from TCON TOP patch to dt bindings patch
> - Added Rob reviewed-by tag
> - Used clk_hw_register_gate() instead of custom gate registration code
> - Reworked TCON TOP to be part of of-graph. Because of that, a lot of
> new patches were added.
> - Droped mixer index quirk patch
> - Reworked TCON support for TCON TOP
> - Updated commit messages
>
> Jernej Skrabec (24):
> clk: sunxi-ng: r40: Add minimal rate for video PLLs
> clk: sunxi-ng: r40: Allow setting parent rate to display related
> clocks
> clk: sunxi-ng: r40: Export video PLLs
> dt-bindings: display: sunxi-drm: Add TCON TOP description
> drm/sun4i: Add TCON TOP driver
> drm/sun4i: Fix releasing node when enumerating enpoints
> drm/sun4i: Split out code for enumerating endpoints in output port
> drm/sun4i: Add support for traversing graph with TCON TOP
> drm/sun4i: Don't skip TCONs if they don't have channel 0
> drm/sun4i: tcon: Generalize engine search algorithm
> drm/sun4i: Don't check for LVDS and RGB when TCON has only ch1
> drm/sun4i: Don't check for panel or bridge on TV TCONs
> dt-bindings: display: sun4i-drm: Add R40 mixer compatibles
> drm/sun4i: Add support for R40 mixers
> dt-bindings: display: sun4i-drm: Add description of A64 HDMI PHY
> drm/sun4i: Enable DW HDMI PHY clock
> drm/sun4i: Don't change clock bits in DW HDMI PHY driver
> drm/sun4i: DW HDMI PHY: Add support for second PLL
> drm/sun4i: Add support for second clock parent to DW HDMI PHY clk
> driver
> drm/sun4i: Add support for A64 HDMI PHY
> drm: of: Export drm_crtc_port_mask()
> drm/sun4i: DW HDMI: Expand algorithm for possible crtcs
> ARM: dts: sun8i: r40: Add HDMI pipeline
> ARM: dts: sun8i: r40: Enable HDMI output on BananaPi M2 Ultra
>
> .../bindings/display/sunxi/sun4i-drm.txt | 62 +++-
> .../boot/dts/sun8i-r40-bananapi-m2-ultra.dts | 45 +++
> arch/arm/boot/dts/sun8i-r40.dtsi | 269 ++++++++++++++++
> drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 58 ++--
> drivers/clk/sunxi-ng/ccu-sun8i-r40.h | 8 +-
> drivers/gpu/drm/drm_of.c | 5 +-
> drivers/gpu/drm/sun4i/Makefile | 3 +-
> drivers/gpu/drm/sun4i/sun4i_drv.c | 121 +++++--
> drivers/gpu/drm/sun4i/sun4i_tcon.c | 66 ++--
> drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 46 ++-
> drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 8 +-
> drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 54 +++-
> drivers/gpu/drm/sun4i/sun8i_hdmi_phy_clk.c | 90 ++++--
> drivers/gpu/drm/sun4i/sun8i_mixer.c | 24 ++
> drivers/gpu/drm/sun4i/sun8i_tcon_top.c | 300 ++++++++++++++++++
> drivers/gpu/drm/sun4i/sun8i_tcon_top.h | 40 +++
> include/drm/drm_of.h | 8 +
> include/dt-bindings/clock/sun8i-r40-ccu.h | 4 +
> include/dt-bindings/clock/sun8i-tcon-top.h | 11 +
> 19 files changed, 1100 insertions(+), 122 deletions(-)
> create mode 100644 drivers/gpu/drm/sun4i/sun8i_tcon_top.c
> create mode 100644 drivers/gpu/drm/sun4i/sun8i_tcon_top.h
> create mode 100644 include/dt-bindings/clock/sun8i-tcon-top.h