fix sx1509 use of pullup and pulldown (#3689)

Co-authored-by: Samuel Sieb <samuel@sieb.net>
This commit is contained in:
Samuel Sieb
2022-08-07 12:39:41 -07:00
committed by GitHub
parent 989b7be99b
commit 2deef16ebe
2 changed files with 26 additions and 27 deletions
+6
View File
@@ -9,6 +9,7 @@ from esphome.const import (
CONF_MODE,
CONF_INVERTED,
CONF_OUTPUT,
CONF_PULLDOWN,
CONF_PULLUP,
)
@@ -74,6 +75,10 @@ def validate_mode(value):
raise cv.Invalid("Mode must be either input or output")
if value[CONF_PULLUP] and not value[CONF_INPUT]:
raise cv.Invalid("Pullup only available with input")
if value[CONF_PULLDOWN] and not value[CONF_INPUT]:
raise cv.Invalid("Pulldown only available with input")
if value[CONF_PULLUP] and value[CONF_PULLDOWN]:
raise cv.Invalid("Can only have one of pullup or pulldown")
return value
@@ -87,6 +92,7 @@ SX1509_PIN_SCHEMA = cv.All(
{
cv.Optional(CONF_INPUT, default=False): cv.boolean,
cv.Optional(CONF_PULLUP, default=False): cv.boolean,
cv.Optional(CONF_PULLDOWN, default=False): cv.boolean,
cv.Optional(CONF_OUTPUT, default=False): cv.boolean,
},
validate_mode,