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

Diff for /funnyos/arch/testarm/dev/obio.c between version 1.1.1.1 and 1.3

version 1.1.1.1, 2007/10/16 09:41:04 version 1.3, 2007/10/16 19:34:13
Line 5 
Line 5 
 #include <sys/device.h>  #include <sys/device.h>
 #include <sys/mem.h>  #include <sys/mem.h>
 #include <sys/bus.h>  #include <sys/bus.h>
   
   #include <arch/testarm/dev/obiovar.h>
 #include <libkern/printf.h>  #include <libkern/printf.h>
   
 /*  /*
Line 19 
Line 21 
 int             obio_write_4(struct device *, uint32_t, uint32_t);  int             obio_write_4(struct device *, uint32_t, uint32_t);
   
   
   struct driver obio_dr = {
           sizeof(obio_dd),
           obio_attach,
           obio_detach
   };
   
   
 int  int
 obio_attach(struct device *self)  obio_attach(struct device *self, uint32_t loc, uint8_t flags)
 {  {
         struct busops *aux = self->dv_aux;          struct obio_dd *ddp = self->dv_devdata;
         aux = (struct busops *)kmalloc(sizeof(struct busops));          struct bus_handle *bhp = ddp->od_bh;
         /*  
          * Link bus ops.          bhp->bus_read_1 = obio_read_1;
          */          bhp->bus_read_2 = obio_read_2;
         aux->bus_read_1 = obio_read_1;          bhp->bus_read_4 = obio_read_4;
         aux->bus_read_2 = obio_read_2;          bhp->bus_write_1 = obio_write_1;
         aux->bus_read_4 = obio_read_4;          bhp->bus_write_2 = obio_write_2;
         aux->bus_write_1 = obio_write_1;          bhp->bus_write_4 = obio_write_4;
         aux->bus_write_2 = obio_write_2;  
         aux->bus_write_4 = obio_write_4;  
   
   
         printf("memory-mapped i/o\n");          printf("memory-mapped i/o\n");
   
         return(0);          return(0);
Line 41 
Line 49 
   
   
 uint8_t  uint8_t
 obio_read_1(struct device *devp, uint32_t addr)  obio_read_1(struct obio_dd *ddp, uint32_t addr)
 {  {
         /*          /*
          * struct device is not used in obio.  
          * There is only one on-board i/o bus in testarm.           * There is only one on-board i/o bus in testarm.
          */           */
         return( (*(uint8_t *)addr) );          return( (*(uint8_t *)addr) );
Line 52 
Line 59 
   
   
 uint16_t  uint16_t
 obio_read_2(struct device *devp, uint32_t addr)  obio_read_2(struct obio_dd *ddp, uint32_t addr)
 {  {
         return( (*(uint16_t *)addr) );          return( (*(uint16_t *)addr) );
 }  }
   
   
 uint32_t  uint32_t
 obio_read_4(struct device *devp, uint32_t addr)  obio_read_4(struct obio_dd *ddp, uint32_t addr)
 {  {
         return( (*(uint32_t *)addr) );          return( (*(uint32_t *)addr) );
 }  }
   
   
 int  int
 obio_write_1(struct device *devp, uint32_t addr, uint8_t data)  obio_write_1(struct obio_dd *ddp, uint32_t addr, uint8_t data)
 {  {
         *((uint8_t *)addr) = data;          *((uint8_t *)addr) = data;
   
Line 76 
Line 83 
   
   
 int  int
 obio_write_2(struct device *devp, uint32_t addr, uint16_t data)  obio_write_2(struct obio_dd *ddp, uint32_t addr, uint16_t data)
 {  {
         *((uint16_t *)addr) = data;          *((uint16_t *)addr) = data;
   
Line 85 
Line 92 
   
   
 int  int
 obio_write_4(struct device *devp, uint32_t addr, uint32_t data)  obio_write_4(struct obio_dd *ddp, uint32_t addr, uint32_t data)
 {  {
         *((uint32_t *)addr) = data;          *((uint32_t *)addr) = data;
   

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.3

CVSweb