Video PL-IP Linux Drivers SDT Reference
This wiki page contains the reference SDT device tree information for both PL HLS and connectivity IPs in different devices
PL HLS Video IPs reference SDT nodes
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
---|---|---|---|---|---|
TPG | v_tpg@a00e0000 { tpg_input_v_tc_1: v_tc@a00d0000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
VPSS Scalar | v_proc_ss@a0080000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
VPSS CSC | v_proc_ss@a0000000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Demosaic | v_demosaic@a0010000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Gamma Lut | v_gamma_lut@a0020000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Mixer | hdmi_output_v_mix_0: v_mix@a0070000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Frame Buffer Write | v_frmbuf_wr@a0070000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Frame Buffer Read | v_frmbuf_rd@a0040000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Multi-scalar | v_multi_scaler_0: v_multi_scaler@a0020000 { | NA | Same as ZynqMP node. Processing IPs are same across all platforms. | NA | NA |
Note: Irrespective of any platform, HLS processing IPs listed in above table will always have similar DT nodes and properties. They are independent of silicon platform and would be same for all example platforms like ZCU102, ZCU106, VCK190 and VEK280.
PL Connectivity Video IPs reference SDT nodes
HDMI 2.0 without HDCP
IP Name | SDT Linux node | system-user.dtsi changes for ZCU102 board | system-user.dtsi changes for VEK280 board |
---|---|---|---|
HDMI Video PHY | vid_phy_controller: vid_phy_controller@80050000 { | &zynq_us_ss_0_fmch_axi_iic { }; /* DP159 exposes a virtual CCF clock. Upon .set_rate(), it adapts its retiming/driving behaviour */ &v_hdmi_tx_ss { &vid_phy_controller{ |
|
HDMI RxSs v2.0 | v_hdmi_rx_ss: v_hdmi_rx_ss@80000000 { | ||
HDMI TxSs v2.0 | v_hdmi_tx_ss: v_hdmi_tx_ss@80020000 { |
HDMI 2.1 without HDCP
IP Name | SDT Linux node | system-user.dtsi changes for ZCU102 board | system-user.dtsi changes for VEK280 board |
---|---|---|---|
HDMI 2.1 PHY | v_hdmi_phy1@80030000 { }; | &amba_pl { }; | &amba_pl { ref40: ref40m { xfmc: xv_fmc { ti_tmds1204_tx: ti_tmds1204-tx@5e { ti_tmds1204_rx: ti_tmds1204-rx@5b { }; }; |
HDMI RxSs v2.1 | v_hdmi_rxss1@80040000 { | ||
HDMI TxSs v2.1 | v_hdmi_txss1@80060000 { }; |
HDMI v2.1 with HDCP
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
|
---|---|---|---|---|---|---|
HDMI Rx v2.1 with HDCP (Assume both HDCP 1x and 2x enabled) | v_hdmi_rxss1: v_hdmi_rxss1@80080000 { xlnx,fec-enable = <1>; xlnx,exdes-topology = <0>; xlnx,hdmi-version = <4>; xlnx,rable = <0>; hdcp14-connected = <&v_hdmi_rxss1_hdcp_1_4>; xlnx,ip-name = "v_hdmi_rxss1"; xlnx,frl-sm-vcke = <1>; reg = <0x0 0x80080000 0x0 0x80000>; xlnx,frl-clk-freq-khz = <0x6ddd0>; xlnx,vrr-support = <1>; phys = <&v_hdmi_phyrxphy_lane0 0 1 1 0>, <&v_hdmi_phyrxphy_lane1 0 1 1 0>, <&v_hdmi_phyrxphy_lane2 0 1 1 0>, <&v_hdmi_phyrxphy_lane3 0 1 1 0>; xlnx,include-hdcp-2-2; xlnx,include-hdcp; interrupt-names = "hdcp14_irq" , "hdcp14_timer_irq" , "hdcp22_irq" , "hdcp22_timer_irq" , "irq"; xlnx,exdes-axilite-freq = <100>; xlnx,dsc-en = <0>; compatible = "xlnx,v-hdmi-rxss1-1.2" , "xlnx,v-hdmi-rx-ss-3.1"; hdcp14-present = <1>; interrupt-parent = <&imux>; xlnx,num-of-gt-lane = <4>; xlnx,vid-clk-freq-khz = <0x61a80>; xlnx,exdes-nidru; xlnx,max-bits-per-component = /bits/ 8 <0x8>; xlnx,vid-interface = <0>; xlnx,exdes-tx-pll-selection = <6>; hdcp22-present = <1>; phy-names = "hdmi-phy0" , "hdmi-phy1" , "hdmi-phy2" , "hdmi-phy3"; xlnx,cd-invert; status = "okay"; xlnx,axi-lite-freq-hz = <0x5f5b9f5>; xlnx,input-pixels-per-clock = /bits/ 8 <0x8>; xlnx,include-yuv420-sup; xlnx,max-frl-rate = /bits/ 8 <0x6>; xlnx,name = "v_hdmi_rxss1"; xlnx,include-low-reso-vid; interrupts = < 0 104 4 0 105 4 0 108 4 0 109 4 0 90 4 >; xlnx,dynamic-hdr = <0>; xlnx,addr-width = <10>; xlnx,exdes-rx-pll-selection = <0>; clocks = <&misc_clk_5>, <&misc_clk_0>, <&zynqmp_clk 71>, <&audio_ss_0_clk_wiz 0>, <&misc_clk_3>, <&misc_clk_4>; xlnx,edk-iptype = "PERIPHERAL"; clock-names = "frl_clk" , "link_clk" , "s_axi_cpu_aclk" , "s_axis_audio_aclk" , "s_axis_video_aclk" , "video_clk"; hdcptimer-connected = <&v_hdmi_rxss1_axi_timer>; xlnx,highaddr = <0x800fffff>; xlnx,edid-ram-size = /bits/ 16 <0x100>; hdmirx1-present = <1>; hdmirx1-connected = <&v_hdmi_rxss1_v_hdmi_rx>; xlnx,add-core-dbg = <0>; hdcp22-connected = <&v_hdmi_rxss1_hdcp22_rx_ss>; xlnx,include-hdcp-1-4; hdcptimer-present = <1>; xlnx,hpd-invert; hdmirx_portsv_hdmi_rxss1: ports { #address-cells = <1>; #size-cells = <0>; hdmirx_portv_hdmi_rxss1: port@0 { reg = <0>; xlnx,video-width = <10>; xlnx,video-format = <0>; hdmirx_outv_hdmi_rxss1: endpoint { remote-endpoint = <&v_fb_ss_0_v_frmbuf_wr_0v_hdmi_rxss1>; }; }; }; }; | &amba_pl { }; &i2c1 { onsemi_tx: onsemi-tx@5b { expander@75 {
&hdcp_keymngmt_blk_1 { &hdcp_keymngmt_blk_0 { &v_hdmi_txss1{ |
|
| HDCP 1x /2.2 RX keys need to be loaded. |
|
HDMI Tx v2.1 with HDCP (Assume both HDCP 1x and 2x enabled) | v_hdmi_txss1: v_hdmi_txss1@80100000 { xlnx,exdes-topology = <0>; xlnx,hdmi-version = <4>; xlnx,rable = <0>; hdcp14-connected = <&v_hdmi_txss1_hdcp_1_4>; xlnx,ip-name = "v_hdmi_txss1"; xlnx,frl-sm-vcke = <0>; reg = <0x0 0x80100000 0x0 0x80000>; xlnx,frl-clk-freq-khz = <0x6ddd0>; xlnx,hysteresis-level = <511>; xlnx,vrr-support = <1>; vtc-present = <1>; phys = <&v_hdmi_phytxphy_lane0 0 1 1 1>, <&v_hdmi_phytxphy_lane1 0 1 1 1>, <&v_hdmi_phytxphy_lane2 0 1 1 1>, <&v_hdmi_phytxphy_lane3 0 1 1 1>; xlnx,include-hdcp-2-2; vtc-connected = <&v_hdmi_txss1_v_tc>; xlnx,include-hdcp; interrupt-names = "hdcp14_irq" , "hdcp14_timer_irq" , "hdcp22_irq" , "hdcp22_timer_irq" , "irq"; xlnx,exdes-axilite-freq = <100>; xlnx,dsc-en = <0>; compatible = "xlnx,v-hdmi-txss1-1.2"; xlnx,video-mask-enable = <1>; hdcp14-present = <1>; xlnx,native-exdes-en = <0>; xlnx,xlnx-hdmi-acr-ctrl = <&audio_ss_0_hdmi_acr_ctrl>; interrupt-parent = <&imux>; xlnx,num-of-gt-lane = <4>; xlnx,vid-clk-freq-khz = <0x61a80>; hdmitx1-present = <1>; xlnx,exdes-nidru; xlnx,max-bits-per-component = <8>; xlnx,vid-interface = <0>; xlnx,exdes-tx-pll-selection = <6>; hdcp22-present = <1>; phy-names = "hdmi-phy0" , "hdmi-phy1" , "hdmi-phy2" , "hdmi-phy3"; status = "okay"; xlnx,axi-lite-freq-hz = <0x5f5b9f5>; xlnx,input-pixels-per-clock = <8>; xlnx,include-yuv420-sup; xlnx,max-frl-rate = <6>; xlnx,name = "v_hdmi_txss1"; xlnx,include-low-reso-vid; interrupts = < 0 106 4 0 107 4 0 110 4 0 111 4 0 91 4 >; xlnx,exdes-rx-pll-selection = <0>; xlnx,dynamic-hdr = <0>; xlnx,addr-width = <10>; clocks = <&misc_clk_5>, <&misc_clk_0>, <&zynqmp_clk 71>, <&audio_ss_0_clk_wiz 0>, <&misc_clk_3>, <&misc_clk_4>; xlnx,edk-iptype = "PERIPHERAL"; clock-names = "frl_clk" , "link_clk" , "s_axi_cpu_aclk" , "s_axis_audio_aclk" , "s_axis_video_aclk" , "video_clk"; hdcptimer-connected = <&v_hdmi_txss1_axi_timer>; xlnx,highaddr = <0x8017ffff>; xlnx,hdcp-encrypt = <0x1>; xlnx,add-core-dbg = <0>; hdmitx1-connected = <&v_hdmi_txss1_v_hdmi_tx>; xlnx,hdcp-authenticate = <0x1>; hdcp22-connected = <&v_hdmi_txss1_hdcp22_tx_ss>; xlnx,include-hdcp-1-4; hdcptimer-present = <1>; xlnx,hpd-invert; hdmitx_portsv_hdmi_txss1: ports { #address-cells = <1>; #size-cells = <0>; encoder_hdmi_portv_hdmi_txss1: port@0 { reg = <0>; encoderv_hdmi_txss1: endpoint { remote-endpoint = <&v_fb_ss_0_v_frmbuf_rd_0v_hdmi_txss1>; }; }; }; }; |
|
| HDCP 2X keys need to be loaded. |
|
UHD12G SDI
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
---|---|---|---|---|---|
SDI Tx | v_smpte_uhdsdi_tx_ss: v_smpte_uhdsdi_tx_ss@80020000 { | &amba_pl { | Tx_Heir_v_smpte_uhdsdi_tx_ss_0: v_smpte_uhdsdi_tx_ss@a4040000 { | &amba_pl { |
|
SDI Rx | v_smpte_uhdsdi_rx_ss: v_smpte_uhdsdi_rx_ss@80000000 { | &v_smpte_uhdsdi_rx_ss {
| RX_Heir_v_smpte_uhdsdi_rx_ss_0: v_smpte_uhdsdi_rx_ss@a4060000 { | &RX_Heir_v_smpte_uhdsdi_rx_ss_0 { |
|
Display Port v1.4 without HDCP
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
|
|
|
---|---|---|---|---|---|---|---|---|
DP Video PHY | vid_phy_controller_0: vid_phy_controller@a0120000 { xlnx,tx-outclk-buffer = "none"; xlnx,check-valid-protocol = <0>; xlnx,transceiver-width = <2>; xlnx,tx-refclk-fabric-buffer = "none"; xlnx,txrefclk-rdy-invert = <0>; xlnx,tx-dp-protocol = <0>; xlnx,user-loss = <20>; xlnx,for-upgrade-speedgrade = <0xfffffffe>; xlnx,silicon-revision = <0>; xlnx,rable = <0>; xlnx,vid-phy-rx-axi4s-ch-tdata-width = <32>; xlnx,tx-tmds-clk-buffer = "bufg"; xlnx,ip-name = "vid_phy_controller"; xlnx,rx-clk-primitive = <0>; reg = <0x0 0xa0120000 0x0 0x10000>; xlnx,drpclk-freq = <0x2624a66>; xlnx,vid-phy-status-sb-rx-tdata-width = <16>; xlnx,hdio-rx = <0>; xlnx,supportlevel = <1>; xlnx,check-pll-selection = <0>; xlnx,sub-core-name = "dpss_zcu102_pt_vid_phy_controller_0_0_gtwrapper"; xlnx,vid-phy-axi4lite-addr-width = <10>; interrupt-names = "irq"; xlnx,rx-outclk-buffer = "none"; xlnx,vid-phy-control-sb-tx-tdata-width = <1>; compatible = "xlnx,vid-phy-controller-2.2" , "xlnx,vid-phy-controller-2.1"; xlnx,rx-max-gt-line-rate = <0x7b98a0>; xlnx,tx-sb-ports; xlnx,for-upgrade-architecture = "zynquplus"; xlnx,hdmi-fast-switch = <1>; xlnx,rx-video-clk-buffer = "bufg"; xlnx,channel-enable = "X1Y8 , X1Y9 , X1Y10 , X1Y11"; interrupt-parent = <&imux>; xlnx,transceiver = "GTHE4"; xlnx,nidru-refclk-sel = <0>; xlnx,rx-gt-line-rate = <0x18b820>; xlnx,vid-phy-tx-axi4s-ch-int-tdata-width = <40>; xlnx,dru-refclk-fabric-buffer = "none"; xlnx,err-irq-en = <0>; xlnx,vid-phy-rx-axi4s-ch-tuser-width = <12>; xlnx,tx-protocol = <0>; xlnx,vid-phy-status-sb-tx-tdata-width = <8>; xlnx,hdio-tx = <0>; status = "okay"; xlnx,input-pixels-per-clock = <4>; xlnx,axi4lite-enable; xlnx,axi-aclk-freq-mhz = <0x5f5b9f5>; xlnx,name = "vid_phy_controller_0"; xlnx,dru-gain-g1-p = <16>; interrupts = < 0 90 4 >; xlnx,rx-tdata-width = <32>; xlnx,tx-pll-selection = <2>; xlnx,vid-phy-tx-axi4s-ch-tdata-width = <32>; xlnx,for-upgrade-maxoptvol = <0xd5de0>; xlnx,edk-iptype = "PERIPHERAL"; xlnx,speedgrade = <0xfffffffe>; xlnx,for-upgrade-package = "ffvb1156"; clock-names = "drpclk" , "gtnorthrefclk00_in" , "gtnorthrefclk01_in" , "gtnorthrefclk0_in" , "gtnorthrefclk10_in" , "gtnorthrefclk11_in" , "gtnorthrefclk1_in" , "gtsouthrefclk00_in" , "gtsouthrefclk01_in" , "gtsouthrefclk0_in" , "gtsouthrefclk10_in" , "gtsouthrefclk11_in" , "gtsouthrefclk1_in" , "mgtrefclk0_in" , "mgtrefclk1_in" , "vid_phy_axi4lite_aclk" , "vid_phy_rx_axi4s_aclk" , "vid_phy_sb_aclk" , "vid_phy_tx_axi4s_aclk"; xlnx,int-hdmi-ver-cmptble = <3>; xlnx,int-width = <0>; xlnx,rx-sb-ports; xlnx,tx-gt-ref-clock-freq = <162>; xlnx,tx-buffer-bypass = <0>; xlnx,nidru = <0>; xlnx,rx-dp-protocol = <0>; xlnx,rx-pll-selection = <0>; xlnx,tx-tdata-width = <32>; xlnx,transceiver-type = <5>; xlnx,tx-max-gt-line-rate = <0x7b98a0>; xlnx,rx-tmds-clk-buffer = "bufg"; xlnx,vid-phy-rx-axi4s-ch-int-tdata-width = <40>; xlnx,vid-phy-axi4lite-data-width = <32>; xlnx,tx-video-clk-buffer = "bufg"; xlnx,for-upgrade-refvol = <0xcf850>; xlnx,rx-refclk-sel = <1>; xlnx,use-gt-ch4-hdmi = <0>; xlnx,for-upgrade-part = "xczu9eg-ffvb1156-2-e"; xlnx,tx-refclk-sel = <0>; xlnx,tx-clk-primitive = <0>; xlnx,for-upgrade-device = "xczu9eg"; xlnx,rx-protocol = <0>; xlnx,tx-gt-line-rate = <0x18b820>; xlnx,channel-site = "X1Y8"; xlnx,adv-clk-mode; xlnx,dru-gain-g1 = <9>; xlnx,vid-phy-tx-axi4s-ch-tuser-width = <12>; xlnx,dru-gain-g2 = <4>; xlnx,rx-no-of-channels = <4>; xlnx,rx-gt-ref-clock-freq = <162>; xlnx,vid-phy-control-sb-rx-tdata-width = <8>; xlnx,device = "xczu9eg"; xlnx,tx-no-of-channels = <4>; xlnx,component-name = "dpss_zcu102_pt_vid_phy_controller_0_0"; vid_phy_controller_0rxphy_lane0: vid_phy_rx_axi4s_ch0dp_rx_hier_0_v_dp_rxss1_0 { #phy-cells = <4>; }; vid_phy_controller_0rxphy_lane1: vid_phy_rx_axi4s_ch1dp_rx_hier_0_v_dp_rxss1_0 { #phy-cells = <4>; }; vid_phy_controller_0rxphy_lane2: vid_phy_rx_axi4s_ch2dp_rx_hier_0_v_dp_rxss1_0 { #phy-cells = <4>; }; vid_phy_controller_0rxphy_lane3: vid_phy_rx_axi4s_ch3dp_rx_hier_0_v_dp_rxss1_0 { #phy-cells = <4>; }; vid_phy_controller_0txphy_lane0: vid_phy_tx_axi4s_ch0dp_tx_hier_0_v_dp_txss1_0 { #phy-cells = <4>; }; vid_phy_controller_0txphy_lane1: vid_phy_tx_axi4s_ch1dp_tx_hier_0_v_dp_txss1_0 { #phy-cells = <4>; }; vid_phy_controller_0txphy_lane2: vid_phy_tx_axi4s_ch2dp_tx_hier_0_v_dp_txss1_0 { #phy-cells = <4>; }; vid_phy_controller_0txphy_lane3: vid_phy_tx_axi4s_ch3dp_tx_hier_0_v_dp_txss1_0 { #phy-cells = <4>; }; }; | &vid_phy_controller_0 { |
|
|
|
|
|
|
DP v1.4 Rx without HDCP | dp_rx_hier_0_v_dp_rxss1_0: v_dp_rxss1@a0000000 { xlnx,include-clk-wiz = <0>; xlnx,num-streams = <1>; xlnx,pixel-mode = <4>; xlnx,inc-hdcp-keymngmt-blk = <0>; xlnx,include-axi-iic = <1>; xlnx,aux-io-loc = <1>; xlnx,rable = <0>; xlnx,ip-name = "v_dp_rxss1"; reg = <0x0 0xa0000000 0x0 0x4000>; xlnx,include-clk-recov-support = <0>; xlnx,enable-420 = <0>; iic-present = <1>; phys = <&vid_phy_controller_0rxphy_lane0 0 1 1 0>, <&vid_phy_controller_0rxphy_lane1 0 1 1 0>, <&vid_phy_controller_0rxphy_lane2 0 1 1 0>, <&vid_phy_controller_0rxphy_lane3 0 1 1 0>; iic-connected = <&dp_rx_hier_0_v_dp_rxss1_0_iic>; interrupt-names = "dprxss_dp_irq"; xlnx,linkrate = <8100>; compatible = "xlnx,v-dp-rxss1-3.1" , "xlnx,v-dp-rxss-3.1" , "xlnx,v-dp-rxss-3.0" ; xlnx,example-test-mode = "Disable"; hdcp14-present = <0>; xlnx,max-resolution-for-420 = <0>; interrupt-parent = <&imux>; xlnx,support-artix-7series = <0>; hdcp22-present = <0>; xlnx,sim-mode = "Disable"; phy-names = "dp-phy0" , "dp-phy1" , "dp-phy2" , "dp-phy3"; xlnx,vidphy = <&vid_phy_controller_0>; xlnx,include-fec-ports = <0>; xlnx,bpc = <10>; xlnx,versal = <0>; xlnx,edp-enable = <0>; status = "okay"; xlnx,clk-wiz-type = <2>; xlnx,phy-type-external = <1>; xlnx,axi-aclk-freq-mhz = <0x5f5b9f5>; dp14-present = <1>; xlnx,name = "dp_rx_hier_0_v_dp_rxss1_0"; interrupts = < 0 89 4 >; dp14-connected = <&dp_rx_hier_0_v_dp_rxss1_0_dp>; xlnx,audio-channels = <2>; xlnx,mode = <0>; xlnx,video-interface = <0>; clocks = <&zynqmp_clk 71>, <&zynqmp_clk 72>, <&misc_clk_1>, <&zynqmp_clk 72>, <&zynqmp_clk 71>; xlnx,egw-is-parent-ip = <0>; xlnx,enable-internal-remap = <1>; clkWiz-present = <0>; xlnx,edk-iptype = "PERIPHERAL"; xlnx,start-dsc-byte-from-lsb = <1>; clock-names = "m_aud_axis_aclk" , "m_axis_aclk_stream1" , "rx_lnk_clk" , "rx_vid_clk" , "s_axi_aclk"; xlnx,bits-per-color = <10>; xlnx,aux-io-type = <0>; xlnx,versal-board = <0>; xlnx,examplemodes = <1>; xlnx,phy-data-width = <2>; xlnx,enable-dsc = <0>; xlnx,enable-dsc-dummy-bytes-in-rx = <0>; xlnx,enable-8b10b-dec = <0>; xlnx,audio-enable = <1>; xlnx,lane-count = <4>; xlnx,int-debug = <0>; xlnx,link-rate = <30>; xlnx,include-vid-edid = <0>; hdcptimer-present = <0>; reg-names = "dp_base" , "edid_base"; xlnx,dp-retimer = <&xfmcdp_rx_hier_0_v_dp_rxss1_0>; dprx_portsdp_rx_hier_0_v_dp_rxss1_0: ports { #address-cells = <1>; #size-cells = <0>; dprx_portdp_rx_hier_0_v_dp_rxss1_0: port@0 { reg = <0>; }; dprx_outdp_rx_hier_0_v_dp_rxss1_0: endpoint { remote-endpoint = <&dp_rx_hier_0_v_frmbuf_wr_0dp_rx_hier_0_v_dp_rxss1_0>; }; }; }; | No changes |
|
|
|
|
|
|
DP v1.4 Tx without HDCP | dp_tx_hier_0_v_dp_txss1_0: v_dp_txss1@a0010000 { xlnx,include-clk-wiz = <0>; xlnx,number-of-audio-channels = <2>; xlnx,num-streams = <1>; xlnx,pixel-mode = <4>; xlnx,aux-io-loc = <1>; xlnx,rable = <0>; xlnx,ip-name = "v_dp_txss1"; reg = <0x0 0xa0010000 0x0 0x10000>; xlnx,enable-420 = <0>; phys = <&vid_phy_controller_0txphy_lane0 0 1 1 1>, <&vid_phy_controller_0txphy_lane1 0 1 1 1>, <&vid_phy_controller_0txphy_lane2 0 1 1 1>, <&vid_phy_controller_0txphy_lane3 0 1 1 1>; xlnx,max-lanes = <4>; interrupt-names = "dptxss_dp_irq"; xlnx,max-link-rate = <810000>; xlnx,linkrate = <8100>; compatible = "xlnx,v-dp-txss1-3.1" , "xlnx,v-dp-txss-3.1"; xlnx,example-test-mode = "Disable"; hdcp14-present = <0>; interrupt-parent = <&imux>; xlnx,num-audio-channels = <2>; xlnx,support-artix-7series = <0>; xlnx,ppc-for-420 = <4>; hdcp22-present = <0>; xlnx,sim-mode = "Disable"; phy-names = "dp-phy0" , "dp-phy1" , "dp-phy2" , "dp-phy3"; xlnx,enable-8b10b-enc = <0>; xlnx,include-fec-ports = <0>; xlnx,bpc = <10>; xlnx,versal = <0>; xlnx,edp-enable = <0>; status = "okay"; xlnx,clk-wiz-type = <2>; xlnx,phy-type-external = <1>; xlnx,axi-aclk-freq-mhz = <0x5f5b9f5>; xlnx,vtc-offset = <0x8000>; dp14-present = <1>; xlnx,name = "dp_tx_hier_0_v_dp_txss1_0"; interrupts = < 0 92 4 >; dual-splitter-present = <0>; dp14-connected = <&dp_tx_hier_0_v_dp_txss1_0_dp>; xlnx,mode = <0>; xlnx,video-interface = <0>; vtc1-present = <1>; xlnx,fec-encoder-delay = <16>; xlnx,egw-is-parent-ip = <0>; clocks = <&zynqmp_clk 71>, <&zynqmp_clk 72>, <&zynqmp_clk 71>, <&misc_clk_1>, <&dp_tx_hier_0_clk_wiz_1 0>; xlnx,enable-internal-remap = <1>; xlnx,edk-iptype = "PERIPHERAL"; xlnx,start-dsc-byte-from-lsb = <1>; clock-names = "s_axi_aclk" , "tx_vid_clk"; xlnx,bits-per-color = <10>; xlnx,aux-io-type = <0>; xlnx,versal-board = <0>; xlnx,include-dual-splitter = <0>; xlnx,examplemodes = <0>; xlnx,phy-data-width = <2>; xlnx,enable-dsc = <0>; vtc1-connected = <&dp_tx_hier_0_v_dp_txss1_0_vtc1>; xlnx,audio-enable = <1>; xlnx,lane-count = <4>; xlnx,link-rate = <30>; xlnx,int-debug = <0>; hdcptimer-present = <0>; reg-names = "dp_base"; xlnx,dp-retimer = <&xfmcdp_tx_hier_0_v_dp_txss1_0>; dptx_portsdp_tx_hier_0_v_dp_txss1_0: ports { #address-cells = <1>; #size-cells = <0>; dptx_portdp_tx_hier_0_v_dp_txss1_0: port@0 { reg = <0>; dptx_outdp_tx_hier_0_v_dp_txss1_0: endpoint { remote-endpoint = <&dp_tx_hier_0_v_frmbuf_rd_0dp_tx_hier_0_v_dp_txss1_0>; }; }; }; }; | &dp_rx_hier_0_v_frmbuf_wr_0 { &dp_tx_hier_0_v_dp_txss1_0 { |
|
|
|
|
|
|
Display Port v1.4 with HDCP
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
---|---|---|---|---|---|
DP v1.4 Tx with HDCP (Assume both HDCP 1x and 2x enabled) |
|
|
|
|
|
MIPI CSI_Rx
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
---|---|---|---|---|---|
MIPI CSI Rx | mipi_csi2_rx_subsystem@80000000 { | &axi_iic_1_sensor { &mipi_csi_incsirx_0 { | TBD | TBD | NA |
MIPI_DSI_Tx
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
---|---|---|---|---|---|
MIPI DSI Tx | mipi_dsi_tx_subsystem@80020000 { | NA | TBD | TBD |
|
Audio IPs
Video IP | ZynqMP SDT Linux node | ZynqMP system_user.dtsi changes for Linux | Versal SDT Linux node | Versal system_user.dtsi changes for Linux | Other changes |
---|---|---|---|---|---|
Audio Formatter (MM2S/S2MM) | audio_formatter_0: audio_formatter@a4030000 { | Note: Cross check the xlnx,tx and xlnx,rx properly pointed to respective Audio interface or not and aud_mclk clock value. |
|
|
|
SDI Audio Embed | Tx_Heir_v_uhdsdi_audio_Embed: v_uhdsdi_audio@a4080000 { | Note: In the audio pipeline creation make sure that xlnx,snd-pcm linking to correct audio formatter based on design.
|
|
|
|
SDI Audio Extract | RX_Heir_v_uhdsdi_audio_Extract: v_uhdsdi_audio@a4070000 { | Note: In the audio pipeline creation make sure that xlnx,snd-pcm linking to correct audio formatter based on design.
|
|
|
|
Video IP | VEK280 SDT Linux node | VEK280 system_user.dtsi changes for Linux | Telluride SDT node | Telluride system_user.dtsi changes for Linux node | Other changes |
|
|
---|---|---|---|---|---|---|---|
HDMI GT PHY | hdmi_gt_controller@a4060000 { rx_axi4s_ch0v_hdmi_rxss1 {
#phy-cells = <0x04>;
phandle = <0xaa>;
};
rx_axi4s_ch1v_hdmi_rxss1 {
#phy-cells = <0x04>;
phandle = <0xab>;
};
rx_axi4s_ch2v_hdmi_rxss1 {
#phy-cells = <0x04>;
phandle = <0xac>;
};
rx_axi4s_ch3v_hdmi_rxss1 {
#phy-cells = <0x04>;
phandle = <0xad>;
};
tx_axi4s_ch0v_hdmi_txss1 {
#phy-cells = <0x04>;
phandle = <0xaf>;
};
tx_axi4s_ch1v_hdmi_txss1 {
#phy-cells = <0x04>;
phandle = <0xb0>;
};
tx_axi4s_ch2v_hdmi_txss1 {
#phy-cells = <0x04>;
phandle = <0xb1>;
};
tx_axi4s_ch3v_hdmi_txss1 {
#phy-cells = <0x04>;
phandle = <0x165>;
}; }; | &hdmiphy_ss_0_hdmi_gt_controller { | TBD |
|
|
|
|
HDMI Rx v2.1 without HDCP | v_hdmi_rxss1@a4020000 { ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
phandle = <0x166>;
port@0 {
reg = <0x00>;
xlnx,video-width = <0x0a>;
xlnx,video-format = <0x00>;
phandle = <0x167>;
endpoint {
remote-endpoint = <0xae>;
phandle = <0xb3>;
};
};
}; }; |
| TBD |
| &amba_pl { ref40: ref40m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
}; xfmc: xv_fmc { ti_tmds1204_tx: ti_tmds1204-tx@5e {
compatible = "ti_tmds1204,ti_tmds1204-tx";
#clock-cells = <1>;
reg = <0x5e>;
clocks = <&ref40>;
clock-frequency = <148500000>;
clock-names = "input-xtal";
};
ti_tmds1204_rx: ti_tmds1204-rx@5b {
compatible = "ti_tmds1204,ti_tmds1204-rx";
#clock-cells = <1>;
reg = <0x5b>;
clocks = <&ref40>;
clock-frequency = <148500000>;
clock-names = "input-xtal";
}; }; |
|
|
HDMI Rx v2.1 with HDCP (Assume both HDCP 1x and 2x enabled) |
|
| TBD |
| HDMI RX HDCP Keys
|
|
|
HDMI Tx v2.1 without HDCP | v_hdmi_txss1@a4000000 { ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
phandle = <0x168>;
port@0 {
reg = <0x00>;
phandle = <0x169>;
endpoint {
remote-endpoint = <0xb2>;
phandle = <0xb4>;
};
};
}; }; | &v_hdmi_txss1{ }; | TBD |
| &amba_pl { ref40: ref40m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
}; xfmc: xv_fmc { ti_tmds1204_tx: ti_tmds1204-tx@5e {
compatible = "ti_tmds1204,ti_tmds1204-tx";
#clock-cells = <1>;
reg = <0x5e>;
clocks = <&ref40>;
clock-frequency = <148500000>;
clock-names = "input-xtal";
};
ti_tmds1204_rx: ti_tmds1204-rx@5b {
compatible = "ti_tmds1204,ti_tmds1204-rx";
#clock-cells = <1>;
reg = <0x5b>;
clocks = <&ref40>;
clock-frequency = <148500000>;
clock-names = "input-xtal";
}; }; |
|
|
HDMI Tx v2.1 with HDCP (Assume both HDCP 1x and 2x enabled) |
|
| TBD |
|
|
|
|
SDI Tx | NA |
|
| TBD | &sdi_rx_input_v_smpte_uhdsdi_rx_ss { &i2c1 { <Note: These custom changes vary based on input clocks. Here above example is for 2024.1 TRD design> |
|
|
SDI Rx | NA |
| TBD |
| &sdi_rx_input_v_smpte_uhdsdi_rx_ss { &i2c1 {
<Note: These custom changes vary based on input clocks. Here above example is for 2024.1 TRD design> |
|
|
DP Video PHY |
|
| TBD |
|
|
|
|
DP v1.4 Rx without HDCP |
|
| TBD |
|
|
|
|
DP v1.4 Rx with HDCP (Assume both HDCP 1x and 2x enabled) |
|
| TBD |
|
|
|
|
DP v1.4 Tx without HDCP |
|
| TBD |
|
|
|
|
DP v1.4 Tx with HDCP (Assume both HDCP 1x and 2x enabled) |
|
| TBD |
|
|
|
|
MIPI CSI Rx |
|
| TBD |
|
|
|
|
MIPI DSI Tx |
|
| TBD |
|
|
|
|
Audio Formatter (MM2S) | NA, refer above zynqMP audio formatter |
| TBD | NA Note: In the audio pipeline creation make sure that xlnx,tx and xlnx,rx pointing to correct sound card or not based on design.
|
|
|
|
SPDIF Rx | NA, refer above zynqMP audio formatter |
| TBD | Note: In the audio pipeline creation make sure that xlnx,snd-pcm pointing to correct sound card or not based on design.
|
|
|
|
Related content
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy