162306a36Sopenharmony_ci* Xilinx SDFEC(16nm) IP * 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciThe Soft Decision Forward Error Correction (SDFEC) Engine is a Hard IP block 462306a36Sopenharmony_ciwhich provides high-throughput LDPC and Turbo Code implementations. 562306a36Sopenharmony_ciThe LDPC decode & encode functionality is capable of covering a range of 662306a36Sopenharmony_cicustomer specified Quasi-cyclic (QC) codes. The Turbo decode functionality 762306a36Sopenharmony_ciprincipally covers codes used by LTE. The FEC Engine offers significant 862306a36Sopenharmony_cipower and area savings versus implementations done in the FPGA fabric. 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciRequired properties: 1262306a36Sopenharmony_ci- compatible: Must be "xlnx,sd-fec-1.1" 1362306a36Sopenharmony_ci- clock-names : List of input clock names from the following: 1462306a36Sopenharmony_ci - "core_clk", Main processing clock for processing core (required) 1562306a36Sopenharmony_ci - "s_axi_aclk", AXI4-Lite memory-mapped slave interface clock (required) 1662306a36Sopenharmony_ci - "s_axis_din_aclk", DIN AXI4-Stream Slave interface clock (optional) 1762306a36Sopenharmony_ci - "s_axis_din_words-aclk", DIN_WORDS AXI4-Stream Slave interface clock (optional) 1862306a36Sopenharmony_ci - "s_axis_ctrl_aclk", Control input AXI4-Stream Slave interface clock (optional) 1962306a36Sopenharmony_ci - "m_axis_dout_aclk", DOUT AXI4-Stream Master interface clock (optional) 2062306a36Sopenharmony_ci - "m_axis_dout_words_aclk", DOUT_WORDS AXI4-Stream Master interface clock (optional) 2162306a36Sopenharmony_ci - "m_axis_status_aclk", Status output AXI4-Stream Master interface clock (optional) 2262306a36Sopenharmony_ci- clocks : Clock phandles (see clock_bindings.txt for details). 2362306a36Sopenharmony_ci- reg: Should contain Xilinx SDFEC 16nm Hardened IP block registers 2462306a36Sopenharmony_ci location and length. 2562306a36Sopenharmony_ci- xlnx,sdfec-code : Should contain "ldpc" or "turbo" to describe the codes 2662306a36Sopenharmony_ci being used. 2762306a36Sopenharmony_ci- xlnx,sdfec-din-words : A value 0 indicates that the DIN_WORDS interface is 2862306a36Sopenharmony_ci driven with a fixed value and is not present on the device, a value of 1 2962306a36Sopenharmony_ci configures the DIN_WORDS to be block based, while a value of 2 configures the 3062306a36Sopenharmony_ci DIN_WORDS input to be supplied for each AXI transaction. 3162306a36Sopenharmony_ci- xlnx,sdfec-din-width : Configures the DIN AXI stream where a value of 1 3262306a36Sopenharmony_ci configures a width of "1x128b", 2 a width of "2x128b" and 4 configures a width 3362306a36Sopenharmony_ci of "4x128b". 3462306a36Sopenharmony_ci- xlnx,sdfec-dout-words : A value 0 indicates that the DOUT_WORDS interface is 3562306a36Sopenharmony_ci driven with a fixed value and is not present on the device, a value of 1 3662306a36Sopenharmony_ci configures the DOUT_WORDS to be block based, while a value of 2 configures the 3762306a36Sopenharmony_ci DOUT_WORDS input to be supplied for each AXI transaction. 3862306a36Sopenharmony_ci- xlnx,sdfec-dout-width : Configures the DOUT AXI stream where a value of 1 3962306a36Sopenharmony_ci configures a width of "1x128b", 2 a width of "2x128b" and 4 configures a width 4062306a36Sopenharmony_ci of "4x128b". 4162306a36Sopenharmony_ciOptional properties: 4262306a36Sopenharmony_ci- interrupts: should contain SDFEC interrupt number 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciExample 4562306a36Sopenharmony_ci--------------------------------------- 4662306a36Sopenharmony_ci sd_fec_0: sd-fec@a0040000 { 4762306a36Sopenharmony_ci compatible = "xlnx,sd-fec-1.1"; 4862306a36Sopenharmony_ci clock-names = "core_clk","s_axi_aclk","s_axis_ctrl_aclk","s_axis_din_aclk","m_axis_status_aclk","m_axis_dout_aclk"; 4962306a36Sopenharmony_ci clocks = <&misc_clk_2>,<&misc_clk_0>,<&misc_clk_1>,<&misc_clk_1>,<&misc_clk_1>, <&misc_clk_1>; 5062306a36Sopenharmony_ci reg = <0x0 0xa0040000 0x0 0x40000>; 5162306a36Sopenharmony_ci interrupt-parent = <&axi_intc>; 5262306a36Sopenharmony_ci interrupts = <1 0>; 5362306a36Sopenharmony_ci xlnx,sdfec-code = "ldpc"; 5462306a36Sopenharmony_ci xlnx,sdfec-din-words = <0>; 5562306a36Sopenharmony_ci xlnx,sdfec-din-width = <2>; 5662306a36Sopenharmony_ci xlnx,sdfec-dout-words = <0>; 5762306a36Sopenharmony_ci xlnx,sdfec-dout-width = <1>; 5862306a36Sopenharmony_ci }; 59