1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 29a764234SFlorian Fainelli #ifndef __BRCMSTB_SOC_H 39a764234SFlorian Fainelli #define __BRCMSTB_SOC_H 49a764234SFlorian Fainelli 5*149ae80bSRafał Miłecki #include <linux/kconfig.h> 6*149ae80bSRafał Miłecki BRCM_ID(u32 reg)77f20333fSAl Cooperstatic inline u32 BRCM_ID(u32 reg) 87f20333fSAl Cooper { 97f20333fSAl Cooper return reg >> 28 ? reg >> 16 : reg >> 8; 107f20333fSAl Cooper } 117f20333fSAl Cooper BRCM_REV(u32 reg)127f20333fSAl Cooperstatic inline u32 BRCM_REV(u32 reg) 137f20333fSAl Cooper { 147f20333fSAl Cooper return reg & 0xff; 157f20333fSAl Cooper } 167f20333fSAl Cooper 17*149ae80bSRafał Miłecki #if IS_ENABLED(CONFIG_SOC_BRCMSTB) 18*149ae80bSRafał Miłecki 199a764234SFlorian Fainelli /* 207f20333fSAl Cooper * Helper functions for getting family or product id from the 217f20333fSAl Cooper * SoC driver. 227f20333fSAl Cooper */ 237f20333fSAl Cooper u32 brcmstb_get_family_id(void); 247f20333fSAl Cooper u32 brcmstb_get_product_id(void); 257f20333fSAl Cooper 26*149ae80bSRafał Miłecki #else brcmstb_get_family_id(void)27*149ae80bSRafał Miłeckistatic inline u32 brcmstb_get_family_id(void) 28*149ae80bSRafał Miłecki { 29*149ae80bSRafał Miłecki return 0; 30*149ae80bSRafał Miłecki } 31*149ae80bSRafał Miłecki brcmstb_get_product_id(void)32*149ae80bSRafał Miłeckistatic inline u32 brcmstb_get_product_id(void) 33*149ae80bSRafał Miłecki { 34*149ae80bSRafał Miłecki return 0; 35*149ae80bSRafał Miłecki } 36*149ae80bSRafał Miłecki #endif 37*149ae80bSRafał Miłecki 389a764234SFlorian Fainelli #endif /* __BRCMSTB_SOC_H */ 39