static uint64_t reg_read(struct reg_script_context *ctx) { const struct reg_script *step = ctx->step; uint64_t value = 0; switch (step->id) { default: printk(BIOS_ERR, "ERROR - Unknown register set (0x%08x)!\n", step->id); ctx->display_features = REG_SCRIPT_DISPLAY_NOTHING; return 0; case GPE0_REGS: ctx->display_prefix = "GPE0"; value = reg_gpe0_read(step->reg); break; case GPIO_REGS: ctx->display_prefix = "GPIO"; value = reg_gpio_read(step->reg); break; case HOST_BRIDGE: ctx->display_prefix = "Host Bridge"; value = reg_host_bridge_unit_read(step->reg); break; case LEG_GPIO_REGS: ctx->display_prefix = "Legacy GPIO"; value = reg_legacy_gpio_read(step->reg); break; case PCIE_AFE_REGS: ctx->display_prefix = "PCIe AFE"; value = reg_pcie_afe_read(step->reg); break; case RMU_TEMP_REGS: ctx->display_prefix = "RMU TEMP"; value = reg_rmu_temp_read(step->reg); break; case SOC_UNIT_REGS: ctx->display_prefix = "SOC Unit"; value = reg_soc_unit_read(step->reg); break; case USB_PHY_REGS: ctx->display_prefix = "USB PHY"; value = reg_usb_read(step->reg); break; } return value; }
void mainboard_gpio_pcie_reset(uint32_t pin_value) { uint32_t pin_number; uint32_t value; /* Determine the correct PCIe reset pin */ if (IS_ENABLED(CONFIG_GALILEO_GEN2)) pin_number = GEN2_PCI_RESET_RESUMEWELL_GPIO; else pin_number = GEN1_PCI_RESET_RESUMEWELL_GPIO; /* Update the PCIe reset value */ value = reg_legacy_gpio_read(R_QNC_GPIO_RGLVL_RESUME_WELL); value = (value & ~(1 << pin_number)) | ((pin_value & 1) << pin_number); reg_legacy_gpio_write(R_QNC_GPIO_RGLVL_RESUME_WELL, value); }
void mainboard_gpio_i2c_init(device_t dev) { const struct reg_script *script; printk(BIOS_INFO, "Galileo I2C chip initialization\n"); /* Determine the correct script for the board */ if (IS_ENABLED(CONFIG_GALILEO_GEN2)) script = gen2_i2c_init; else /* Determine which I2C address is in use */ script = (reg_legacy_gpio_read (R_QNC_GPIO_RGLVL_RESUME_WELL) & GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO) ? gen1_i2c_0x20_init : gen1_i2c_0x21_init; /* Initialize the I2C chips */ reg_script_run(script); }
void car_mainboard_pre_console_init(void) { const struct reg_script *script; /* Initialize the GPIO controllers */ if (IS_ENABLED(CONFIG_GALILEO_GEN2)) script = gen2_gpio_init; else script = gen1_gpio_init; reg_script_run(script); /* Initialize the RXD and TXD paths for UART0 */ if (IS_ENABLED(CONFIG_ENABLE_BUILTIN_HSUART0)) { if (IS_ENABLED(CONFIG_GALILEO_GEN2)) script = gen2_hsuart0; else script = (reg_legacy_gpio_read( R_QNC_GPIO_RGLVL_RESUME_WELL) & GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO) ? gen1_hsuart0_0x20 : gen1_hsuart0_0x21; reg_script_run(script); } }