aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@freemail.hu>2018-01-18 13:50:29 +0100
committerJohn Crispin <john@phrozen.org>2018-01-22 10:53:00 +0100
commitc7371cd1ee1dce130aa52ac9cdeb023fc33ee4b0 (patch)
tree291db3d5b617f3235ae7dec5cc0dca52bd42bc3b /target/linux/ar71xx
parent5bdbc10b1b0d323f145f652f45a8f9bed6aaa40d (diff)
downloadupstream-c7371cd1ee1dce130aa52ac9cdeb023fc33ee4b0.tar.gz
upstream-c7371cd1ee1dce130aa52ac9cdeb023fc33ee4b0.tar.bz2
upstream-c7371cd1ee1dce130aa52ac9cdeb023fc33ee4b0.zip
ar71xx: add definitions for RouterBOARD hardware option bits
Add bit definitions for the 'hardware options' tag which is used in the MikroTik devices' hardware configurations. These values can be used in board setup codes, to do different initialization sequences. The values were obtained from the RouterOS 6.41-rc38 patches. Additionally, introduce two helper functions what make the processing of the hardware options easy. Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
Diffstat (limited to 'target/linux/ar71xx')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/routerboot.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/routerboot.h b/target/linux/ar71xx/files/arch/mips/ath79/routerboot.h
index c1d7fb9ee0..cf189362d6 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/routerboot.h
+++ b/target/linux/ar71xx/files/arch/mips/ath79/routerboot.h
@@ -21,6 +21,32 @@ struct rb_info {
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);