[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.3 and 1.7

version 1.3, 2007/10/16 19:34:13 version 1.7, 2007/10/16 21:01:40
Line 13 
Line 13 
  * testarm obio (on-board i/o) support.   * testarm obio (on-board i/o) support.
  * This is a simple memory read/writes.   * This is a simple memory read/writes.
  */   */
 uint8_t         obio_read_1(struct device *, uint32_t);  int obio_attach(struct device *, uint32_t, uint8_t);
 uint16_t        obio_read_2(struct device *, uint32_t);  
 uint32_t        obio_read_4(struct device *, uint32_t);  
 int             obio_write_1(struct device *, uint32_t, uint8_t);  
 int             obio_write_2(struct device *, uint32_t, uint16_t);  
 int             obio_write_4(struct device *, uint32_t, uint32_t);  
   
   uint8_t         obio_read_1(void *, uint32_t);
   uint16_t        obio_read_2(void *, uint32_t);
   uint32_t        obio_read_4(void *, uint32_t);
   int             obio_write_1(void *, uint32_t, uint8_t);
   int             obio_write_2(void *, uint32_t, uint16_t);
   int             obio_write_4(void *, uint32_t, uint32_t);
   
   
 struct driver obio_dr = {  struct driver obio_dr = {
         sizeof(obio_dd),          sizeof(struct obio_dd),
         obio_attach,          obio_attach,
         obio_detach          NULL
 };  };
   
   
Line 32 
Line 34 
 obio_attach(struct device *self, uint32_t loc, uint8_t flags)  obio_attach(struct device *self, uint32_t loc, uint8_t flags)
 {  {
         struct obio_dd *ddp = self->dv_devdata;          struct obio_dd *ddp = self->dv_devdata;
         struct bus_handle *bhp = ddp->od_bh;          struct bus_handle *bhp = &ddp->od_bh;
   
           ddp->od_locked = 0;
           ddp->od_ndevices = 0;
   
         bhp->bus_read_1 = obio_read_1;          bhp->bus_read_1 = obio_read_1;
         bhp->bus_read_2 = obio_read_2;          bhp->bus_read_2 = obio_read_2;
         bhp->bus_read_4 = obio_read_4;          bhp->bus_read_4 = obio_read_4;
         bhp->bus_write_1 = obio_write_1;          bhp->bus_write_1 = obio_write_1;
         bhp->bus_write_2 = obio_write_2;          bhp->bus_write_2 = obio_write_2;
         bhp->bus_write_4 = obio_write_4;          bhp->bus_write_4 = obio_write_4;
           bhp->dh_ownerdevp = self;       /* XXX UGLY bus_{read|write} stuff will access bus device from bus_handle using this */
   
           /* expose our bus_handle to the world */
           self->dv_aux = bhp;
   
         printf("memory-mapped i/o\n");          printf("memory-mapped i/o\n");
   
Line 49 
Line 57 
   
   
 uint8_t  uint8_t
 obio_read_1(struct obio_dd *ddp, uint32_t addr)  obio_read_1(void *ddp, uint32_t addr)
 {  {
         /*          /*
          * There is only one on-board i/o bus in testarm.           * There is only one on-board i/o bus in testarm.
Line 59 
Line 67 
   
   
 uint16_t  uint16_t
 obio_read_2(struct obio_dd *ddp, uint32_t addr)  obio_read_2(void *ddp, uint32_t addr)
 {  {
         return( (*(uint16_t *)addr) );          return( (*(uint16_t *)addr) );
 }  }
   
   
 uint32_t  uint32_t
 obio_read_4(struct obio_dd *ddp, uint32_t addr)  obio_read_4(void *ddp, uint32_t addr)
 {  {
         return( (*(uint32_t *)addr) );          return( (*(uint32_t *)addr) );
 }  }
   
   
 int  int
 obio_write_1(struct obio_dd *ddp, uint32_t addr, uint8_t data)  obio_write_1(void *ddp, uint32_t addr, uint8_t data)
 {  {
         *((uint8_t *)addr) = data;          *((uint8_t *)addr) = data;
   
Line 83 
Line 91 
   
   
 int  int
 obio_write_2(struct obio_dd *ddp, uint32_t addr, uint16_t data)  obio_write_2(void *ddp, uint32_t addr, uint16_t data)
 {  {
         *((uint16_t *)addr) = data;          *((uint16_t *)addr) = data;
   
Line 92 
Line 100 
   
   
 int  int
 obio_write_4(struct obio_dd *ddp, uint32_t addr, uint32_t data)  obio_write_4(void *ddp, uint32_t addr, uint32_t data)
 {  {
         *((uint32_t *)addr) = data;          *((uint32_t *)addr) = data;
   

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

CVSweb