#!/bin/bash function set_gpio() { #$1 gpio pin echo $1 > /sys/class/gpio/export } function set_gpio_direction(){ #$1 gpio pin, $2 'in','high','low' echo $2 > /sys/class/gpio/gpio$1/direction } function read_gpio_input(){ #$1 read input gpio pin cat /sys/class/gpio/gpio$1/value } function read_present_set_related_power(){ #$1 read present gpio, $2 output power gpio,$3 output direction var=$(cat /sys/class/gpio/gpio$1/value) # present 0 is plugged,present 1 is removal if [ "$var" == "0" ];then set_gpio_direction $2 "high" else set_gpio_direction $2 "low" fi } ## Initial U2_PRESNET_N U2_PRESENT=( 148 149 150 151 152 153 154 155 ) for i in "${U2_PRESENT[@]}"; do set_gpio $i; set_gpio_direction $i 'in'; done ## Initial POWER_U2_EN POWER_U2=( 195 196 202 199 198 197 127 126 ) for i in "${POWER_U2[@]}"; do set_gpio $i; done ## Initial PWRGD_U2 PWRGD_U2=( 161 162 163 164 165 166 167 168 ) for i in "${PWRGD_U2[@]}"; do set_gpio $i; set_gpio_direction $i 'in'; done ### Initial SSD Power reference U2_PRESNET_N for i in {0..7}; do read_present_set_related_power "${U2_PRESENT[$i]}" "${POWER_U2[$i]}"; done exit 0;