18c2ecf20Sopenharmony_ci* Xilinx SDFEC(16nm) IP * 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe Soft Decision Forward Error Correction (SDFEC) Engine is a Hard IP block 48c2ecf20Sopenharmony_ciwhich provides high-throughput LDPC and Turbo Code implementations. 58c2ecf20Sopenharmony_ciThe LDPC decode & encode functionality is capable of covering a range of 68c2ecf20Sopenharmony_cicustomer specified Quasi-cyclic (QC) codes. The Turbo decode functionality 78c2ecf20Sopenharmony_ciprincipally covers codes used by LTE. The FEC Engine offers significant 88c2ecf20Sopenharmony_cipower and area savings versus implementations done in the FPGA fabric. 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciRequired properties: 128c2ecf20Sopenharmony_ci- compatible: Must be "xlnx,sd-fec-1.1" 138c2ecf20Sopenharmony_ci- clock-names : List of input clock names from the following: 148c2ecf20Sopenharmony_ci - "core_clk", Main processing clock for processing core (required) 158c2ecf20Sopenharmony_ci - "s_axi_aclk", AXI4-Lite memory-mapped slave interface clock (required) 168c2ecf20Sopenharmony_ci - "s_axis_din_aclk", DIN AXI4-Stream Slave interface clock (optional) 178c2ecf20Sopenharmony_ci - "s_axis_din_words-aclk", DIN_WORDS AXI4-Stream Slave interface clock (optional) 188c2ecf20Sopenharmony_ci - "s_axis_ctrl_aclk", Control input AXI4-Stream Slave interface clock (optional) 198c2ecf20Sopenharmony_ci - "m_axis_dout_aclk", DOUT AXI4-Stream Master interface clock (optional) 208c2ecf20Sopenharmony_ci - "m_axis_dout_words_aclk", DOUT_WORDS AXI4-Stream Master interface clock (optional) 218c2ecf20Sopenharmony_ci - "m_axis_status_aclk", Status output AXI4-Stream Master interface clock (optional) 228c2ecf20Sopenharmony_ci- clocks : Clock phandles (see clock_bindings.txt for details). 238c2ecf20Sopenharmony_ci- reg: Should contain Xilinx SDFEC 16nm Hardened IP block registers 248c2ecf20Sopenharmony_ci location and length. 258c2ecf20Sopenharmony_ci- xlnx,sdfec-code : Should contain "ldpc" or "turbo" to describe the codes 268c2ecf20Sopenharmony_ci being used. 278c2ecf20Sopenharmony_ci- xlnx,sdfec-din-words : A value 0 indicates that the DIN_WORDS interface is 288c2ecf20Sopenharmony_ci driven with a fixed value and is not present on the device, a value of 1 298c2ecf20Sopenharmony_ci configures the DIN_WORDS to be block based, while a value of 2 configures the 308c2ecf20Sopenharmony_ci DIN_WORDS input to be supplied for each AXI transaction. 318c2ecf20Sopenharmony_ci- xlnx,sdfec-din-width : Configures the DIN AXI stream where a value of 1 328c2ecf20Sopenharmony_ci configures a width of "1x128b", 2 a width of "2x128b" and 4 configures a width 338c2ecf20Sopenharmony_ci of "4x128b". 348c2ecf20Sopenharmony_ci- xlnx,sdfec-dout-words : A value 0 indicates that the DOUT_WORDS interface is 358c2ecf20Sopenharmony_ci driven with a fixed value and is not present on the device, a value of 1 368c2ecf20Sopenharmony_ci configures the DOUT_WORDS to be block based, while a value of 2 configures the 378c2ecf20Sopenharmony_ci DOUT_WORDS input to be supplied for each AXI transaction. 388c2ecf20Sopenharmony_ci- xlnx,sdfec-dout-width : Configures the DOUT AXI stream where a value of 1 398c2ecf20Sopenharmony_ci configures a width of "1x128b", 2 a width of "2x128b" and 4 configures a width 408c2ecf20Sopenharmony_ci of "4x128b". 418c2ecf20Sopenharmony_ciOptional properties: 428c2ecf20Sopenharmony_ci- interrupts: should contain SDFEC interrupt number 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciExample 458c2ecf20Sopenharmony_ci--------------------------------------- 468c2ecf20Sopenharmony_ci sd_fec_0: sd-fec@a0040000 { 478c2ecf20Sopenharmony_ci compatible = "xlnx,sd-fec-1.1"; 488c2ecf20Sopenharmony_ci clock-names = "core_clk","s_axi_aclk","s_axis_ctrl_aclk","s_axis_din_aclk","m_axis_status_aclk","m_axis_dout_aclk"; 498c2ecf20Sopenharmony_ci clocks = <&misc_clk_2>,<&misc_clk_0>,<&misc_clk_1>,<&misc_clk_1>,<&misc_clk_1>, <&misc_clk_1>; 508c2ecf20Sopenharmony_ci reg = <0x0 0xa0040000 0x0 0x40000>; 518c2ecf20Sopenharmony_ci interrupt-parent = <&axi_intc>; 528c2ecf20Sopenharmony_ci interrupts = <1 0>; 538c2ecf20Sopenharmony_ci xlnx,sdfec-code = "ldpc"; 548c2ecf20Sopenharmony_ci xlnx,sdfec-din-words = <0>; 558c2ecf20Sopenharmony_ci xlnx,sdfec-din-width = <2>; 568c2ecf20Sopenharmony_ci xlnx,sdfec-dout-words = <0>; 578c2ecf20Sopenharmony_ci xlnx,sdfec-dout-width = <1>; 588c2ecf20Sopenharmony_ci }; 59