| #!/bin/bash -e |
| # shellcheck source=meta-facebook/meta-yosemite4/recipes-yosemite4/plat-tool/files/yosemite4-common-functions |
| source /usr/libexec/yosemite4-common-functions |
| |
| # wait for entity manager |
| mapper wait /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board |
| mapper wait /xyz/openbmc_project/inventory/system/board/Yosemite_4_Medusa_Board |
| |
| # probe devices behind mux for management board cpld |
| mgm_stage=$(get_product_version Management_Board) |
| |
| if [ -z "$mgm_stage" ]; then |
| echo "Failed to check management board fru info, all CPLD I/O expender are keeping default setting" |
| elif [ "$mgm_stage" = "DVT" ] || [ "$mgm_stage" = "EVT" ]; then |
| echo pca9506 "0x20" > /sys/bus/i2c/devices/i2c-13/new_device |
| echo pca9506 "0x21" > /sys/bus/i2c/devices/i2c-13/new_device |
| echo pca9506 "0x22" > /sys/bus/i2c/devices/i2c-13/new_device |
| echo pca9506 "0x23" > /sys/bus/i2c/devices/i2c-13/new_device |
| fi |
| |
| # set initial value for pca9555 i/o pins on medusa board |
| medusa_stage=$(get_product_version Medusa_Board) |
| |
| if [ -z "$medusa_stage" ]; then |
| echo "Failed to check medusa board fru info, all I/O pins are keeping default input" |
| elif [ "$medusa_stage" = "POC" ]; then |
| set_gpio P48V_OCP_GPIO1 0 |
| set_gpio P48V_OCP_GPIO2 0 |
| set_gpio P48V_OCP_GPIO3 0 |
| set_gpio RST_MUX_R_N 1 |
| set_gpio RST_LED_CONTROL_FAN_BOARD_0_N 1 |
| set_gpio RST_LED_CONTROL_FAN_BOARD_1_N 1 |
| set_gpio RST_IOEXP_FAN_BOARD_0_N 1 |
| set_gpio RST_IOEXP_FAN_BOARD_1_N 1 |
| set_gpio HSC_OCP_SLOT_ODD_GPIO3 1 |
| set_gpio HSC_OCP_SLOT_EVEN_GPIO1 1 |
| set_gpio MEDUSA_BOARD_REV_0 0 |
| set_gpio MEDUSA_BOARD_REV_1 0 |
| set_gpio MEDUSA_BOARD_REV_2 0 |
| set_gpio MEDUSA_BOARD_TYPE 0 |
| set_gpio DELTA_MODULE_TYPE 0 |
| set_gpio P12V_HSC_TYPE 0 |
| else |
| set_gpio P48V_OCP_GPIO1 0 |
| set_gpio P48V_OCP_GPIO2 0 |
| set_gpio P48V_OCP_GPIO3 0 |
| set_gpio RST_MUX_R_N 1 |
| set_gpio RST_LED_CONTROL_FAN_BOARD_0_N 1 |
| set_gpio RST_LED_CONTROL_FAN_BOARD_1_N 1 |
| set_gpio RST_IOEXP_FAN_BOARD_0_N 1 |
| set_gpio RST_IOEXP_FAN_BOARD_1_N 1 |
| set_gpio HSC_OCP_SLOT_ODD_GPIO1 0 |
| set_gpio HSC_OCP_SLOT_ODD_GPIO2 0 |
| set_gpio HSC_OCP_SLOT_ODD_GPIO3 0 |
| set_gpio HSC_OCP_SLOT_EVEN_GPIO1 0 |
| set_gpio HSC_OCP_SLOT_EVEN_GPIO2 0 |
| set_gpio HSC_OCP_SLOT_EVEN_GPIO3 0 |
| fi |
| |
| # check adc device on medusa board |
| medusa_model=$(get_product_model Medusa_Board) |
| if [ "$medusa_model" = "Medusa Board ADC-RNS-ISL 12VHSC-ADI 48VHSC-INF" ]; then |
| echo 11-0044 > /sys/bus/i2c/drivers/isl28022/bind |
| else |
| echo 11-0044 > /sys/bus/i2c/drivers/ina238/bind |
| fi |
| |
| exit 0 |