u32 hw_options;
};
+/* Bit definitions for hardware options */
+#define RB_HW_OPT_UART_ABSENT BIT(0)
+#define RB_HW_OPT_HAS_VOLTAGE BIT(1)
+#define RB_HW_OPT_HAS_USB BIT(2)
+#define RB_HW_OPT_HAS_ATTINY BIT(3)
+#define RB_HW_OPT_NO_NAND BIT(14)
+#define RB_HW_OPT_HAS_LCD BIT(15)
+#define RB_HW_OPT_HAS_POE_OUT BIT(16)
+#define RB_HW_OPT_HAS_uSD BIT(17)
+#define RB_HW_OPT_HAS_SFP BIT(20)
+#define RB_HW_OPT_HAS_WIFI BIT(21)
+#define RB_HW_OPT_HAS_TS_FOR_ADC BIT(22)
+#define RB_HW_OPT_HAS_PLC BIT(29)
+
+static inline bool
+rb_hw_option_match(const struct rb_info *info, u32 mask, u32 val)
+{
+ return (info->hw_options & (val | mask)) == val;
+}
+
+static inline bool
+rb_has_hw_option(const struct rb_info *info, u32 mask)
+{
+ return rb_hw_option_match(info, mask, mask);
+}
+
#ifdef CONFIG_ATH79_ROUTERBOOT
const struct rb_info *rb_init_info(void *data, unsigned int size);
void *rb_get_wlan_data(void);