summaryrefslogtreecommitdiff
path: root/stmhal/pin.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-08-08 22:41:06 +0100
committerDamien George <damien.p.george@gmail.com>2014-08-08 22:41:06 +0100
commit416227118150a6d3cac6ae94e4e9e8d7e482890f (patch)
tree586fae07925581402aa6f5dc22a6d290cc10d90b /stmhal/pin.h
parenta1d3ee376c25c0842096535c38e651431028d1b8 (diff)
parentb92e7533d3b40fd5129982370f177f47b2790df8 (diff)
Merge branch 'dhylands-pin-af'
Diffstat (limited to 'stmhal/pin.h')
-rw-r--r--stmhal/pin.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/stmhal/pin.h b/stmhal/pin.h
index 51a434f1d..6ac73aabd 100644
--- a/stmhal/pin.h
+++ b/stmhal/pin.h
@@ -31,6 +31,7 @@
typedef struct {
mp_obj_base_t base;
+ qstr name;
uint8_t idx;
uint8_t fn;
uint8_t unit;
@@ -45,7 +46,7 @@ typedef struct {
typedef struct {
mp_obj_base_t base;
- const char *name;
+ qstr name;
uint32_t port : 4;
uint32_t pin : 5; // Some ARM processors use 32 bits/PORT
uint32_t num_af : 4;
@@ -75,10 +76,18 @@ typedef struct {
const pin_named_pin_t *named_pins;
} pin_named_pins_obj_t;
-extern const pin_named_pins_obj_t pin_board_pins_obj;
-extern const pin_named_pins_obj_t pin_cpu_pins_obj;
+extern const mp_obj_type_t pin_board_pins_obj_type;
+extern const mp_obj_type_t pin_cpu_pins_obj_type;
+
+extern const mp_obj_dict_t pin_cpu_pins_locals_dict;
+extern const mp_obj_dict_t pin_board_pins_locals_dict;
void pin_init0(void);
+uint32_t pin_get_mode(const pin_obj_t *pin);
+uint32_t pin_get_pull(const pin_obj_t *pin);
+uint32_t pin_get_af(const pin_obj_t *pin);
const pin_obj_t *pin_find(mp_obj_t user_obj);
-const pin_obj_t *pin_find_named_pin(const pin_named_pin_t *pins, const char *name);
+const pin_obj_t *pin_find_named_pin(const mp_obj_dict_t *named_pins, mp_obj_t name);
const pin_af_obj_t *pin_find_af(const pin_obj_t *pin, uint8_t fn, uint8_t unit, uint8_t pin_type);
+const pin_af_obj_t *pin_find_af_by_index(const pin_obj_t *pin, mp_uint_t af_idx);
+const pin_af_obj_t *pin_find_af_by_name(const pin_obj_t *pin, const char *name);