61 lines
1.8 KiB
Bash
61 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# shellcheck disable=SC2034
|
|
|
|
GPIOCHIPNUMBER=0
|
|
|
|
GPIO_DIRECTION_OUTPUT=0
|
|
GPIO_DIRECTION_INPUT=1
|
|
|
|
GPIO_ACTIVE_LOW=0
|
|
GPIO_ACTIVE_HIGH=1
|
|
|
|
GPIOS=(
|
|
# Discrete inputs: 1, 2, 3, 4
|
|
"${GPIOCHIPNUMBER} 46 ${GPIO_DIRECTION_INPUT} ${GPIO_ACTIVE_HIGH}"
|
|
"${GPIOCHIPNUMBER} 45 ${GPIO_DIRECTION_INPUT} ${GPIO_ACTIVE_HIGH}"
|
|
"${GPIOCHIPNUMBER} 44 ${GPIO_DIRECTION_INPUT} ${GPIO_ACTIVE_HIGH}"
|
|
"${GPIOCHIPNUMBER} 43 ${GPIO_DIRECTION_INPUT} ${GPIO_ACTIVE_HIGH}"
|
|
# Relays: 1, 2, 3
|
|
"${GPIOCHIPNUMBER} 30 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_HIGH}"
|
|
"${GPIOCHIPNUMBER} 29 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_HIGH}"
|
|
"${GPIOCHIPNUMBER} 28 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_HIGH}"
|
|
# Zigbee module: RESET, BOOT
|
|
"${GPIOCHIPNUMBER} 41 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_HIGH}"
|
|
"${GPIOCHIPNUMBER} 36 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_HIGH}"
|
|
# LEDs: RED, GREEN
|
|
"${GPIOCHIPNUMBER} 26 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_LOW}"
|
|
"${GPIOCHIPNUMBER} 27 ${GPIO_DIRECTION_OUTPUT} ${GPIO_ACTIVE_LOW}"
|
|
# Button
|
|
"${GPIOCHIPNUMBER} 10 ${GPIO_DIRECTION_INPUT} ${GPIO_ACTIVE_LOW}"
|
|
)
|
|
|
|
|
|
# Set LED states
|
|
LEDS=(
|
|
# LED RED
|
|
"${GPIOCHIPNUMBER} 26 0 ${GPIO_ACTIVE_LOW}"
|
|
# LED GREEN
|
|
"${GPIOCHIPNUMBER} 27 0 ${GPIO_ACTIVE_LOW}"
|
|
)
|
|
|
|
|
|
reset_zigbee() {
|
|
echo "${0}: Reset Zigbee module ..."
|
|
gpio_set ${GPIOCHIPNUMBER} 36 1 ${GPIO_ACTIVE_HIGH}
|
|
gpio_set ${GPIOCHIPNUMBER} 41 1 ${GPIO_ACTIVE_HIGH}
|
|
sleep 1
|
|
gpio_set ${GPIOCHIPNUMBER} 41 0 ${GPIO_ACTIVE_HIGH}
|
|
}
|
|
|
|
config_1wire() {
|
|
echo "${0}: Configure 1-Wire ..."
|
|
if ! modprobe ds2482; then
|
|
echo "${0}: *** Error: Failed to load DS2482 kernel module"
|
|
exit 1
|
|
fi
|
|
|
|
sh -c "echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device" || true
|
|
}
|
|
|
|
ADDITIONALFUNC="reset_zigbee config_1wire"
|