xref: /linux/include/linux/soc/brcmstb/brcmstb.h (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
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 Cooper static 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 Cooper static 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łecki static 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łecki static 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