1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2018 Netronome Systems, Inc. 3 * All rights reserved. 4 */ 5 6 #ifndef __NFP_NFP6000_H__ 7 #define __NFP_NFP6000_H__ 8 9 #define NFP_ISL_EMEM0 24 10 11 #define NFP_MU_ADDR_ACCESS_TYPE_MASK 3ULL 12 #define NFP_MU_ADDR_ACCESS_TYPE_DIRECT 2ULL 13 14 #define PUSHPULL(pull, push) (((pull) << 4) | ((push) << 0)) 15 #define PUSH_WIDTH(push_pull) pushpull_width((push_pull) >> 0) 16 #define PULL_WIDTH(push_pull) pushpull_width((push_pull) >> 4) 17 18 static inline int pushpull_width(int pp)19pushpull_width(int pp) 20 { 21 pp &= 0xf; 22 if (pp == 0) 23 return -EINVAL; 24 25 return 2 << pp; 26 } 27 28 29 static inline int nfp_cppat_mu_locality_lsb(int mode,int addr40)30nfp_cppat_mu_locality_lsb(int mode, int addr40) 31 { 32 switch (mode) { 33 case 0 ... 3: 34 return addr40 ? 38 : 30; 35 default: 36 return -EINVAL; 37 } 38 } 39 40 #endif /* NFP_NFP6000_H */ 41