• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <arch/io.h>
4 #include <device/pnp_ops.h>
5 #include "sch555x.h"
6 
sch555x_emi_read8(uint16_t addr)7 uint8_t sch555x_emi_read8(uint16_t addr)
8 {
9 	outw(addr | 0x8000, SCH555x_EMI_IOBASE + 2);
10 	return inb(SCH555x_EMI_IOBASE + 4);
11 }
12 
sch555x_emi_read16(uint16_t addr)13 uint16_t sch555x_emi_read16(uint16_t addr)
14 {
15 	outw(addr | 0x8001, SCH555x_EMI_IOBASE + 2);
16 	return inw(SCH555x_EMI_IOBASE + 4);
17 }
18 
sch555x_emi_read32(uint16_t addr)19 uint32_t sch555x_emi_read32(uint16_t addr)
20 {
21 	outw(addr | 0x8002, SCH555x_EMI_IOBASE + 2);
22 	return inl(SCH555x_EMI_IOBASE + 4);
23 }
24 
sch555x_emi_write8(uint16_t addr,uint8_t val)25 void sch555x_emi_write8(uint16_t addr, uint8_t val)
26 {
27 	outw(addr | 0x8000, SCH555x_EMI_IOBASE + 2);
28 	outb(val, SCH555x_EMI_IOBASE + 4);
29 }
30 
sch555x_emi_write16(uint16_t addr,uint16_t val)31 void sch555x_emi_write16(uint16_t addr, uint16_t val)
32 {
33 	outw(addr | 0x8001, SCH555x_EMI_IOBASE + 2);
34 	outw(val, SCH555x_EMI_IOBASE + 4);
35 }
36 
sch555x_emi_write32(uint16_t addr,uint32_t val)37 void sch555x_emi_write32(uint16_t addr, uint32_t val)
38 {
39 	outw(addr | 0x8002, SCH555x_EMI_IOBASE + 2);
40 	outl(val, SCH555x_EMI_IOBASE + 4);
41 }
42