[BACK]Return to saapbus.c CVS log [TXT][DIR] Up to [local] / funnyos / arch / sam7s64 / dev

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