Annotation of funnyos/arch/sam7s64/dev/saapbus.c, Revision 1.2
1.1 init 1: /*
1.2 ! init 2: * $Id: saapbus.c,v 1.1 2007/11/09 16:03:49 init Exp $
1.1 init 3: */
4: #include <sys/types.h>
5: #include <sys/device.h>
6: #include <sys/bus.h>
7:
8: #include <arch/sam7s64/dev/saapbusvar.h>
9: #include <libkern/printf.h>
10:
11: /*
12: * SAM7 APB (Advanced Peripheral Bus) support.
13: */
14:
15: int saapbus_attach(struct device *, uint32_t, uint8_t);
16:
17: uint8_t saapbus_read_1(void *, uint32_t);
18: uint16_t saapbus_read_2(void *, uint32_t);
19: uint32_t saapbus_read_4(void *, uint32_t);
20: int saapbus_write_1(void *, uint32_t, uint8_t);
21: int saapbus_write_2(void *, uint32_t, uint16_t);
22: int saapbus_write_4(void *, uint32_t, uint32_t);
23:
24:
25: struct driver saapbus_dr = {
26: sizeof(struct saapbus_dd),
27: saapbus_attach,
28: NULL,
29: NULL
30: };
31:
32:
33: int
1.2 ! init 34: saapbus_attach(struct device *self, uint32_t loc, uint8_t flags)
1.1 init 35: {
36: struct saapbus_dd *ddp = self->dv_devdata;
1.2 ! init 37: struct bus_handle *bhp = &ddp->sd_bushandle;
1.1 init 38:
39: bhp->bus_read_1 = saapbus_read_1;
40: bhp->bus_read_2 = saapbus_read_2;
41: bhp->bus_read_4 = saapbus_read_4;
42: bhp->bus_write_1 = saapbus_write_1;
43: bhp->bus_write_2 = saapbus_write_2;
44: bhp->bus_write_4 = saapbus_write_4;
45: bhp->bh_ownerdd = self->dv_devdata;
46:
47: /* expose our bus_handle to the world */
48: self->dv_aux = bhp;
49:
50: printf("Advanced Peripheral Bus\n");
51:
52: return(0);
53: }
54:
55:
56: uint8_t
57: saapbus_read_1(void *ddp, uint32_t addr)
58: {
59: return( (*(uint8_t *)addr) );
60: }
61:
62:
63: uint16_t
64: saapbus_read_2(void *ddp, uint32_t addr)
65: {
66: return( (*(uint16_t *)addr) );
67: }
68:
69:
70: uint32_t
71: saapbus_read_4(void *ddp, uint32_t addr)
72: {
73: return( (*(uint32_t *)addr) );
74: }
75:
76:
77: int
78: saapbus_write_1(void *ddp, uint32_t addr, uint8_t data)
79: {
80: *((uint8_t *)addr) = data;
81:
82: return(0);
83: }
84:
85:
86: int
87: saapbus_write_2(void *ddp, uint32_t addr, uint16_t data)
88: {
89: *((uint16_t *)addr) = data;
90:
91: return(0);
92: }
93:
94:
95: int
96: saapbus_write_4(void *ddp, uint32_t addr, uint32_t data)
97: {
98: *((uint32_t *)addr) = data;
99:
100: return(0);
101: }
102:
CVSweb