diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2008-10-20 11:17:52 +0900 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2008-10-20 11:17:52 +0900 |
| commit | 4cb40f795af36b3deb743f6ccf6c3fd542c61c8d (patch) | |
| tree | db3d7519932549bf528f5b8e4cb8350356cd544d /sound/pci/oxygen/oxygen_io.c | |
| parent | Merge branch 'sh/gpiolib' (diff) | |
| parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 (diff) | |
| download | linux-4cb40f795af36b3deb743f6ccf6c3fd542c61c8d.tar.gz linux-4cb40f795af36b3deb743f6ccf6c3fd542c61c8d.zip | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
Documentation/kernel-parameters.txt
arch/sh/include/asm/elf.h
Diffstat (limited to 'sound/pci/oxygen/oxygen_io.c')
| -rw-r--r-- | sound/pci/oxygen/oxygen_io.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sound/pci/oxygen/oxygen_io.c b/sound/pci/oxygen/oxygen_io.c index 83f135f80df4..3126c4b403dd 100644 --- a/sound/pci/oxygen/oxygen_io.c +++ b/sound/pci/oxygen/oxygen_io.c @@ -20,6 +20,7 @@ #include <linux/delay.h> #include <linux/sched.h> #include <sound/core.h> +#include <sound/mpu401.h> #include <asm/io.h> #include "oxygen.h" @@ -232,3 +233,24 @@ void oxygen_write_i2c(struct oxygen *chip, u8 device, u8 map, u8 data) device | OXYGEN_2WIRE_DIR_WRITE); } EXPORT_SYMBOL(oxygen_write_i2c); + +static void _write_uart(struct oxygen *chip, unsigned int port, u8 data) +{ + if (oxygen_read8(chip, OXYGEN_MPU401 + 1) & MPU401_TX_FULL) + msleep(1); + oxygen_write8(chip, OXYGEN_MPU401 + port, data); +} + +void oxygen_reset_uart(struct oxygen *chip) +{ + _write_uart(chip, 1, MPU401_RESET); + msleep(1); /* wait for ACK */ + _write_uart(chip, 1, MPU401_ENTER_UART); +} +EXPORT_SYMBOL(oxygen_reset_uart); + +void oxygen_write_uart(struct oxygen *chip, u8 data) +{ + _write_uart(chip, 0, data); +} +EXPORT_SYMBOL(oxygen_write_uart); |
