From 30a2323bc0a95cda4eca818fe1d523a2e5c031f3 Mon Sep 17 00:00:00 2001
From: Pawel Dembicki <paweldembicki@gmail.com>
Date: Mon, 2 Nov 2020 14:50:34 +0100
Subject: [PATCH] support gpio with number bigger than 255

Change 8-bit gpio value to 16-bit, which allow to use gpio >255.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
---
 src/data_types.h     | 16 ++++++++--------
 src/relay_drv_gpio.c | 10 +++++-----
 2 files changed, 13 insertions(+), 13 deletions(-)

--- a/src/data_types.h
+++ b/src/data_types.h
@@ -56,14 +56,14 @@ typedef struct
     /* [GPIO drv] */
     uint8_t gpio_num_relays;
     uint8_t gpio_active_value;
-    uint8_t relay1_gpio_pin;
-    uint8_t relay2_gpio_pin;
-    uint8_t relay3_gpio_pin;
-    uint8_t relay4_gpio_pin;
-    uint8_t relay5_gpio_pin;
-    uint8_t relay6_gpio_pin;
-    uint8_t relay7_gpio_pin;
-    uint8_t relay8_gpio_pin;
+    uint16_t relay1_gpio_pin;
+    uint16_t relay2_gpio_pin;
+    uint16_t relay3_gpio_pin;
+    uint16_t relay4_gpio_pin;
+    uint16_t relay5_gpio_pin;
+    uint16_t relay6_gpio_pin;
+    uint16_t relay7_gpio_pin;
+    uint16_t relay8_gpio_pin;
     
     /* [Sainsmart drv] */
     uint8_t sainsmart_num_relays;
--- a/src/relay_drv_gpio.c
+++ b/src/relay_drv_gpio.c
@@ -53,7 +53,7 @@
 #define GPIO_BASE_FILE GPIO_BASE_DIR"gpio"
 
 
-static uint8_t pins[] =
+static uint16_t pins[] =
 {
   0, // dummy
   0, // pin 1
@@ -85,7 +85,7 @@ int set_relay_generic_gpio(char* portnam
  *         -1 - fail
  *         -2 - already exported
  *********************************************************/
-static int do_export(uint8_t pin)
+static int do_export(uint16_t pin)
 {
    int fd;
    char b[64];
@@ -151,7 +151,7 @@ static int do_export(uint8_t pin)
  * Return:  0 - success
  *         -1 - fail
  *********************************************************/
-static int do_unexport(uint8_t pin)
+static int do_unexport(uint16_t pin)
 {
    int fd;
    char b[64];
@@ -261,7 +261,7 @@ int get_relay_generic_gpio(char* portnam
    int fd;
    char b[64];
    char d[1];
-   uint8_t pin;
+   uint16_t pin;
 
    if (relay<FIRST_RELAY || relay>(FIRST_RELAY+g_num_relays-1))
    {
@@ -324,7 +324,7 @@ int set_relay_generic_gpio(char* portnam
    int fd;
    char b[64];
    char d[1];
-   uint8_t pin;
+   uint16_t pin;
    
    if (relay<FIRST_RELAY || relay>(FIRST_RELAY+g_num_relays-1))
    {
