本文整理汇总了C++中ec_write函数的典型用法代码示例。如果您正苦于以下问题:C++ ec_write函数的具体用法?C++ ec_write怎么用?C++ ec_write使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ec_write函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: lcd_video_output_set
static int lcd_video_output_set(struct output_device *od)
{
unsigned long status = od->request_state;
int value;
if (status == BIT_DISPLAY_LCD_ON) {
/* open LCD */
outb(0x31, 0x3c4);
value = inb(0x3c5);
value = (value & 0xf8) | 0x03;
outb(0x31, 0x3c4);
outb(value, 0x3c5);
/* open backlight */
ec_write(REG_BACKLIGHT_CTRL, BIT_BACKLIGHT_ON);
} else {
/* close backlight */
ec_write(REG_BACKLIGHT_CTRL, BIT_BACKLIGHT_OFF);
/* close LCD */
outb(0x31, 0x3c4);
value = inb(0x3c5);
value = (value & 0xf8) | 0x02;
outb(0x31, 0x3c4);
outb(value, 0x3c5);
}
return 0;
}
开发者ID:RealizeItDream,项目名称:Webee210-WRT,代码行数:27,代码来源:yeeloong_laptop.c
示例2: mainboard_smi_apmc
int mainboard_smi_apmc(u8 data)
{
switch (data) {
case APM_CNT_ACPI_ENABLE:
/* use 0x1600/0x1604 to prevent races with userspace */
ec_set_ports(0x1604, 0x1600);
/* route EC_SCI to SCI */
gpi_route_interrupt(GPE_EC_SCI, GPI_IS_SCI);
/* discard all events, and enable attention */
ec_write(0x80, 0x01);
break;
case APM_CNT_ACPI_DISABLE:
/* we have to use port 0x62/0x66, as 0x1600/0x1604 doesn't
provide a EC query function */
ec_set_ports(0x66, 0x62);
/* route EC_SCI to SMI */
gpi_route_interrupt(GPE_EC_SCI, GPI_IS_SMI);
/* discard all events, and enable attention */
ec_write(0x80, 0x01);
break;
default:
break;
}
return 0;
}
开发者ID:AdriDlu,项目名称:coreboot,代码行数:25,代码来源:smihandler.c
示例3: mainboard_smi_hotkey
static void mainboard_smi_hotkey(u8 hotkey)
{
u8 reg8;
switch (hotkey) {
case 0x3b: break; // Fn+F1
case 0x3c: break; // Fn+F2
case 0x3d: break; // Fn+F3
case 0x3e: break; // Fn+F4
case 0x3f: break; // Fn+F5
case 0x40: // Fn+F6 (Decrease Display Brightness)
reg8 = ec_read(0x17);
reg8 = (reg8 > 8) ? (reg8 - 8) : 0;
ec_write(0x17, reg8);
return;
case 0x41: // Fn+F7 (Increase Display Brightness)
reg8 = ec_read(0x17);
reg8 += 8;
reg8 = (reg8 >= MAX_LCD_BRIGHTNESS) ? MAX_LCD_BRIGHTNESS : reg8;
ec_write(0x17, reg8);
return;
case 0x42: break; // Fn+F8
case 0x43: break; // Fn+F9
case 0x44: break; // Fn+F10
case 0x57: break; // Fn+F11
case 0x58: break; // Fn+F12
}
printk(BIOS_DEBUG, "EC hotkey: %02x\n", hotkey);
}
开发者ID:killbug2004,项目名称:coreboot,代码行数:29,代码来源:smihandler.c
示例4: mainboard_enable
static void mainboard_enable(device_t dev)
{
device_t dev0, idedev;
/* enable Audio */
h8_set_audio_mute(0);
/* If we're resuming from suspend, blink suspend LED */
dev0 = dev_find_slot(0, PCI_DEVFN(0,0));
if (dev0 && pci_read_config32(dev0, SKPAD) == 0xcafed00d)
ec_write(0x0c, 0xc7);
idedev = dev_find_slot(0, PCI_DEVFN(0x1f,1));
if (idedev && idedev->chip_info && dock_ultrabay_device_present()) {
struct southbridge_intel_i82801gx_config *config = idedev->chip_info;
config->ide_enable_primary = 1;
/* enable Ultrabay power */
outb(inb(0x1628) | 0x01, 0x1628);
ec_write(0x0c, 0x84);
} else {
/* disable Ultrabay power */
outb(inb(0x1628) & ~0x01, 0x1628);
ec_write(0x0c, 0x04);
}
}
开发者ID:cristim,项目名称:coreboot,代码行数:25,代码来源:mainboard.c
示例5: mainboard_io_trap_handler
int mainboard_io_trap_handler(int smif)
{
static int smm_initialized;
if (!smm_initialized) {
mainboard_smm_init();
smm_initialized = 1;
}
switch (smif) {
case SMI_DOCK_CONNECT:
ec_clr_bit(0x03, 2);
udelay(250000);
dock_connect();
ec_set_bit(0x03, 2);
/* set dock LED to indicate status */
ec_write(0x0c, 0x09);
ec_write(0x0c, 0x88);
break;
case SMI_DOCK_DISCONNECT:
ec_clr_bit(0x03, 2);
dock_disconnect();
break;
default:
return 0;
}
/* On success, the IO Trap Handler returns 1
* On failure, the IO Trap Handler returns a value != 1 */
return 1;
}
开发者ID:tidatida,项目名称:coreboot,代码行数:33,代码来源:smihandler.c
示例6: mainboard_smi_apmc
int mainboard_smi_apmc(u8 data)
{
u16 pmbase = pci_read_config16(PCI_DEV(0, 0x1f, 0), 0x40) & 0xfffc;
u8 tmp;
printk(BIOS_DEBUG, "%s: pmbase %04X, data %02X\n", __func__, pmbase,
data);
if (!pmbase)
return 0;
switch (data) {
case APM_CNT_ACPI_ENABLE:
/* use 0x1600/0x1604 to prevent races with userspace */
ec_set_ports(0x1604, 0x1600);
/* route EC_SCI to SCI */
outw(inw(pmbase + ALT_GP_SMI_EN) & ~(1 << GPE_EC_SCI), pmbase + ALT_GP_SMI_EN);
tmp = pci_read_config8(PCI_DEV(0, 0x1f, 0), 0xbb);
tmp &= ~0x03;
tmp |= 0x02;
pci_write_config8(PCI_DEV(0, 0x1f, 0), 0xbb, tmp);
/* discard all events, and enable attention */
ec_write(0x80, 0x01);
break;
case APM_CNT_ACPI_DISABLE:
/* we have to use port 0x62/0x66, as 0x1600/0x1604 doesn't
provide a EC query function */
ec_set_ports(0x66, 0x62);
/* route EC_SCI# to SMI */
outw(inw(pmbase + ALT_GP_SMI_EN) | (1 << GPE_EC_SCI),
pmbase + ALT_GP_SMI_EN);
tmp = pci_read_config8(PCI_DEV(0, 0x1f, 0), 0xbb);
tmp &= ~0x03;
tmp |= 0x01;
pci_write_config8(PCI_DEV(0, 0x1f, 0), 0xbb, tmp);
/* discard all events, and enable attention */
ec_write(0x80, 0x01);
break;
case APM_CNT_FINALIZE:
printk(BIOS_DEBUG, "APMC: FINALIZE\n");
if (mainboard_finalized) {
printk(BIOS_DEBUG, "APMC#: Already finalized\n");
return 0;
}
intel_me_finalize_smm();
intel_pch_finalize_smm();
intel_sandybridge_finalize_smm();
intel_model_206ax_finalize_smm();
mainboard_finalized = 1;
break;
default:
break;
}
return 0;
}
开发者ID:tidatida,项目名称:coreboot,代码行数:58,代码来源:smihandler.c
示例7: set_backlight_brightness
static int set_backlight_brightness(struct backlight_device *b)
{
u8 percent = (u8) b->props.brightness;
if (percent < 0 || percent > OT_EC_BL_BRIGHTNESS_MAX)
return -EINVAL;
ec_write(OT_EC_BL_BRIGHTNESS_ADDRESS, percent);
ec_write(OT_EC_BL_CONTROL_ADDRESS, OT_EC_BL_CONTROL_ON_DATA);
return 0;
}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:11,代码来源:intel_oaktrail.c
示例8: ec_enable_WDD
/* make ec enable WDD */
static void ec_enable_WDD(void)
{
unsigned char status;
udelay(EC_REG_DELAY);
status = ec_read(REG_WDTCFG);
ec_write(REG_WDT, 0x28); /* set WDT 5sec(0x28) */
ec_write(REG_WDTCFG, (status & 0x80) | 0x03);
printk(KERN_INFO "Enable WDD ok..................\n");
return;
}
开发者ID:tinyclub,项目名称:preempt-rt-linux,代码行数:13,代码来源:yeeloong_ecrom.c
示例9: ec_disable_WDD
/* make ec disable WDD */
static void ec_disable_WDD(void)
{
unsigned char status;
udelay(EC_REG_DELAY);
status = ec_read(REG_WDTCFG);
ec_write(REG_WDTPF, 0x03);
ec_write(REG_WDTCFG, (status & 0x80) | 0x48);
printk(KERN_INFO "Disable WDD ok..................\n");
return;
}
开发者ID:tinyclub,项目名称:preempt-rt-linux,代码行数:13,代码来源:yeeloong_ecrom.c
示例10: ec_setup
static void ec_setup(void)
{
/* Thermal limits? Values are from ectool's ram dump. */
ec_write(0xd1, 0x57); /* CPUH */
ec_write(0xd2, 0xc9); /* CPUL */
ec_write(0xd4, 0x64); /* SYSH */
ec_write(0xd5, 0xc9); /* SYSL */
send_ec_command(0x04); /* Set_SMI_Enable */
send_ec_command(0xab); /* Set_ACPI_Disable */
send_ec_command(0xac); /* Clr_SYS_Flag? well, why not? */
send_ec_command(0xad); /* Set_Thml_Value */
}
开发者ID:li900309,项目名称:coreboot,代码行数:13,代码来源:mainboard.c
示例11: ec_init_reset_mode
/* enable the chip reset mode */
static int ec_init_reset_mode(void)
{
int timeout;
unsigned char status = 0;
int ret = 0;
/* make chip goto reset mode */
ret = ec_query_seq(CMD_INIT_RESET_MODE);
if (ret < 0) {
printk(KERN_ERR "ec init reset mode failed.\n");
goto out;
}
/* make the action take active */
timeout = EC_CMD_TIMEOUT;
status = ec_read(REG_POWER_MODE) & FLAG_RESET_MODE;
while (timeout--) {
if (status) {
udelay(EC_REG_DELAY);
break;
}
status = ec_read(REG_POWER_MODE) & FLAG_RESET_MODE;
udelay(EC_REG_DELAY);
}
if (timeout <= 0) {
printk(KERN_ERR "ec rom fixup : can't check reset status.\n");
ret = -EINVAL;
} else
printk(KERN_INFO "(%d/%d)reset 0xf710 : 0x%x\n", timeout,
EC_CMD_TIMEOUT - timeout, status);
/* set MCU to reset mode */
udelay(EC_REG_DELAY);
status = ec_read(REG_PXCFG);
status |= (1 << 0);
ec_write(REG_PXCFG, status);
udelay(EC_REG_DELAY);
/* disable FWH/LPC */
udelay(EC_REG_DELAY);
status = ec_read(REG_LPCCFG);
status &= ~(1 << 7);
ec_write(REG_LPCCFG, status);
udelay(EC_REG_DELAY);
printk(KERN_INFO "entering reset mode ok..............\n");
out:
return ret;
}
开发者ID:tinyclub,项目名称:preempt-rt-linux,代码行数:51,代码来源:yeeloong_ecrom.c
示例12: ec_exit_reset_mode
/* make ec exit from reset mode */
static void ec_exit_reset_mode(void)
{
unsigned char regval;
udelay(EC_REG_DELAY);
regval = ec_read(REG_LPCCFG);
regval |= (1 << 7);
ec_write(REG_LPCCFG, regval);
regval = ec_read(REG_PXCFG);
regval &= ~(1 << 0);
ec_write(REG_PXCFG, regval);
printk(KERN_INFO "exit reset mode ok..................\n");
return;
}
开发者ID:tinyclub,项目名称:preempt-rt-linux,代码行数:16,代码来源:yeeloong_ecrom.c
示例13: ml2f_reboot
void ml2f_reboot(void)
{
reset_cpu();
/* sending an reset signal to EC(embedded controller) */
ec_write(REG_RESET, BIT_RESET_ON);
}
开发者ID:mikuhatsune001,项目名称:linux2.6.32,代码行数:7,代码来源:reset.c
示例14: acpi_ec_write_io
static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
size_t count, loff_t *off)
{
/* Use this if support reading/writing multiple ECs exists in ec.c:
* struct acpi_ec *ec = ((struct seq_file *)f->private_data)->private;
*/
unsigned int size = count;
loff_t init_off = *off;
u8 *data = (u8 *) buf;
int err = 0;
if (*off >= EC_SPACE_SIZE)
return 0;
if (*off + count >= EC_SPACE_SIZE) {
size = EC_SPACE_SIZE - *off;
count = size;
}
while (size) {
u8 byte_write = data[*off - init_off];
err = ec_write(*off, byte_write);
if (err)
return err;
*off += 1;
size--;
}
return count;
}
开发者ID:1111saeid,项目名称:jb_kernel_3.0.16_htc_golfu,代码行数:30,代码来源:ec_sys.c
示例15: acpi_ec_sbs_write
static int acpi_ec_sbs_write(struct acpi_sbs *sbs, u8 address, u8 data)
{
int err;
err = ec_write(sbs->base + address, data);
return (err);
}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:7,代码来源:sbs.c
示例16: mainboard_enable
static void mainboard_enable(device_t dev)
{
device_t dev0;
u16 pmbase;
dev->ops->init = mainboard_init;
dev->ops->acpi_fill_ssdt_generator = fill_ssdt;
pmbase = pci_read_config32(dev_find_slot(0, PCI_DEVFN(0x1f, 0)),
PMBASE) & 0xff80;
printk(BIOS_SPEW, " ... pmbase = 0x%04x\n", pmbase);
outl(0, pmbase + SMI_EN);
enable_lapic();
pci_write_config32(dev_find_slot(0, PCI_DEVFN(0x1f, 0)), GPIO_BASE,
DEFAULT_GPIOBASE | 1);
pci_write_config8(dev_find_slot(0, PCI_DEVFN(0x1f, 0)), GPIO_CNTL,
0x10);
/* If we're resuming from suspend, blink suspend LED */
dev0 = dev_find_slot(0, PCI_DEVFN(0, 0));
if (dev0 && pci_read_config32(dev0, SKPAD) == SKPAD_ACPI_S3_MAGIC)
ec_write(0x0c, 0xc7);
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS, GMA_INT15_PANEL_FIT_DEFAULT, GMA_INT15_BOOT_DISPLAY_LFP, 2);
}
开发者ID:tidatida,项目名称:coreboot,代码行数:29,代码来源:mainboard.c
示例17: omnibook_ec_write
static int omnibook_ec_write(const struct omnibook_operation *io_op, u8 data)
{
int retval;
#ifdef CONFIG_ACPI_EC
if (likely(!acpi_disabled)) {
retval = ec_write((u8) io_op->write_addr, data);
// dprintk("ACPI EC write at %lx success %i.\n", io_op->write_addr, retval);
return retval;
}
#endif
spin_lock_irq(&omnibook_ec_lock);
retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
if (retval)
goto end;
outb(OMNIBOOK_EC_CMD_WRITE, OMNIBOOK_EC_SC);
retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
if (retval)
goto end;
outb((u8) io_op->write_addr, OMNIBOOK_EC_DATA);
retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
if (retval)
goto end;
outb(data, OMNIBOOK_EC_DATA);
end:
spin_unlock_irq(&omnibook_ec_lock);
// dprintk("Custom EC write at %lx success %i.\n", io_op->write_addr, retval);
return retval;
}
开发者ID:jmesmon,项目名称:omnibook,代码行数:30,代码来源:ec.c
示例18: acpi_ec_smb_write
static int acpi_ec_smb_write(struct acpi_ec_smbus *smbus, u8 address, u8 data)
{
int err;
err = ec_write(smbus->base + address, data);
return (err);
}
开发者ID:420GrayFox,项目名称:dsl-n55u-bender,代码行数:7,代码来源:i2c_ec.c
示例19: mainboard_enable
static void mainboard_enable(device_t dev)
{
device_t dev0;
u16 pmbase;
dev->ops->init = mainboard_init;
pmbase = pci_read_config32(dev_find_slot(0, PCI_DEVFN(0x1f, 0)),
PMBASE) & 0xff80;
printk(BIOS_SPEW, " ... pmbase = 0x%04x\n", pmbase);
outl(0, pmbase + SMI_EN);
enable_lapic();
pci_write_config32(dev_find_slot(0, PCI_DEVFN(0x1f, 0)), GPIO_BASE,
DEFAULT_GPIOBASE | 1);
pci_write_config8(dev_find_slot(0, PCI_DEVFN(0x1f, 0)), GPIO_CNTL,
0x10);
/* If we're resuming from suspend, blink suspend LED */
dev0 = dev_find_slot(0, PCI_DEVFN(0, 0));
if (dev0 && pci_read_config32(dev0, SKPAD) == SKPAD_ACPI_S3_MAGIC)
ec_write(0x0c, 0xc7);
#if CONFIG_PCI_OPTION_ROM_RUN_YABEL || CONFIG_PCI_OPTION_ROM_RUN_REALMODE
/* Install custom int15 handler for VGA OPROM */
mainboard_interrupt_handlers(0x15, &int15_handler);
#endif
verb_setup();
}
开发者ID:B-Rich,项目名称:coreboot,代码行数:32,代码来源:mainboard.c
示例20: mainboard_init
static void mainboard_init(device_t dev)
{
RCBA32(0x38c8) = 0x00002005;
RCBA32(0x38c4) = 0x00802005;
RCBA32(0x38c0) = 0x00000007;
/* FIXME: trim this down or remove if necessary */
{
int i;
const u8 dmp[256] = {
/* 00 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 10 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 20 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 30 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 40 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 50 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 60 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 70 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 80 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 90 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
printk(BIOS_DEBUG, "Replaying EC dump ...");
for (i = 0; i < 256; i++)
ec_write (i, dmp[i]);
printk(BIOS_DEBUG, "done\n");
}
pc_keyboard_init();
}
开发者ID:theracermaster,项目名称:coreboot_mainboard_acer_aspire-e1-571,代码行数:34,代码来源:mainboard.c
注:本文中的ec_write函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论