@@ -78,8 +78,8 @@ static int bfin_can_set_bittiming(struct net_device *dev)
78
78
if (priv -> can .ctrlmode & CAN_CTRLMODE_3_SAMPLES )
79
79
timing |= SAM ;
80
80
81
- bfin_write ( & reg -> clock , clk );
82
- bfin_write ( & reg -> timing , timing );
81
+ writew ( clk , & reg -> clock );
82
+ writew ( timing , & reg -> timing );
83
83
84
84
netdev_info (dev , "setting CLOCK=0x%04x TIMING=0x%04x\n" , clk , timing );
85
85
@@ -94,16 +94,14 @@ static void bfin_can_set_reset_mode(struct net_device *dev)
94
94
int i ;
95
95
96
96
/* disable interrupts */
97
- bfin_write ( & reg -> mbim1 , 0 );
98
- bfin_write ( & reg -> mbim2 , 0 );
99
- bfin_write ( & reg -> gim , 0 );
97
+ writew ( 0 , & reg -> mbim1 );
98
+ writew ( 0 , & reg -> mbim2 );
99
+ writew ( 0 , & reg -> gim );
100
100
101
101
/* reset can and enter configuration mode */
102
- bfin_write (& reg -> control , SRS | CCR );
103
- SSYNC ();
104
- bfin_write (& reg -> control , CCR );
105
- SSYNC ();
106
- while (!(bfin_read (& reg -> control ) & CCA )) {
102
+ writew (SRS | CCR , & reg -> control );
103
+ writew (CCR , & reg -> control );
104
+ while (!(readw (& reg -> control ) & CCA )) {
107
105
udelay (10 );
108
106
if (-- timeout == 0 ) {
109
107
netdev_err (dev , "fail to enter configuration mode\n" );
@@ -116,34 +114,33 @@ static void bfin_can_set_reset_mode(struct net_device *dev)
116
114
* by writing to CAN Mailbox Configuration Registers 1 and 2
117
115
* For all bits: 0 - Mailbox disabled, 1 - Mailbox enabled
118
116
*/
119
- bfin_write ( & reg -> mc1 , 0 );
120
- bfin_write ( & reg -> mc2 , 0 );
117
+ writew ( 0 , & reg -> mc1 );
118
+ writew ( 0 , & reg -> mc2 );
121
119
122
120
/* Set Mailbox Direction */
123
- bfin_write ( & reg -> md1 , 0xFFFF ); /* mailbox 1-16 are RX */
124
- bfin_write ( & reg -> md2 , 0 ); /* mailbox 17-32 are TX */
121
+ writew ( 0xFFFF , & reg -> md1 ); /* mailbox 1-16 are RX */
122
+ writew ( 0 , & reg -> md2 ); /* mailbox 17-32 are TX */
125
123
126
124
/* RECEIVE_STD_CHL */
127
125
for (i = 0 ; i < 2 ; i ++ ) {
128
- bfin_write ( & reg -> chl [RECEIVE_STD_CHL + i ].id0 , 0 );
129
- bfin_write ( & reg -> chl [RECEIVE_STD_CHL + i ].id1 , AME );
130
- bfin_write ( & reg -> chl [RECEIVE_STD_CHL + i ].dlc , 0 );
131
- bfin_write ( & reg -> msk [RECEIVE_STD_CHL + i ].amh , 0x1FFF );
132
- bfin_write ( & reg -> msk [RECEIVE_STD_CHL + i ].aml , 0xFFFF );
126
+ writew ( 0 , & reg -> chl [RECEIVE_STD_CHL + i ].id0 );
127
+ writew ( AME , & reg -> chl [RECEIVE_STD_CHL + i ].id1 );
128
+ writew ( 0 , & reg -> chl [RECEIVE_STD_CHL + i ].dlc );
129
+ writew ( 0x1FFF , & reg -> msk [RECEIVE_STD_CHL + i ].amh );
130
+ writew ( 0xFFFF , & reg -> msk [RECEIVE_STD_CHL + i ].aml );
133
131
}
134
132
135
133
/* RECEIVE_EXT_CHL */
136
134
for (i = 0 ; i < 2 ; i ++ ) {
137
- bfin_write ( & reg -> chl [RECEIVE_EXT_CHL + i ].id0 , 0 );
138
- bfin_write ( & reg -> chl [RECEIVE_EXT_CHL + i ].id1 , AME | IDE );
139
- bfin_write ( & reg -> chl [RECEIVE_EXT_CHL + i ].dlc , 0 );
140
- bfin_write ( & reg -> msk [RECEIVE_EXT_CHL + i ].amh , 0x1FFF );
141
- bfin_write ( & reg -> msk [RECEIVE_EXT_CHL + i ].aml , 0xFFFF );
135
+ writew ( 0 , & reg -> chl [RECEIVE_EXT_CHL + i ].id0 );
136
+ writew ( AME | IDE , & reg -> chl [RECEIVE_EXT_CHL + i ].id1 );
137
+ writew ( 0 , & reg -> chl [RECEIVE_EXT_CHL + i ].dlc );
138
+ writew ( 0x1FFF , & reg -> msk [RECEIVE_EXT_CHL + i ].amh );
139
+ writew ( 0xFFFF , & reg -> msk [RECEIVE_EXT_CHL + i ].aml );
142
140
}
143
141
144
- bfin_write (& reg -> mc2 , BIT (TRANSMIT_CHL - 16 ));
145
- bfin_write (& reg -> mc1 , BIT (RECEIVE_STD_CHL ) + BIT (RECEIVE_EXT_CHL ));
146
- SSYNC ();
142
+ writew (BIT (TRANSMIT_CHL - 16 ), & reg -> mc2 );
143
+ writew (BIT (RECEIVE_STD_CHL ) + BIT (RECEIVE_EXT_CHL ), & reg -> mc1 );
147
144
148
145
priv -> can .state = CAN_STATE_STOPPED ;
149
146
}
@@ -157,9 +154,9 @@ static void bfin_can_set_normal_mode(struct net_device *dev)
157
154
/*
158
155
* leave configuration mode
159
156
*/
160
- bfin_write ( & reg -> control , bfin_read (& reg -> control ) & ~CCR );
157
+ writew ( readw (& reg -> control ) & ~CCR , & reg -> control );
161
158
162
- while (bfin_read (& reg -> status ) & CCA ) {
159
+ while (readw (& reg -> status ) & CCA ) {
163
160
udelay (10 );
164
161
if (-- timeout == 0 ) {
165
162
netdev_err (dev , "fail to leave configuration mode\n" );
@@ -170,26 +167,25 @@ static void bfin_can_set_normal_mode(struct net_device *dev)
170
167
/*
171
168
* clear _All_ tx and rx interrupts
172
169
*/
173
- bfin_write ( & reg -> mbtif1 , 0xFFFF );
174
- bfin_write ( & reg -> mbtif2 , 0xFFFF );
175
- bfin_write ( & reg -> mbrif1 , 0xFFFF );
176
- bfin_write ( & reg -> mbrif2 , 0xFFFF );
170
+ writew ( 0xFFFF , & reg -> mbtif1 );
171
+ writew ( 0xFFFF , & reg -> mbtif2 );
172
+ writew ( 0xFFFF , & reg -> mbrif1 );
173
+ writew ( 0xFFFF , & reg -> mbrif2 );
177
174
178
175
/*
179
176
* clear global interrupt status register
180
177
*/
181
- bfin_write ( & reg -> gis , 0x7FF ); /* overwrites with '1' */
178
+ writew ( 0x7FF , & reg -> gis ); /* overwrites with '1' */
182
179
183
180
/*
184
181
* Initialize Interrupts
185
182
* - set bits in the mailbox interrupt mask register
186
183
* - global interrupt mask
187
184
*/
188
- bfin_write ( & reg -> mbim1 , BIT (RECEIVE_STD_CHL ) + BIT (RECEIVE_EXT_CHL ));
189
- bfin_write ( & reg -> mbim2 , BIT (TRANSMIT_CHL - 16 ));
185
+ writew ( BIT (RECEIVE_STD_CHL ) + BIT (RECEIVE_EXT_CHL ), & reg -> mbim1 );
186
+ writew ( BIT (TRANSMIT_CHL - 16 ), & reg -> mbim2 );
190
187
191
- bfin_write (& reg -> gim , EPIM | BOIM | RMLIM );
192
- SSYNC ();
188
+ writew (EPIM | BOIM | RMLIM , & reg -> gim );
193
189
}
194
190
195
191
static void bfin_can_start (struct net_device * dev )
@@ -226,7 +222,7 @@ static int bfin_can_get_berr_counter(const struct net_device *dev,
226
222
struct bfin_can_priv * priv = netdev_priv (dev );
227
223
struct bfin_can_regs __iomem * reg = priv -> membase ;
228
224
229
- u16 cec = bfin_read (& reg -> cec );
225
+ u16 cec = readw (& reg -> cec );
230
226
231
227
bec -> txerr = cec >> 8 ;
232
228
bec -> rxerr = cec ;
@@ -252,28 +248,28 @@ static int bfin_can_start_xmit(struct sk_buff *skb, struct net_device *dev)
252
248
253
249
/* fill id */
254
250
if (id & CAN_EFF_FLAG ) {
255
- bfin_write ( & reg -> chl [TRANSMIT_CHL ].id0 , id );
251
+ writew ( id , & reg -> chl [TRANSMIT_CHL ].id0 );
256
252
val = ((id & 0x1FFF0000 ) >> 16 ) | IDE ;
257
253
} else
258
254
val = (id << 2 );
259
255
if (id & CAN_RTR_FLAG )
260
256
val |= RTR ;
261
- bfin_write ( & reg -> chl [TRANSMIT_CHL ].id1 , val | AME );
257
+ writew ( val | AME , & reg -> chl [TRANSMIT_CHL ].id1 );
262
258
263
259
/* fill payload */
264
260
for (i = 0 ; i < 8 ; i += 2 ) {
265
261
val = ((7 - i ) < dlc ? (data [7 - i ]) : 0 ) +
266
262
((6 - i ) < dlc ? (data [6 - i ] << 8 ) : 0 );
267
- bfin_write ( & reg -> chl [TRANSMIT_CHL ].data [i ], val );
263
+ writew ( val , & reg -> chl [TRANSMIT_CHL ].data [i ]);
268
264
}
269
265
270
266
/* fill data length code */
271
- bfin_write ( & reg -> chl [TRANSMIT_CHL ].dlc , dlc );
267
+ writew ( dlc , & reg -> chl [TRANSMIT_CHL ].dlc );
272
268
273
269
can_put_echo_skb (skb , dev , 0 );
274
270
275
271
/* set transmit request */
276
- bfin_write ( & reg -> trs2 , BIT (TRANSMIT_CHL - 16 ));
272
+ writew ( BIT (TRANSMIT_CHL - 16 ), & reg -> trs2 );
277
273
278
274
return 0 ;
279
275
}
@@ -296,26 +292,26 @@ static void bfin_can_rx(struct net_device *dev, u16 isrc)
296
292
/* get id */
297
293
if (isrc & BIT (RECEIVE_EXT_CHL )) {
298
294
/* extended frame format (EFF) */
299
- cf -> can_id = ((bfin_read (& reg -> chl [RECEIVE_EXT_CHL ].id1 )
295
+ cf -> can_id = ((readw (& reg -> chl [RECEIVE_EXT_CHL ].id1 )
300
296
& 0x1FFF ) << 16 )
301
- + bfin_read (& reg -> chl [RECEIVE_EXT_CHL ].id0 );
297
+ + readw (& reg -> chl [RECEIVE_EXT_CHL ].id0 );
302
298
cf -> can_id |= CAN_EFF_FLAG ;
303
299
obj = RECEIVE_EXT_CHL ;
304
300
} else {
305
301
/* standard frame format (SFF) */
306
- cf -> can_id = (bfin_read (& reg -> chl [RECEIVE_STD_CHL ].id1 )
302
+ cf -> can_id = (readw (& reg -> chl [RECEIVE_STD_CHL ].id1 )
307
303
& 0x1ffc ) >> 2 ;
308
304
obj = RECEIVE_STD_CHL ;
309
305
}
310
- if (bfin_read (& reg -> chl [obj ].id1 ) & RTR )
306
+ if (readw (& reg -> chl [obj ].id1 ) & RTR )
311
307
cf -> can_id |= CAN_RTR_FLAG ;
312
308
313
309
/* get data length code */
314
- cf -> can_dlc = get_can_dlc (bfin_read (& reg -> chl [obj ].dlc ) & 0xF );
310
+ cf -> can_dlc = get_can_dlc (readw (& reg -> chl [obj ].dlc ) & 0xF );
315
311
316
312
/* get payload */
317
313
for (i = 0 ; i < 8 ; i += 2 ) {
318
- val = bfin_read (& reg -> chl [obj ].data [i ]);
314
+ val = readw (& reg -> chl [obj ].data [i ]);
319
315
cf -> data [7 - i ] = (7 - i ) < cf -> can_dlc ? val : 0 ;
320
316
cf -> data [6 - i ] = (6 - i ) < cf -> can_dlc ? (val >> 8 ) : 0 ;
321
317
}
@@ -369,7 +365,7 @@ static int bfin_can_err(struct net_device *dev, u16 isrc, u16 status)
369
365
370
366
if (state != priv -> can .state && (state == CAN_STATE_ERROR_WARNING ||
371
367
state == CAN_STATE_ERROR_PASSIVE )) {
372
- u16 cec = bfin_read (& reg -> cec );
368
+ u16 cec = readw (& reg -> cec );
373
369
u8 rxerr = cec ;
374
370
u8 txerr = cec >> 8 ;
375
371
@@ -420,23 +416,23 @@ static irqreturn_t bfin_can_interrupt(int irq, void *dev_id)
420
416
struct net_device_stats * stats = & dev -> stats ;
421
417
u16 status , isrc ;
422
418
423
- if ((irq == priv -> tx_irq ) && bfin_read (& reg -> mbtif2 )) {
419
+ if ((irq == priv -> tx_irq ) && readw (& reg -> mbtif2 )) {
424
420
/* transmission complete interrupt */
425
- bfin_write ( & reg -> mbtif2 , 0xFFFF );
421
+ writew ( 0xFFFF , & reg -> mbtif2 );
426
422
stats -> tx_packets ++ ;
427
- stats -> tx_bytes += bfin_read (& reg -> chl [TRANSMIT_CHL ].dlc );
423
+ stats -> tx_bytes += readw (& reg -> chl [TRANSMIT_CHL ].dlc );
428
424
can_get_echo_skb (dev , 0 );
429
425
netif_wake_queue (dev );
430
- } else if ((irq == priv -> rx_irq ) && bfin_read (& reg -> mbrif1 )) {
426
+ } else if ((irq == priv -> rx_irq ) && readw (& reg -> mbrif1 )) {
431
427
/* receive interrupt */
432
- isrc = bfin_read (& reg -> mbrif1 );
433
- bfin_write ( & reg -> mbrif1 , 0xFFFF );
428
+ isrc = readw (& reg -> mbrif1 );
429
+ writew ( 0xFFFF , & reg -> mbrif1 );
434
430
bfin_can_rx (dev , isrc );
435
- } else if ((irq == priv -> err_irq ) && bfin_read (& reg -> gis )) {
431
+ } else if ((irq == priv -> err_irq ) && readw (& reg -> gis )) {
436
432
/* error interrupt */
437
- isrc = bfin_read (& reg -> gis );
438
- status = bfin_read (& reg -> esr );
439
- bfin_write ( & reg -> gis , 0x7FF );
433
+ isrc = readw (& reg -> gis );
434
+ status = readw (& reg -> esr );
435
+ writew ( 0x7FF , & reg -> gis );
440
436
bfin_can_err (dev , isrc , status );
441
437
} else {
442
438
return IRQ_NONE ;
@@ -641,9 +637,8 @@ static int bfin_can_suspend(struct platform_device *pdev, pm_message_t mesg)
641
637
642
638
if (netif_running (dev )) {
643
639
/* enter sleep mode */
644
- bfin_write (& reg -> control , bfin_read (& reg -> control ) | SMR );
645
- SSYNC ();
646
- while (!(bfin_read (& reg -> intr ) & SMACK )) {
640
+ writew (readw (& reg -> control ) | SMR , & reg -> control );
641
+ while (!(readw (& reg -> intr ) & SMACK )) {
647
642
udelay (10 );
648
643
if (-- timeout == 0 ) {
649
644
netdev_err (dev , "fail to enter sleep mode\n" );
@@ -663,8 +658,7 @@ static int bfin_can_resume(struct platform_device *pdev)
663
658
664
659
if (netif_running (dev )) {
665
660
/* leave sleep mode */
666
- bfin_write (& reg -> intr , 0 );
667
- SSYNC ();
661
+ writew (0 , & reg -> intr );
668
662
}
669
663
670
664
return 0 ;
0 commit comments