LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
libxenon
drivers
xenon_smc
xenon_gpio.c
Go to the documentation of this file.
1
#include <
xenon_smc/xenon_gpio.h
>
2
#include <
pci/io.h
>
3
4
#define SMC_BASE 0xea001000
5
6
void
xenon_gpio_control
(
uint32_t
reg,
uint32_t
clear,
uint32_t
set)
7
{
8
int
r[]={0x20,0x24,0x28,0x30,0x34,0x38,0x40,0x44,0x48};
9
int
b = read32(
SMC_BASE
| r[reg]);
10
b &= ~clear;
11
b |= set;
12
write32(
SMC_BASE
| r[reg], b);
13
}
14
15
void
xenon_gpio_set_oe
(
uint32_t
clear,
uint32_t
set)
16
{
17
write32(
SMC_BASE
+ 0x20, (read32(
SMC_BASE
+ 0x20) &~ clear) | set);
18
}
19
20
void
xenon_gpio_set
(
uint32_t
clear,
uint32_t
set)
21
{
22
write32(
SMC_BASE
+ 0x34, (read32(
SMC_BASE
+ 0x34) &~ clear) | set);
23
}
24
io.h
uint32_t
u32 uint32_t
Definition:
libfdt_env.h:11
xenon_gpio_set_oe
void xenon_gpio_set_oe(uint32_t clear, uint32_t set)
Definition:
xenon_gpio.c:15
SMC_BASE
#define SMC_BASE
Definition:
xenon_gpio.c:4
xenon_gpio_set
void xenon_gpio_set(uint32_t clear, uint32_t set)
Definition:
xenon_gpio.c:20
xenon_gpio_control
void xenon_gpio_control(uint32_t reg, uint32_t clear, uint32_t set)
Definition:
xenon_gpio.c:6
xenon_gpio.h
Generated by
1.9.5