[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.1

1.1     ! init        1: /*
        !             2:  * $Id$
        !             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
        !            34: saapbus_attach(struct device *self, uint32_t loc, uint32_t flags)
        !            35: {
        !            36:        struct saapbus_dd *ddp = self->dv_devdata;
        !            37:        struct bus_handle *bhp = &ddp->od_bh;
        !            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