Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
R
Rk3576 Downstream U-Boot
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Nicolas Frattaroli
Rk3576 Downstream U-Boot
Commits
8123eee8
Commit
8123eee8
authored
19 years ago
by
Wolfgang Denk
Browse files
Options
Downloads
Patches
Plain Diff
Add CPM2 I/O pin functions for MPC85xx processors
Patch by Murray Jensen, 08 Jul 2005
parent
7c60908f
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
CHANGELOG
+3
-0
3 additions, 0 deletions
CHANGELOG
include/asm-ppc/iopin_85xx.h
+146
-0
146 additions, 0 deletions
include/asm-ppc/iopin_85xx.h
with
149 additions
and
0 deletions
CHANGELOG
+
3
−
0
View file @
8123eee8
...
...
@@ -2,6 +2,9 @@
Changes since U-Boot 1.1.4:
======================================================================
* Add CPM2 I/O pin functions for MPC85xx processors
Patch by Murray Jensen, 08 Jul 2005
* Fix compile problem
* Added PCI support for MPC8349ADS board
...
...
This diff is collapsed.
Click to expand it.
include/asm-ppc/iopin_85xx.h
0 → 100644
+
146
−
0
View file @
8123eee8
/*
* MPC85xx I/O port pin manipulation functions
*/
#ifndef _ASM_IOPIN_85xx_H_
#define _ASM_IOPIN_85xx_H_
#include
<linux/types.h>
#include
<asm/immap_85xx.h>
#ifdef __KERNEL__
typedef
struct
{
u_char
port
:
2
;
/* port number (A=0, B=1, C=2, D=3) */
u_char
pin
:
5
;
/* port pin (0-31) */
u_char
flag
:
1
;
/* for whatever */
}
iopin_t
;
#define IOPIN_PORTA 0
#define IOPIN_PORTB 1
#define IOPIN_PORTC 2
#define IOPIN_PORTD 3
extern
__inline__
void
iopin_set_high
(
iopin_t
*
iopin
)
{
volatile
uint
*
datp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdata
;
datp
[
iopin
->
port
*
8
]
|=
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
void
iopin_set_low
(
iopin_t
*
iopin
)
{
volatile
uint
*
datp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdata
;
datp
[
iopin
->
port
*
8
]
&=
~
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
uint
iopin_is_high
(
iopin_t
*
iopin
)
{
volatile
uint
*
datp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdata
;
return
(
datp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
;
}
extern
__inline__
uint
iopin_is_low
(
iopin_t
*
iopin
)
{
volatile
uint
*
datp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdata
;
return
((
datp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
)
^
1
;
}
extern
__inline__
void
iopin_set_out
(
iopin_t
*
iopin
)
{
volatile
uint
*
dirp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdira
;
dirp
[
iopin
->
port
*
8
]
|=
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
void
iopin_set_in
(
iopin_t
*
iopin
)
{
volatile
uint
*
dirp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdira
;
dirp
[
iopin
->
port
*
8
]
&=
~
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
uint
iopin_is_out
(
iopin_t
*
iopin
)
{
volatile
uint
*
dirp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdira
;
return
(
dirp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
;
}
extern
__inline__
uint
iopin_is_in
(
iopin_t
*
iopin
)
{
volatile
uint
*
dirp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
pdira
;
return
((
dirp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
)
^
1
;
}
extern
__inline__
void
iopin_set_odr
(
iopin_t
*
iopin
)
{
volatile
uint
*
odrp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
podra
;
odrp
[
iopin
->
port
*
8
]
|=
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
void
iopin_set_act
(
iopin_t
*
iopin
)
{
volatile
uint
*
odrp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
podra
;
odrp
[
iopin
->
port
*
8
]
&=
~
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
uint
iopin_is_odr
(
iopin_t
*
iopin
)
{
volatile
uint
*
odrp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
podra
;
return
(
odrp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
;
}
extern
__inline__
uint
iopin_is_act
(
iopin_t
*
iopin
)
{
volatile
uint
*
odrp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
podra
;
return
((
odrp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
)
^
1
;
}
extern
__inline__
void
iopin_set_ded
(
iopin_t
*
iopin
)
{
volatile
uint
*
parp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
ppara
;
parp
[
iopin
->
port
*
8
]
|=
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
void
iopin_set_gen
(
iopin_t
*
iopin
)
{
volatile
uint
*
parp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
ppara
;
parp
[
iopin
->
port
*
8
]
&=
~
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
uint
iopin_is_ded
(
iopin_t
*
iopin
)
{
volatile
uint
*
parp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
ppara
;
return
(
parp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
;
}
extern
__inline__
uint
iopin_is_gen
(
iopin_t
*
iopin
)
{
volatile
uint
*
parp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
ppara
;
return
((
parp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
)
^
1
;
}
extern
__inline__
void
iopin_set_opt2
(
iopin_t
*
iopin
)
{
volatile
uint
*
sorp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
psora
;
sorp
[
iopin
->
port
*
8
]
|=
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
void
iopin_set_opt1
(
iopin_t
*
iopin
)
{
volatile
uint
*
sorp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
psora
;
sorp
[
iopin
->
port
*
8
]
&=
~
(
1
<<
(
31
-
iopin
->
pin
));
}
extern
__inline__
uint
iopin_is_opt2
(
iopin_t
*
iopin
)
{
volatile
uint
*
sorp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
psora
;
return
(
sorp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
;
}
extern
__inline__
uint
iopin_is_opt1
(
iopin_t
*
iopin
)
{
volatile
uint
*
sorp
=
&
((
immap_t
*
)
CFG_IMMR
)
->
im_cpm
.
im_cpm_iop
.
psora
;
return
((
sorp
[
iopin
->
port
*
8
]
>>
(
31
-
iopin
->
pin
))
&
1
)
^
1
;
}
#endif
/* __KERNEL__ */
#endif
/* _ASM_IOPIN_85xx_H_ */
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment