1*3005c75dSOleksandr Kolomeiets /* 2*3005c75dSOleksandr Kolomeiets * SPDX-License-Identifier: BSD-3-Clause 3*3005c75dSOleksandr Kolomeiets * Copyright(c) 2023 Napatech A/S 4*3005c75dSOleksandr Kolomeiets */ 5*3005c75dSOleksandr Kolomeiets 6*3005c75dSOleksandr Kolomeiets #ifndef _HW_MOD_KM_V7_H_ 7*3005c75dSOleksandr Kolomeiets #define _HW_MOD_KM_V7_H_ 8*3005c75dSOleksandr Kolomeiets 9*3005c75dSOleksandr Kolomeiets #include <stdint.h> 10*3005c75dSOleksandr Kolomeiets 11*3005c75dSOleksandr Kolomeiets struct km_v7_rcp_s { 12*3005c75dSOleksandr Kolomeiets uint32_t qw0_dyn; 13*3005c75dSOleksandr Kolomeiets int32_t qw0_ofs; 14*3005c75dSOleksandr Kolomeiets uint32_t qw0_sel_a; 15*3005c75dSOleksandr Kolomeiets uint32_t qw0_sel_b; 16*3005c75dSOleksandr Kolomeiets uint32_t qw4_dyn; 17*3005c75dSOleksandr Kolomeiets int32_t qw4_ofs; 18*3005c75dSOleksandr Kolomeiets uint32_t qw4_sel_a; 19*3005c75dSOleksandr Kolomeiets uint32_t qw4_sel_b; 20*3005c75dSOleksandr Kolomeiets uint32_t dw8_dyn; 21*3005c75dSOleksandr Kolomeiets int32_t dw8_ofs; 22*3005c75dSOleksandr Kolomeiets uint32_t dw8_sel_a; 23*3005c75dSOleksandr Kolomeiets uint32_t dw8_sel_b; 24*3005c75dSOleksandr Kolomeiets uint32_t dw10_dyn; 25*3005c75dSOleksandr Kolomeiets int32_t dw10_ofs; 26*3005c75dSOleksandr Kolomeiets uint32_t dw10_sel_a; 27*3005c75dSOleksandr Kolomeiets uint32_t dw10_sel_b; 28*3005c75dSOleksandr Kolomeiets uint32_t swx_cch; 29*3005c75dSOleksandr Kolomeiets uint32_t swx_sel_a; 30*3005c75dSOleksandr Kolomeiets uint32_t swx_sel_b; 31*3005c75dSOleksandr Kolomeiets uint32_t mask_d_a[12]; 32*3005c75dSOleksandr Kolomeiets uint32_t mask_b[6]; 33*3005c75dSOleksandr Kolomeiets uint32_t dual; 34*3005c75dSOleksandr Kolomeiets uint32_t paired; 35*3005c75dSOleksandr Kolomeiets uint32_t el_a; 36*3005c75dSOleksandr Kolomeiets uint32_t el_b; 37*3005c75dSOleksandr Kolomeiets uint32_t info_a; 38*3005c75dSOleksandr Kolomeiets uint32_t info_b; 39*3005c75dSOleksandr Kolomeiets uint32_t ftm_a; 40*3005c75dSOleksandr Kolomeiets uint32_t ftm_b; 41*3005c75dSOleksandr Kolomeiets uint32_t bank_a; 42*3005c75dSOleksandr Kolomeiets uint32_t bank_b; 43*3005c75dSOleksandr Kolomeiets uint32_t kl_a; 44*3005c75dSOleksandr Kolomeiets uint32_t kl_b; 45*3005c75dSOleksandr Kolomeiets uint32_t keyway_a; 46*3005c75dSOleksandr Kolomeiets uint32_t keyway_b; 47*3005c75dSOleksandr Kolomeiets uint32_t synergy_mode; 48*3005c75dSOleksandr Kolomeiets uint32_t dw0_b_dyn; 49*3005c75dSOleksandr Kolomeiets int32_t dw0_b_ofs; 50*3005c75dSOleksandr Kolomeiets uint32_t dw2_b_dyn; 51*3005c75dSOleksandr Kolomeiets int32_t dw2_b_ofs; 52*3005c75dSOleksandr Kolomeiets uint32_t sw4_b_dyn; 53*3005c75dSOleksandr Kolomeiets int32_t sw4_b_ofs; 54*3005c75dSOleksandr Kolomeiets uint32_t sw5_b_dyn; 55*3005c75dSOleksandr Kolomeiets int32_t sw5_b_ofs; 56*3005c75dSOleksandr Kolomeiets }; 57*3005c75dSOleksandr Kolomeiets 58*3005c75dSOleksandr Kolomeiets struct km_v7_cam_s { 59*3005c75dSOleksandr Kolomeiets uint32_t w0; 60*3005c75dSOleksandr Kolomeiets uint32_t w1; 61*3005c75dSOleksandr Kolomeiets uint32_t w2; 62*3005c75dSOleksandr Kolomeiets uint32_t w3; 63*3005c75dSOleksandr Kolomeiets uint32_t w4; 64*3005c75dSOleksandr Kolomeiets uint32_t w5; 65*3005c75dSOleksandr Kolomeiets uint32_t ft0; 66*3005c75dSOleksandr Kolomeiets uint32_t ft1; 67*3005c75dSOleksandr Kolomeiets uint32_t ft2; 68*3005c75dSOleksandr Kolomeiets uint32_t ft3; 69*3005c75dSOleksandr Kolomeiets uint32_t ft4; 70*3005c75dSOleksandr Kolomeiets uint32_t ft5; 71*3005c75dSOleksandr Kolomeiets }; 72*3005c75dSOleksandr Kolomeiets 73*3005c75dSOleksandr Kolomeiets struct km_v7_tcam_s { 74*3005c75dSOleksandr Kolomeiets uint32_t t[3]; 75*3005c75dSOleksandr Kolomeiets uint32_t dirty; 76*3005c75dSOleksandr Kolomeiets }; 77*3005c75dSOleksandr Kolomeiets 78*3005c75dSOleksandr Kolomeiets struct km_v7_tci_s { 79*3005c75dSOleksandr Kolomeiets uint32_t color; 80*3005c75dSOleksandr Kolomeiets uint32_t ft; 81*3005c75dSOleksandr Kolomeiets }; 82*3005c75dSOleksandr Kolomeiets 83*3005c75dSOleksandr Kolomeiets struct km_v7_tcq_s { 84*3005c75dSOleksandr Kolomeiets uint32_t bank_mask; 85*3005c75dSOleksandr Kolomeiets uint32_t qual; 86*3005c75dSOleksandr Kolomeiets }; 87*3005c75dSOleksandr Kolomeiets 88*3005c75dSOleksandr Kolomeiets struct hw_mod_km_v7_s { 89*3005c75dSOleksandr Kolomeiets struct km_v7_rcp_s *rcp; 90*3005c75dSOleksandr Kolomeiets struct km_v7_cam_s *cam; 91*3005c75dSOleksandr Kolomeiets struct km_v7_tcam_s *tcam; 92*3005c75dSOleksandr Kolomeiets struct km_v7_tci_s *tci; 93*3005c75dSOleksandr Kolomeiets struct km_v7_tcq_s *tcq; 94*3005c75dSOleksandr Kolomeiets }; 95*3005c75dSOleksandr Kolomeiets 96*3005c75dSOleksandr Kolomeiets #endif /* _HW_MOD_KM_V7_H_ */ 97