Initial commit
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Configure GPIOs for Host Power Control
|
||||
|
||||
[Service]
|
||||
Restart=no
|
||||
RemainAfterExit=true
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/env init_once.sh
|
||||
SyslogIdentifier=init_once.sh
|
||||
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Stop Host
|
||||
Requires=host-gpio.service
|
||||
After=host-gpio.service
|
||||
Conflicts=obmc-chassis-power-on@0.target
|
||||
|
||||
[Service]
|
||||
RemainAfterExit=yes
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/env poweroff.sh
|
||||
SyslogIdentifier=poweroff.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=obmc-chassis-power-off@0.target
|
||||
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Start Host
|
||||
Requires=host-gpio.service
|
||||
After=host-gpio.service
|
||||
Conflicts=obmc-chassis-poweroff@0.target
|
||||
|
||||
[Service]
|
||||
RemainAfterExit=yes
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/env poweron.sh
|
||||
SyslogIdentifier=poweron.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=obmc-chassis-poweron@0.target
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set all output GPIOs as such and drive them with reasonable values.
|
||||
function set_gpio_active_low() {
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "set_gpio_active_low: need both GPIO# and initial level";
|
||||
return;
|
||||
fi
|
||||
|
||||
echo "$1" > /sys/class/gpio/export
|
||||
echo 1 > "/sys/class/gpio/gpio$1/active_low"
|
||||
echo "$2" > "/sys/class/gpio/gpio$1/direction"
|
||||
}
|
||||
|
||||
GPIO_BASE=$(cat /sys/devices/platform/ahb/ahb:apb/1e780000.gpio/gpio/*/base)
|
||||
|
||||
# FM_BMC_READY_N, GPIO Q4, active low
|
||||
set_gpio_active_low $((GPIO_BASE + 128 + 4)) high
|
||||
|
||||
# FM_BMC_SSB_SMI_LPC_N, GPIO Q6, active low
|
||||
set_gpio_active_low $((GPIO_BASE + 128 + 6)) high
|
||||
|
||||
# FM_BMC_SYS_THROTTLE_N, GPIO A3, active low
|
||||
set_gpio_active_low $((GPIO_BASE + 0 + 3)) high
|
||||
|
||||
# FM_BMC_SSB_SCI_LPC_N, GPIO E4, active low
|
||||
set_gpio_active_low $((GPIO_BASE + 32 + 4)) high
|
||||
|
||||
# FP_PWR_BTN_PASS_R_N, GPIO D3, active low
|
||||
set_gpio_active_low $((GPIO_BASE + 24 + 3)) high
|
||||
|
||||
exit 0;
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
GPIO_BASE=$(cat /sys/devices/platform/ahb/ahb:apb/1e780000.gpio/gpio/*/base)
|
||||
GPIO_NUM=$((GPIO_BASE + 24 + 3))
|
||||
|
||||
echo 1 > /sys/class/gpio/gpio${GPIO_NUM}/value
|
||||
sleep 5
|
||||
echo 0 > /sys/class/gpio/gpio${GPIO_NUM}/value
|
||||
|
||||
exit 0;
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
GPIO_BASE=$(cat /sys/devices/platform/ahb/ahb:apb/1e780000.gpio/gpio/*/base)
|
||||
GPIO_NUM=$((GPIO_BASE + 24 + 3))
|
||||
|
||||
echo 1 > /sys/class/gpio/gpio${GPIO_NUM}/value
|
||||
sleep 1
|
||||
echo 0 > /sys/class/gpio/gpio${GPIO_NUM}/value
|
||||
|
||||
exit 0;
|
||||
Reference in New Issue
Block a user