diff options
author | Joel Challis <git@zvecr.com> | 2020-09-27 13:04:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-27 13:04:27 +0100 |
commit | 50835bb13875843cac0236995afe86508744e595 (patch) | |
tree | 7945640f00ef64fa445feee156d076a7b514c62a /keyboards/sp111/mcp23018.h | |
parent | e7acd39b78a7cb81b258044dd190dc5bda55d120 (diff) |
[keyboard] Add SP-111 support (#10193)
* Initial sp111 support
* Align with template
Diffstat (limited to 'keyboards/sp111/mcp23018.h')
-rw-r--r-- | keyboards/sp111/mcp23018.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/keyboards/sp111/mcp23018.h b/keyboards/sp111/mcp23018.h new file mode 100644 index 0000000000..dc2251b72f --- /dev/null +++ b/keyboards/sp111/mcp23018.h @@ -0,0 +1,34 @@ +/* Copyright 2020 zvecr<git@zvecr.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include <stdint.h> +#include <stdbool.h> + +#define mcp23018_PORTA 0 +#define mcp23018_PORTB 1 + +#define ALL_OUTPUT 0 +#define ALL_INPUT 0xFF +#define ALL_LOW 0 +#define ALL_HIGH 0xFF + +void mcp23018_init(uint8_t addr); +bool mcp23018_set_config(uint8_t slave_addr, uint8_t port, uint8_t conf); +bool mcp23018_set_output(uint8_t slave_addr, uint8_t port, uint8_t conf); +bool mcp23018_set_output_all(uint8_t slave_addr, uint8_t confA, uint8_t confB); +bool mcp23018_readPins(uint8_t slave_addraddr, uint8_t port, uint8_t* ret); +bool mcp23018_readPins_all(uint8_t slave_addr, uint16_t* ret); |