coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
pnp_device.c File Reference
#include <console/console.h>
#include <stdint.h>
#include <arch/io.h>
#include <device/device.h>
#include <device/pnp.h>
Include dependency graph for pnp_device.c:

Go to the source code of this file.

Functions

void pnp_enter_conf_mode (struct device *dev)
 
void pnp_exit_conf_mode (struct device *dev)
 
void pnp_write_config (struct device *dev, u8 reg, u8 value)
 
u8 pnp_read_config (struct device *dev, u8 reg)
 
void pnp_unset_and_set_config (struct device *dev, u8 reg, u8 unset, u8 set)
 
void pnp_set_logical_device (struct device *dev)
 
void pnp_set_enable (struct device *dev, int enable)
 
int pnp_read_enable (struct device *dev)
 
void pnp_set_iobase (struct device *dev, u8 index, u16 iobase)
 
void pnp_set_irq (struct device *dev, u8 index, u8 irq)
 
void pnp_set_drq (struct device *dev, u8 index, u8 drq)
 
void pnp_read_resources (struct device *dev)
 
static void pnp_set_resource (struct device *dev, struct resource *resource)
 
void pnp_set_resources (struct device *dev)
 
void pnp_enable_resources (struct device *dev)
 
void pnp_enable (struct device *dev)
 
void pnp_alt_enable (struct device *dev)
 
static void pnp_get_ioresource (struct device *dev, u8 index, u16 mask)
 
static void get_resources (struct device *dev, struct pnp_info *info)
 
void pnp_enable_devices (struct device *base_dev, struct device_operations *ops, unsigned int functions, struct pnp_info *info)
 

Variables

struct device_operations pnp_ops
 

Function Documentation

◆ get_resources()

◆ pnp_alt_enable()

void pnp_alt_enable ( struct device dev)

Definition at line 191 of file pnp_device.c.

References device::enabled, pnp_enter_conf_mode(), pnp_exit_conf_mode(), pnp_set_enable(), and pnp_set_logical_device().

Here is the call graph for this function:

◆ pnp_enable()

void pnp_enable ( struct device dev)

Definition at line 181 of file pnp_device.c.

References device::enabled, pnp_enter_conf_mode(), pnp_exit_conf_mode(), pnp_set_enable(), and pnp_set_logical_device().

Here is the call graph for this function:

◆ pnp_enable_devices()

void pnp_enable_devices ( struct device base_dev,
struct device_operations ops,
unsigned int  functions,
struct pnp_info info 
)

Definition at line 371 of file pnp_device.c.

References alloc_find_dev(), device::bus, pnp_path::device, DEVICE_PATH_PNP, get_resources(), info, ops, device::ops, device::path, device_path::pnp, PNP_SKIP_FUNCTION, pnp_path::port, and device_path::type.

Referenced by enable_dev().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pnp_enable_resources()

void pnp_enable_resources ( struct device dev)

Definition at line 173 of file pnp_device.c.

References pnp_enter_conf_mode(), pnp_exit_conf_mode(), pnp_set_enable(), and pnp_set_logical_device().

Here is the call graph for this function:

◆ pnp_enter_conf_mode()

◆ pnp_exit_conf_mode()

◆ pnp_get_ioresource()

static void pnp_get_ioresource ( struct device dev,
u8  index,
u16  mask 
)
static

Definition at line 208 of file pnp_device.c.

References resource::align, BIOS_ERR, BIOS_WARNING, dev_path(), resource::flags, resource::gran, resource::index, IORESOURCE_IO, resource::limit, mask, new_resource(), printk, and resource::size.

Referenced by get_resources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pnp_read_config()

◆ pnp_read_enable()

int pnp_read_enable ( struct device dev)

Definition at line 81 of file pnp_device.c.

References pnp_path::device, device::path, device_path::pnp, PNP_IDX_EN, and pnp_read_config().

Here is the call graph for this function:

◆ pnp_read_resources()

void pnp_read_resources ( struct device dev)

Definition at line 114 of file pnp_device.c.

◆ pnp_set_drq()

void pnp_set_drq ( struct device dev,
u8  index,
u8  drq 
)

Definition at line 106 of file pnp_device.c.

References pnp_write_config().

Referenced by pilot_early_init(), and pnp_set_resource().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pnp_set_enable()

◆ pnp_set_iobase()

◆ pnp_set_irq()

void pnp_set_irq ( struct device dev,
u8  index,
u8  irq 
)

Definition at line 100 of file pnp_device.c.

References pnp_write_config().

Referenced by bootblock_mainboard_early_init(), kbc1100_early_init(), kbc1126_com1_init(), kbc1126_kbc_init(), pilot_early_init(), pnp_set_resource(), and smscsuperio_enable_serial().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pnp_set_logical_device()

void pnp_set_logical_device ( struct device dev)

Definition at line 59 of file pnp_device.c.

References pnp_path::device, device::path, device_path::pnp, and pnp_write_config().

Referenced by aspeed_early_config(), aspeed_enable_serial(), ast2400_init(), bmc_init(), bootblock_mainboard_early_init(), early_superio_config(), f71869ad_hwm_init(), fintek_enable_serial(), gpio_init(), init_acpi(), ite_delay_pwrgd3(), ite_enable_3vsbsw(), ite_enable_serial(), ite_evc_conf(), ite_gpio_conf(), ite_sio_write(), kbc1100_early_init(), kbc1100_early_serial(), kbc1126_com1_init(), kbc1126_ec_init(), kbc1126_kbc_init(), kbc1126_mailbox_init(), kbc1126_pm1_init(), lpc47m10x_enable_serial(), lpc47m15x_enable_serial(), lpc_read(), lpc_write(), mainboard_config_superio(), mainboard_configure_super_io(), nct5572d_init(), nsc_enable_serial(), nuvoton_enable_serial(), pc87382_init(), pc87384_init(), pc87417_disable_dev(), pc87417_enable_dev(), pilot_disable_serial(), pilot_early_init(), pilot_enable_serial(), pnp_alt_enable(), pnp_enable(), pnp_enable_resources(), pnp_set_resources(), power_control_init(), reset_gpio_default_in(), reset_gpio_default_od(), sch5545_early_init(), sch5545_enable_uart(), sch5545_get_gpio(), sch5545_init(), sch5545_read_emi_bar(), sch5545_set_drq(), sch5545_set_iobase(), sch5545_set_irq(), set_uart_clock_source(), setup_sio_gpio(), smscsuperio_enable_serial(), w83627dhg_enable_i2c(), wilco_ec_serial_init(), winbond_enable_serial(), and xbus_cfg().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pnp_set_resource()

static void pnp_set_resource ( struct device dev,
struct resource resource 
)
static

◆ pnp_set_resources()

void pnp_set_resources ( struct device dev)

Definition at line 157 of file pnp_device.c.

References resource::next, pnp_enter_conf_mode(), pnp_exit_conf_mode(), pnp_set_logical_device(), pnp_set_resource(), and device::resource_list.

Here is the call graph for this function:

◆ pnp_unset_and_set_config()

void pnp_unset_and_set_config ( struct device dev,
u8  reg,
u8  unset,
u8  set 
)

Definition at line 50 of file pnp_device.c.

References inb(), outb(), device::path, device_path::pnp, pnp_path::port, and value.

Referenced by nuvoton_enable_serial(), and sch5545_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pnp_write_config()

void pnp_write_config ( struct device dev,
u8  reg,
u8  value 
)

Definition at line 38 of file pnp_device.c.

References outb(), device::path, device_path::pnp, pnp_path::port, and value.

Referenced by aspeed_early_config(), ast2400_init(), bmc_init(), bootblock_mainboard_early_init(), early_superio_config(), enable_dev(), enable_hwm_smbus(), f71808a_multifunc_init(), f71869ad_multifunc_init(), f81803a_pme_init(), f81866d_uart_init(), gpio_init(), init_acpi(), it8772f_ac_resume_southbridge(), it8772f_exit_conf(), it8772f_gpio_led(), it8772f_gpio_setup(), ite_delay_pwrgd3(), ite_enable_3vsbsw(), ite_evc_conf(), ite_gpio_conf(), ite_sio_write(), lpc47n217_pnp_set_drq(), lpc47n217_pnp_set_enable(), lpc47n217_pnp_set_iobase(), lpc47n217_pnp_set_irq(), lpc47n227_pnp_set_drq(), lpc47n227_pnp_set_enable(), lpc47n227_pnp_set_iobase(), lpc47n227_pnp_set_irq(), lpc_read(), lpc_write(), mainboard_config_superio(), mainboard_configure_super_io(), nct5572d_init(), pc87384_init(), pnp_set_drq(), pnp_set_enable(), pnp_set_iobase(), pnp_set_irq(), pnp_set_logical_device(), poll_clk_stable(), power_control_init(), reset_gpio_default_in(), reset_gpio_default_od(), route_pins_to_uart(), sch5545_early_init(), sch5545_enable_uart(), sch5545_init(), sch5545_set_drq(), sch5545_set_iobase(), sch5545_set_irq(), set_irq(), set_irq_trigger_type(), set_uart_clock_source(), setup_sio_gpio(), sio1036_enable_serial(), superio_init(), w83627dhg_enable_i2c(), w83627dhg_enable_UR2(), w83627dhg_set_clksel_48(), wilco_ec_serial_init(), winbond_set_clksel_48(), winbond_set_pinmux(), and xbus_cfg().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ pnp_ops

struct device_operations pnp_ops
Initial value:
= {
.read_resources = pnp_read_resources,
.set_resources = pnp_set_resources,
.enable_resources = pnp_enable_resources,
.enable = pnp_enable,
}
void pnp_enable(struct device *dev)
Definition: pnp_device.c:181
void pnp_read_resources(struct device *dev)
Definition: pnp_device.c:114
void pnp_set_resources(struct device *dev)
Definition: pnp_device.c:157
void pnp_enable_resources(struct device *dev)
Definition: pnp_device.c:173

Definition at line 191 of file pnp_device.c.