--- /dev/null
+/******************************************************************************
+ *
+ * Copyright (c) 2012 - 2019 Samsung Electronics Co., Ltd. All rights reserved
+ *
+ *****************************************************************************/
+#ifndef __SLSI_REGINFO_H__
+#define __SLSI_REGINFO_H__
+
+int slsi_read_regulatory(struct slsi_dev *sdev);
+void slsi_regd_deinit(struct slsi_dev *sdev);
+void slsi_regd_init(struct slsi_dev *sdev);
+
+enum slsi_regdb_state {
+ SLSI_REG_DB_NOT_SET,
+ SLSI_REG_DB_ERROR,
+ SLSI_REG_DB_SET,
+};
+
+struct reg_database {
+ enum slsi_regdb_state regdb_state;
+ uint32_t version;
+ uint32_t num_countries;
+ struct regdb_file_reg_rule *reg_rules;
+ struct regdb_file_freq_range *freq_ranges;
+ struct regdb_file_reg_rules_collection *rules_collection;
+ struct regdb_file_reg_country *country;
+};
+
+struct regdb_file_freq_range {
+ uint32_t start_freq; /* in MHz */
+ uint32_t end_freq; /* in MHz */
+ uint32_t max_bandwidth; /* in MHz */
+};
+
+struct regdb_file_reg_rule {
+ struct regdb_file_freq_range *freq_range; /* ptr to regdb_file_freq_range array */
+ uint32_t max_eirp;/* this is power in dBm */
+ uint32_t flags;
+};
+
+struct regdb_file_reg_rules_collection {
+ uint32_t reg_rule_num;
+ /* pointers to struct regdb_file_reg_rule */
+ struct regdb_file_reg_rule *reg_rule[8];
+};
+
+struct regdb_file_reg_country {
+ uint8_t alpha2[2];
+ uint8_t pad_byte;
+ uint8_t dfs_region; /* first two bits define the DFS region */
+ /* pointers to struct regdb_file_reg_rules_collection */
+ struct regdb_file_reg_rules_collection *collection;
+};
+
+#endif
+