From 7cce06b472003a70b26c79f95357febb13ccfe31 Mon Sep 17 00:00:00 2001 From: Robert Wolterman Date: Sat, 31 Dec 2016 20:25:12 +0000 Subject: [PATCH] fixing error in the overlay builder, forgot to remove the i2c-1 stuff in there. added code to common to allow denotation if a pin supports software pwm --- overlays/builder.py | 2 - source/common.c | 162 ++++++++++++++++++++++---------------------- source/common.h | 11 +-- 3 files changed, 88 insertions(+), 87 deletions(-) diff --git a/overlays/builder.py b/overlays/builder.py index a4408e2..8857972 100644 --- a/overlays/builder.py +++ b/overlays/builder.py @@ -7,7 +7,6 @@ import sys def compile(): print("Compiling DTS Files") call(["dtc", "-O", "dtb", "-o", "overlays/chip-spi2.dtbo", "-b", "o", "-@", "overlays/chip-spi2.dts"]) - call(["dtc", "-O", "dtb", "-o", "overlays/chip-i2c1.dtbo", "-b", "o", "-@", "overlays/chip-i2c1.dts"]) call(["dtc", "-O", "dtb", "-o", "overlays/chip-pwm0.dtbo", "-b", "o", "-@", "overlays/chip-pwm0.dts"]) def copy(): @@ -22,5 +21,4 @@ def copy(): os.remove(fl) print("Moving DTBO files to "+overlay_path) shutil.move("overlays/chip-spi2.dtbo", overlay_path+"/chip-spi2.dtbo") - shutil.move("overlays/chip-i2c1.dtbo", overlay_path+"/chip-i2c1.dtbo") shutil.move("overlays/chip-pwm0.dtbo", overlay_path+"/chip-pwm0.dtbo") diff --git a/source/common.c b/source/common.c index d198370..dcb5f20 100644 --- a/source/common.c +++ b/source/common.c @@ -50,87 +50,87 @@ int setup_error = 0; int module_setup = 0; pins_t pins_info[] = { - { "GND", "GND", "U13_1", -1, BASE_METHOD_AS_IS, -1, -1}, - { "CHG-IN", "CHG-IN", "U13_2", -1, BASE_METHOD_AS_IS, -1, -1}, - { "VCC-5V", "VCC-5V", "U13_3", -1, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U13_4", -1, BASE_METHOD_AS_IS, -1, -1}, - { "VCC-3V3", "VCC-3V3", "U13_5", -1, BASE_METHOD_AS_IS, -1, -1}, - { "TS", "TS", "U13_6", -1, BASE_METHOD_AS_IS, -1, -1}, - { "VCC-1V8", "VCC-1V8", "U13_7", -1, BASE_METHOD_AS_IS, -1, -1}, - { "BAT", "BAT", "U13_8", -1, BASE_METHOD_AS_IS, -1, -1}, - { "TWI1-SDA", "KPD-I2C-SDA", "U13_9", 48, BASE_METHOD_AS_IS, -1, -1}, - { "PWRON", "PWRON", "U13_10", -1, BASE_METHOD_AS_IS, -1, -1}, - { "TWI1-SCK", "KPD-I2C-SCL", "U13_11", 47, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U13_12", -1, BASE_METHOD_AS_IS, -1, -1}, - { "X1", "X1", "U13_13", -1, BASE_METHOD_AS_IS, -1, -1}, - { "X2", "X2", "U13_14", -1, BASE_METHOD_AS_IS, -1, -1}, - { "Y1", "Y1", "U13_15", -1, BASE_METHOD_AS_IS, -1, -1}, - { "Y2", "Y2", "U13_16", -1, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D2", "LCD-D2", "U13_17", 98, BASE_METHOD_AS_IS, -1, -1}, - { "PWM0", "PWM0", "U13_18", 34, BASE_METHOD_AS_IS, 0, -1}, - { "LCD-D4", "LCD-D4", "U13_19", 100, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D3", "LCD-D3", "U13_20", 99, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D6", "LCD-D6", "U13_21", 102, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D5", "LCD-D5", "U13_22", 101, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D10", "LCD-D10", "U13_23", 106, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D7", "LCD-D7", "U13_24", 103, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D12", "LCD-D12", "U13_25", 108, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D11", "LCD-D11", "U13_26", 107, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D14", "LCD-D14", "U13_27", 110, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D13", "LCD-D13", "U13_28", 109, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D18", "LCD-D18", "U13_29", 114, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D15", "LCD-D15", "U13_30", 111, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D20", "LCD-D20", "U13_31", 116, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D19", "LCD-D19", "U13_32", 115, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D22", "LCD-D22", "U13_33", 118, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D21", "LCD-D21", "U13_34", 117, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-CLK", "LCD-CLK", "U13_35", 120, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-D23", "LCD-D23", "U13_36", 119, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-VSYNC", "LCD-VSYNC", "U13_37", 123, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-HSYNC", "LCD-HSYNC", "U13_38", 122, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U13_39", -1, BASE_METHOD_AS_IS, -1, -1}, - { "LCD-DE", "LCD-DE", "U13_40", 121, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U14_1", -1, BASE_METHOD_AS_IS, -1, -1}, - { "VCC-5V", "VCC-5V", "U14_2", -1, BASE_METHOD_AS_IS, -1, -1}, - { "UART1-TX", "UART-TX", "U14_3", 195, BASE_METHOD_AS_IS, -1, -1}, - { "HPL", "HPL", "U14_4", -1, BASE_METHOD_AS_IS, -1, -1}, - { "UART1-RX", "UART-RX", "U14_5", 196, BASE_METHOD_AS_IS, -1, -1}, - { "HPCOM", "HPCOM", "U14_6", -1, BASE_METHOD_AS_IS, -1, -1}, - { "FEL", "FEL", "U14_7", -1, BASE_METHOD_AS_IS, -1, -1}, - { "HPR", "HPR", "U14_8", -1, BASE_METHOD_AS_IS, -1, -1}, - { "VCC-3V3", "VCC-3V3", "U14_9", -1, BASE_METHOD_AS_IS, -1, -1}, - { "MICM", "MICM", "U14_10", -1, BASE_METHOD_AS_IS, -1, -1}, - { "LRADC", "ADC", "U14_11", -1, BASE_METHOD_AS_IS, -1, 0}, - { "MICIN1", "MICIN1", "U14_12", -1, BASE_METHOD_AS_IS, -1, -1}, - { "XIO-P0", "XIO-P0", "U14_13", 0, BASE_METHOD_XIO, -1, -1}, - { "XIO-P1", "XIO-P1", "U14_14", 1, BASE_METHOD_XIO, -1, -1}, - { "XIO-P2", "GPIO1", "U14_15", 2, BASE_METHOD_XIO, -1, -1}, - { "XIO-P3", "GPIO2", "U14_16", 3, BASE_METHOD_XIO, -1, -1}, - { "XIO-P4", "GPIO3", "U14_17", 4, BASE_METHOD_XIO, -1, -1}, - { "XIO-P5", "GPIO4", "U14_18", 5, BASE_METHOD_XIO, -1, -1}, - { "XIO-P6", "GPIO5", "U14_19", 6, BASE_METHOD_XIO, -1, -1}, - { "XIO-P7", "GPIO6", "U14_20", 7, BASE_METHOD_XIO, -1, -1}, - { "GND", "GND", "U14_21", -1, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U14_22", -1, BASE_METHOD_AS_IS, -1, -1}, - { "AP-EINT1", "KPD-INT", "U14_23", 193, BASE_METHOD_AS_IS, -1, -1}, - { "AP-EINT3", "AP-INT3", "U14_24", 35, BASE_METHOD_AS_IS, -1, -1}, - { "TWI2-SDA", "I2C-SDA", "U14_25", 50, BASE_METHOD_AS_IS, -1, -1}, - { "TWI2-SCK", "I2C-SCL", "U14_26", 49, BASE_METHOD_AS_IS, -1, -1}, - { "CSIPCK", "SPI-SEL", "U14_27", 128, BASE_METHOD_AS_IS, -1, -1}, - { "CSICK", "SPI-CLK", "U14_28", 129, BASE_METHOD_AS_IS, -1, -1}, - { "CSIHSYNC", "SPI-MOSI", "U14_29", 130, BASE_METHOD_AS_IS, 1, -1}, - { "CSIVSYNC", "SPI-MISO", "U14_30", 131, BASE_METHOD_AS_IS, -1, -1}, - { "CSID0", "CSID0", "U14_31", 132, BASE_METHOD_AS_IS, 1, -1}, - { "CSID1", "CSID1", "U14_32", 133, BASE_METHOD_AS_IS, -1, -1}, - { "CSID2", "CSID2", "U14_33", 134, BASE_METHOD_AS_IS, -1, -1}, - { "CSID3", "CSID3", "U14_34", 135, BASE_METHOD_AS_IS, -1, -1}, - { "CSID4", "CSID4", "U14_35", 136, BASE_METHOD_AS_IS, -1, -1}, - { "CSID5", "CSID5", "U14_36", 137, BASE_METHOD_AS_IS, -1, -1}, - { "CSID6", "CSID6", "U14_37", 138, BASE_METHOD_AS_IS, -1, -1}, - { "CSID7", "CSID7", "U14_38", 139, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U14_39", -1, BASE_METHOD_AS_IS, -1, -1}, - { "GND", "GND", "U14_40", -1, BASE_METHOD_AS_IS, -1, -1}, - { NULL, NULL, NULL, -1, 0, -1, -1} + { "GND", "GND", "U13_1", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CHG-IN", "CHG-IN", "U13_2", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "VCC-5V", "VCC-5V", "U13_3", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U13_4", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "VCC-3V3", "VCC-3V3", "U13_5", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "TS", "TS", "U13_6", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "VCC-1V8", "VCC-1V8", "U13_7", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "BAT", "BAT", "U13_8", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "TWI1-SDA", "KPD-I2C-SDA", "U13_9", 48, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "PWRON", "PWRON", "U13_10", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "TWI1-SCK", "KPD-I2C-SCL", "U13_11", 47, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U13_12", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "X1", "X1", "U13_13", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "X2", "X2", "U13_14", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "Y1", "Y1", "U13_15", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "Y2", "Y2", "U13_16", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D2", "LCD-D2", "U13_17", 98, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "PWM0", "PWM0", "U13_18", 34, BASE_METHOD_AS_IS, 0, -1, SPWM_DISABLED}, + { "LCD-D4", "LCD-D4", "U13_19", 100, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D3", "LCD-D3", "U13_20", 99, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D6", "LCD-D6", "U13_21", 102, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D5", "LCD-D5", "U13_22", 101, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D10", "LCD-D10", "U13_23", 106, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D7", "LCD-D7", "U13_24", 103, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D12", "LCD-D12", "U13_25", 108, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D11", "LCD-D11", "U13_26", 107, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D14", "LCD-D14", "U13_27", 110, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D13", "LCD-D13", "U13_28", 109, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D18", "LCD-D18", "U13_29", 114, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D15", "LCD-D15", "U13_30", 111, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D20", "LCD-D20", "U13_31", 116, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D19", "LCD-D19", "U13_32", 115, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D22", "LCD-D22", "U13_33", 118, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D21", "LCD-D21", "U13_34", 117, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-CLK", "LCD-CLK", "U13_35", 120, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-D23", "LCD-D23", "U13_36", 119, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-VSYNC", "LCD-VSYNC", "U13_37", 123, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-HSYNC", "LCD-HSYNC", "U13_38", 122, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U13_39", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LCD-DE", "LCD-DE", "U13_40", 121, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U14_1", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "VCC-5V", "VCC-5V", "U14_2", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "UART1-TX", "UART-TX", "U14_3", 195, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "HPL", "HPL", "U14_4", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "UART1-RX", "UART-RX", "U14_5", 196, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "HPCOM", "HPCOM", "U14_6", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "FEL", "FEL", "U14_7", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "HPR", "HPR", "U14_8", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "VCC-3V3", "VCC-3V3", "U14_9", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "MICM", "MICM", "U14_10", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "LRADC", "ADC", "U14_11", -1, BASE_METHOD_AS_IS, -1, 0, SPWM_DISABLED}, + { "MICIN1", "MICIN1", "U14_12", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "XIO-P0", "XIO-P0", "U14_13", 0, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P1", "XIO-P1", "U14_14", 1, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P2", "GPIO1", "U14_15", 2, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P3", "GPIO2", "U14_16", 3, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P4", "GPIO3", "U14_17", 4, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P5", "GPIO4", "U14_18", 5, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P6", "GPIO5", "U14_19", 6, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "XIO-P7", "GPIO6", "U14_20", 7, BASE_METHOD_XIO, -1, -1, SPWM_ENABLED}, + { "GND", "GND", "U14_21", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U14_22", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "AP-EINT1", "KPD-INT", "U14_23", 193, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "AP-EINT3", "AP-INT3", "U14_24", 35, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "TWI2-SDA", "I2C-SDA", "U14_25", 50, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "TWI2-SCK", "I2C-SCL", "U14_26", 49, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSIPCK", "SPI-SEL", "U14_27", 128, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSICK", "SPI-CLK", "U14_28", 129, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSIHSYNC", "SPI-MOSI", "U14_29", 130, BASE_METHOD_AS_IS, 1, -1, SPWM_DISABLED}, + { "CSIVSYNC", "SPI-MISO", "U14_30", 131, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID0", "CSID0", "U14_31", 132, BASE_METHOD_AS_IS, 1, -1, SPWM_DISABLED}, + { "CSID1", "CSID1", "U14_32", 133, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID2", "CSID2", "U14_33", 134, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID3", "CSID3", "U14_34", 135, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID4", "CSID4", "U14_35", 136, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID5", "CSID5", "U14_36", 137, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID6", "CSID6", "U14_37", 138, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "CSID7", "CSID7", "U14_38", 139, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U14_39", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { "GND", "GND", "U14_40", -1, BASE_METHOD_AS_IS, -1, -1, SPWM_DISABLED}, + { NULL, NULL, NULL, -1, 0, -1, -1, -1} }; diff --git a/source/common.h b/source/common.h index 0ca3430..4a61759 100644 --- a/source/common.h +++ b/source/common.h @@ -52,13 +52,15 @@ SOFTWARE. } while (0) #define MODE_UNKNOWN -1 -#define BOARD 10 -#define BCM 11 +#define CHIP 0 +#define CHIPPRO 1 // In the pins_t structure, the "base_method" field tells how // the "gpio" field should be interpreted. #define BASE_METHOD_AS_IS 1 /* use the gpio value directly */ #define BASE_METHOD_XIO 2 /* add the gpio value to the XIO base */ +#define SPWM_ENABLED 1 /* pin able to be used by software pwm */ +#define SPWM_DISABLED 0 /* pin unable to be used by software pwm */ typedef struct pins_t { const char *name; @@ -66,8 +68,9 @@ typedef struct pins_t { const char *key; int gpio; /* port number to use under /sys/class/gpio */ int base_method; /* modifier for port number; see BASE_METHOD_... */ - int pwm_mux_mode; - int ain; + int pwm_mux_mode; /* pwm pin */ + int ain; /* analog pin */ + int spwm_allow; /* pin allowed for software pwm */ } pins_t;