forked from mirrors/qmk_userspace
		
	Relocate pca9555 driver to core (#6563)
* Move pca9555 files to central location * Get pca9555 boards compiling * Slight alignment of rules.mk
This commit is contained in:
		
					parent
					
						
							
								a20e6aa022
							
						
					
				
			
			
				commit
				
					
						1c805b3d00
					
				
			
		
					 9 changed files with 15 additions and 275 deletions
				
			
		| 
						 | 
					@ -1,6 +1,3 @@
 | 
				
			||||||
# Project specific files
 | 
					 | 
				
			||||||
SRC += i2c_master.c pca9555.c matrix.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# MCU name
 | 
					# MCU name
 | 
				
			||||||
MCU = atmega32u4
 | 
					MCU = atmega32u4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,10 +47,6 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 | 
				
			||||||
#   atmega32a    bootloadHID
 | 
					#   atmega32a    bootloadHID
 | 
				
			||||||
BOOTLOADER = atmel-dfu
 | 
					BOOTLOADER = atmel-dfu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Supported layouts
 | 
					 | 
				
			||||||
LAYOUTS = tkl_ansi tkl_iso
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Build Options
 | 
					# Build Options
 | 
				
			||||||
#   change yes to no to disable
 | 
					#   change yes to no to disable
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -74,4 +67,13 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
				
			||||||
AUDIO_ENABLE = no           # Audio output on port C6
 | 
					AUDIO_ENABLE = no           # Audio output on port C6
 | 
				
			||||||
FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 | 
					FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 | 
				
			||||||
HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 | 
					HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# custom matrix setup
 | 
				
			||||||
CUSTOM_MATRIX = yes
 | 
					CUSTOM_MATRIX = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VPATH += drivers/gpio
 | 
				
			||||||
 | 
					SRC += pca9555.c matrix.c
 | 
				
			||||||
 | 
					QUANTUM_LIB_SRC += i2c_master.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Supported layouts
 | 
				
			||||||
 | 
					LAYOUTS = tkl_ansi tkl_iso
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,78 +0,0 @@
 | 
				
			||||||
/* Copyright 2019
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * 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/>.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
#include "i2c_master.h"
 | 
					 | 
				
			||||||
#include "pca9555.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "debug.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SLAVE_TO_ADDR(n) (n << 1)
 | 
					 | 
				
			||||||
#define TIMEOUT 100
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum {
 | 
					 | 
				
			||||||
  CMD_INPUT_0 = 0,
 | 
					 | 
				
			||||||
  CMD_INPUT_1,
 | 
					 | 
				
			||||||
  CMD_OUTPUT_0,
 | 
					 | 
				
			||||||
  CMD_OUTPUT_1,
 | 
					 | 
				
			||||||
  CMD_INVERSION_0,
 | 
					 | 
				
			||||||
  CMD_INVERSION_1,
 | 
					 | 
				
			||||||
  CMD_CONFIG_0,
 | 
					 | 
				
			||||||
  CMD_CONFIG_1,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_init(uint8_t slave_addr) {
 | 
					 | 
				
			||||||
  static uint8_t s_init = 0;
 | 
					 | 
				
			||||||
  if (!s_init) {
 | 
					 | 
				
			||||||
    i2c_init();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    s_init = 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // TODO: could check device connected
 | 
					 | 
				
			||||||
  // i2c_start(SLAVE_TO_ADDR(slave) | I2C_WRITE);
 | 
					 | 
				
			||||||
  // i2c_stop();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_config(uint8_t slave_addr, uint8_t port, uint8_t conf) {
 | 
					 | 
				
			||||||
  uint8_t addr = SLAVE_TO_ADDR(slave_addr);
 | 
					 | 
				
			||||||
  uint8_t cmd  = port ? CMD_CONFIG_1 : CMD_CONFIG_0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  i2c_status_t ret = i2c_writeReg(addr, cmd, &conf, sizeof(conf), TIMEOUT);
 | 
					 | 
				
			||||||
  if (ret != I2C_STATUS_SUCCESS) {
 | 
					 | 
				
			||||||
    print("pca9555_set_config::FAILED\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_output(uint8_t slave_addr, uint8_t port, uint8_t conf) {
 | 
					 | 
				
			||||||
  uint8_t addr = SLAVE_TO_ADDR(slave_addr);
 | 
					 | 
				
			||||||
  uint8_t cmd  = port ? CMD_OUTPUT_1 : CMD_OUTPUT_0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  i2c_status_t ret = i2c_writeReg(addr, cmd, &conf, sizeof(conf), TIMEOUT);
 | 
					 | 
				
			||||||
  if (ret != I2C_STATUS_SUCCESS) {
 | 
					 | 
				
			||||||
    print("pca9555_set_output::FAILED\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint8_t pca9555_readPins(uint8_t slave_addr, uint8_t port) {
 | 
					 | 
				
			||||||
  uint8_t addr = SLAVE_TO_ADDR(slave_addr);
 | 
					 | 
				
			||||||
  uint8_t cmd  = port ? CMD_INPUT_1 : CMD_INPUT_0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  uint8_t      data = 0;
 | 
					 | 
				
			||||||
  i2c_status_t ret  = i2c_readReg(addr, cmd, &data, sizeof(data), TIMEOUT);
 | 
					 | 
				
			||||||
  if (ret != I2C_STATUS_SUCCESS) {
 | 
					 | 
				
			||||||
    print("pca9555_readPins::FAILED\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return data;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,55 +0,0 @@
 | 
				
			||||||
/* Copyright 2019
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
            PCA9555
 | 
					 | 
				
			||||||
         ,----------.
 | 
					 | 
				
			||||||
   SDA --| SDA  P00 |-- P00
 | 
					 | 
				
			||||||
   SCL --| SCL  P01 |-- P01
 | 
					 | 
				
			||||||
   INT --| INT  P02 |-- P02
 | 
					 | 
				
			||||||
         |      P03 |-- P03
 | 
					 | 
				
			||||||
   A0  --| A0   P04 |-- P04
 | 
					 | 
				
			||||||
   A1  --| A1   P05 |-- P05
 | 
					 | 
				
			||||||
   A2  --| A2   P06 |-- P06
 | 
					 | 
				
			||||||
         |      P07 |-- P07
 | 
					 | 
				
			||||||
         |          |
 | 
					 | 
				
			||||||
         |      P10 |-- P10
 | 
					 | 
				
			||||||
         |      P11 |-- P11
 | 
					 | 
				
			||||||
         |      P12 |-- P12
 | 
					 | 
				
			||||||
         |      P13 |-- P13
 | 
					 | 
				
			||||||
         |      P14 |-- P14
 | 
					 | 
				
			||||||
         |      P15 |-- P15
 | 
					 | 
				
			||||||
         |      P16 |-- P16
 | 
					 | 
				
			||||||
         |      P17 |-- P17
 | 
					 | 
				
			||||||
         `----------'
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PCA9555_PORT0 0
 | 
					 | 
				
			||||||
#define PCA9555_PORT1 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define ALL_OUTPUT 0
 | 
					 | 
				
			||||||
#define ALL_INPUT 0xFF
 | 
					 | 
				
			||||||
#define ALL_LOW 0
 | 
					 | 
				
			||||||
#define ALL_HIGH 0xFF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_init(uint8_t slave_addr);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_config(uint8_t slave_addr, uint8_t port, uint8_t conf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_output(uint8_t slave_addr, uint8_t port, uint8_t conf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint8_t pca9555_readPins(uint8_t slave_addr, uint8_t port);
 | 
					 | 
				
			||||||
| 
						 | 
					@ -77,11 +77,13 @@ UNICODE_ENABLE = no         # Unicode
 | 
				
			||||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
					BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
				
			||||||
AUDIO_ENABLE = no           # Audio output on port C6
 | 
					AUDIO_ENABLE = no           # Audio output on port C6
 | 
				
			||||||
FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 | 
					FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 | 
				
			||||||
HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs (+400)
 | 
					HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 | 
				
			||||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
 | 
					LINK_TIME_OPTIMIZATION_ENABLE = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# custom matrix setup
 | 
					# custom matrix setup
 | 
				
			||||||
CUSTOM_MATRIX = yes
 | 
					CUSTOM_MATRIX = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VPATH += drivers/gpio
 | 
				
			||||||
SRC += custom_matrix_helper.c pca9555.c matrix.c
 | 
					SRC += custom_matrix_helper.c pca9555.c matrix.c
 | 
				
			||||||
QUANTUM_LIB_SRC += i2c_master.c
 | 
					QUANTUM_LIB_SRC += i2c_master.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,78 +0,0 @@
 | 
				
			||||||
/* Copyright 2019
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * 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/>.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
#include "i2c_master.h"
 | 
					 | 
				
			||||||
#include "pca9555.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "debug.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SLAVE_TO_ADDR(n) (n << 1)
 | 
					 | 
				
			||||||
#define TIMEOUT 100
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum {
 | 
					 | 
				
			||||||
  CMD_INPUT_0 = 0,
 | 
					 | 
				
			||||||
  CMD_INPUT_1,
 | 
					 | 
				
			||||||
  CMD_OUTPUT_0,
 | 
					 | 
				
			||||||
  CMD_OUTPUT_1,
 | 
					 | 
				
			||||||
  CMD_INVERSION_0,
 | 
					 | 
				
			||||||
  CMD_INVERSION_1,
 | 
					 | 
				
			||||||
  CMD_CONFIG_0,
 | 
					 | 
				
			||||||
  CMD_CONFIG_1,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_init(uint8_t slave_addr) {
 | 
					 | 
				
			||||||
  static uint8_t s_init = 0;
 | 
					 | 
				
			||||||
  if (!s_init) {
 | 
					 | 
				
			||||||
    i2c_init();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    s_init = 1;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // TODO: could check device connected
 | 
					 | 
				
			||||||
  // i2c_start(SLAVE_TO_ADDR(slave) | I2C_WRITE);
 | 
					 | 
				
			||||||
  // i2c_stop();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_config(uint8_t slave_addr, uint8_t port, uint8_t conf) {
 | 
					 | 
				
			||||||
  uint8_t addr = SLAVE_TO_ADDR(slave_addr);
 | 
					 | 
				
			||||||
  uint8_t cmd  = port ? CMD_CONFIG_1 : CMD_CONFIG_0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  i2c_status_t ret = i2c_writeReg(addr, cmd, &conf, sizeof(conf), TIMEOUT);
 | 
					 | 
				
			||||||
  if (ret != I2C_STATUS_SUCCESS) {
 | 
					 | 
				
			||||||
    print("pca9555_set_config::FAILED\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_output(uint8_t slave_addr, uint8_t port, uint8_t conf) {
 | 
					 | 
				
			||||||
  uint8_t addr = SLAVE_TO_ADDR(slave_addr);
 | 
					 | 
				
			||||||
  uint8_t cmd  = port ? CMD_OUTPUT_1 : CMD_OUTPUT_0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  i2c_status_t ret = i2c_writeReg(addr, cmd, &conf, sizeof(conf), TIMEOUT);
 | 
					 | 
				
			||||||
  if (ret != I2C_STATUS_SUCCESS) {
 | 
					 | 
				
			||||||
    print("pca9555_set_output::FAILED\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint8_t pca9555_readPins(uint8_t slave_addr, uint8_t port) {
 | 
					 | 
				
			||||||
  uint8_t addr = SLAVE_TO_ADDR(slave_addr);
 | 
					 | 
				
			||||||
  uint8_t cmd  = port ? CMD_INPUT_1 : CMD_INPUT_0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  uint8_t      data = 0;
 | 
					 | 
				
			||||||
  i2c_status_t ret  = i2c_readReg(addr, cmd, &data, sizeof(data), TIMEOUT);
 | 
					 | 
				
			||||||
  if (ret != I2C_STATUS_SUCCESS) {
 | 
					 | 
				
			||||||
    print("pca9555_readPins::FAILED\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return data;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,55 +0,0 @@
 | 
				
			||||||
/* Copyright 2019
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
            PCA9555
 | 
					 | 
				
			||||||
         ,----------.
 | 
					 | 
				
			||||||
   SDA --| SDA  P00 |-- P00
 | 
					 | 
				
			||||||
   SCL --| SCL  P01 |-- P01
 | 
					 | 
				
			||||||
   INT --| INT  P02 |-- P02
 | 
					 | 
				
			||||||
         |      P03 |-- P03
 | 
					 | 
				
			||||||
   A0  --| A0   P04 |-- P04
 | 
					 | 
				
			||||||
   A1  --| A1   P05 |-- P05
 | 
					 | 
				
			||||||
   A2  --| A2   P06 |-- P06
 | 
					 | 
				
			||||||
         |      P07 |-- P07
 | 
					 | 
				
			||||||
         |          |
 | 
					 | 
				
			||||||
         |      P10 |-- P10
 | 
					 | 
				
			||||||
         |      P11 |-- P11
 | 
					 | 
				
			||||||
         |      P12 |-- P12
 | 
					 | 
				
			||||||
         |      P13 |-- P13
 | 
					 | 
				
			||||||
         |      P14 |-- P14
 | 
					 | 
				
			||||||
         |      P15 |-- P15
 | 
					 | 
				
			||||||
         |      P16 |-- P16
 | 
					 | 
				
			||||||
         |      P17 |-- P17
 | 
					 | 
				
			||||||
         `----------'
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PCA9555_PORT0 0
 | 
					 | 
				
			||||||
#define PCA9555_PORT1 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define ALL_OUTPUT 0
 | 
					 | 
				
			||||||
#define ALL_INPUT 0xFF
 | 
					 | 
				
			||||||
#define ALL_LOW 0
 | 
					 | 
				
			||||||
#define ALL_HIGH 0xFF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_init(uint8_t slave_addr);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_config(uint8_t slave_addr, uint8_t port, uint8_t conf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pca9555_set_output(uint8_t slave_addr, uint8_t port, uint8_t conf);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint8_t pca9555_readPins(uint8_t slave_addr, uint8_t port);
 | 
					 | 
				
			||||||
| 
						 | 
					@ -77,10 +77,12 @@ UNICODE_ENABLE = no         # Unicode
 | 
				
			||||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
					BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
				
			||||||
AUDIO_ENABLE = no           # Audio output on port C6
 | 
					AUDIO_ENABLE = no           # Audio output on port C6
 | 
				
			||||||
FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 | 
					FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 | 
				
			||||||
HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs (+400)
 | 
					HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 | 
				
			||||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
 | 
					LINK_TIME_OPTIMIZATION_ENABLE = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# custom matrix setup
 | 
					# custom matrix setup
 | 
				
			||||||
CUSTOM_MATRIX = yes
 | 
					CUSTOM_MATRIX = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VPATH += drivers/gpio
 | 
				
			||||||
SRC += custom_matrix_helper.c pca9555.c matrix.c
 | 
					SRC += custom_matrix_helper.c pca9555.c matrix.c
 | 
				
			||||||
QUANTUM_LIB_SRC += i2c_master.c
 | 
					QUANTUM_LIB_SRC += i2c_master.c
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue