diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2010-02-01 02:06:00 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@kernel.crashing.org> | 2010-02-01 02:06:00 +0100 |
commit | 0362c7a009a79bdfd538cb53e0d8f3193639648d (patch) | |
tree | f5ea243d1425148a78d15cca28f080c1e34b70fa | |
parent | b562b8f5cd04c3207627af9abd22fe667acb052e (diff) |
UART: Fix baud rate setting
-rw-r--r-- | io.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -118,8 +118,14 @@ void io_store(u16 val, u32 addr) printf("IO STORE %04x to %04x\n", val, addr); break; - case 0x3d33: // UART baud rate - printf("SET UART BAUD RATE to %d\n", 27000000 / (0x10000 - val)); + // case 0x3d32: // UART reset + + case 0x3d33: // UART baud rate low byte + printf("SET UART BAUD RATE to %u\n", 27000000 / 16 / (0x10000 - (mem[0x3d34] << 8) - val)); + break; + + case 0x3d34: // UART baud rate high byte + printf("SET UART BAUD RATE to %u\n", 27000000 / 16 / (0x10000 - (val << 8) - mem[0x3d33])); break; case 0x3d35: // UART TX data |