From b191b9d1c0edcead1b1de68810d65291d7b999a0 Mon Sep 17 00:00:00 2001
From: Alexander Wellbrock <a.wellbrock@mailbox.org>
Date: Thu, 23 Apr 2020 10:32:57 +0200
Subject: [PATCH] Add chardev config option

The libgpiod module requires a chardev added with linux kernel 4.8.
The default chardev is /dev/gpiochip0. Subsequent devices follow this
schema: /dev/gpiochipN.
---
 pi_mqtt_gpio/__init__.py         | 4 ++++
 pi_mqtt_gpio/modules/__init__.py | 1 +
 pi_mqtt_gpio/modules/gpiod.py    | 2 +-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/pi_mqtt_gpio/__init__.py b/pi_mqtt_gpio/__init__.py
index 8dadd06..0fccc94 100644
--- a/pi_mqtt_gpio/__init__.py
+++ b/pi_mqtt_gpio/__init__.py
@@ -127,6 +127,10 @@ gpio_modules:
         type: boolean
         required: no
         default: yes
+      chip:
+        type: string
+        required: no
+        default: "/dev/gpiochip0"
 
 sensor_modules:
   type: list
diff --git a/pi_mqtt_gpio/modules/__init__.py b/pi_mqtt_gpio/modules/__init__.py
index 0661d99..8433a04 100644
--- a/pi_mqtt_gpio/modules/__init__.py
+++ b/pi_mqtt_gpio/modules/__init__.py
@@ -8,6 +8,7 @@ BASE_SCHEMA = {
     "name": {"required": True, "empty": False},
     "module": {"required": True, "empty": False},
     "cleanup": {"required": False, "type": "boolean", "default": True},
+    "chip": {"required": False, "type": "string", "default": "/dev/gpiochip0"},
 }
 
 
diff --git a/pi_mqtt_gpio/modules/gpiod.py b/pi_mqtt_gpio/modules/gpiod.py
index 99b83e5..f418444 100644
--- a/pi_mqtt_gpio/modules/gpiod.py
+++ b/pi_mqtt_gpio/modules/gpiod.py
@@ -22,7 +22,7 @@ class GPIO(GenericGPIO):
         import gpiod as gpio
 
         self.io = gpio
-        self.chip = config.chip
+        self.chip = gpio.chip(config["chip"])
         self.pins = {}
         self.watchers = {}
 
-- 
GitLab