1 /* 2 * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com> 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <asm/io.h> 9 #include <asm/pnp_def.h> 10 11 static void pnp_enter_conf_state(u16 dev) 12 { 13 u16 port = dev >> 8; 14 15 outb(0x55, port); 16 } 17 18 static void pnp_exit_conf_state(u16 dev) 19 { 20 u16 port = dev >> 8; 21 22 outb(0xaa, port); 23 } 24 25 void lpc47m_enable_serial(u16 dev, u16 iobase, u8 irq) 26 { 27 pnp_enter_conf_state(dev); 28 pnp_set_logical_device(dev); 29 pnp_set_enable(dev, 0); 30 pnp_set_iobase(dev, PNP_IDX_IO0, iobase); 31 pnp_set_irq(dev, PNP_IDX_IRQ0, irq); 32 pnp_set_enable(dev, 1); 33 pnp_exit_conf_state(dev); 34 } 35