Commit c588de3d27e442687121379efc26b36d89ee953f
1 parent
d361be25
omap1: add OSC_12M_SEL UART register support (original patch from Jean-Christophe PLAGNIOL-VILLARD)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5905 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
17 additions
and
10 deletions
hw/omap1.c
| @@ -1966,6 +1966,7 @@ struct omap_uart_s { | @@ -1966,6 +1966,7 @@ struct omap_uart_s { | ||
| 1966 | uint8_t cfps; | 1966 | uint8_t cfps; |
| 1967 | uint8_t mdr[2]; | 1967 | uint8_t mdr[2]; |
| 1968 | uint8_t scr; | 1968 | uint8_t scr; |
| 1969 | + uint8_t clksel; | ||
| 1969 | }; | 1970 | }; |
| 1970 | 1971 | ||
| 1971 | void omap_uart_reset(struct omap_uart_s *s) | 1972 | void omap_uart_reset(struct omap_uart_s *s) |
| @@ -1974,6 +1975,7 @@ void omap_uart_reset(struct omap_uart_s *s) | @@ -1974,6 +1975,7 @@ void omap_uart_reset(struct omap_uart_s *s) | ||
| 1974 | s->syscontrol = 0; | 1975 | s->syscontrol = 0; |
| 1975 | s->wkup = 0x3f; | 1976 | s->wkup = 0x3f; |
| 1976 | s->cfps = 0x69; | 1977 | s->cfps = 0x69; |
| 1978 | + s->clksel = 0; | ||
| 1977 | } | 1979 | } |
| 1978 | 1980 | ||
| 1979 | struct omap_uart_s *omap_uart_init(target_phys_addr_t base, | 1981 | struct omap_uart_s *omap_uart_init(target_phys_addr_t base, |
| @@ -2006,17 +2008,19 @@ static uint32_t omap_uart_read(void *opaque, target_phys_addr_t addr) | @@ -2006,17 +2008,19 @@ static uint32_t omap_uart_read(void *opaque, target_phys_addr_t addr) | ||
| 2006 | return s->scr; | 2008 | return s->scr; |
| 2007 | case 0x44: /* SSR */ | 2009 | case 0x44: /* SSR */ |
| 2008 | return 0x0; | 2010 | return 0x0; |
| 2009 | - case 0x48: /* EBLR */ | 2011 | + case 0x48: /* EBLR (OMAP2) */ |
| 2010 | return s->eblr; | 2012 | return s->eblr; |
| 2013 | + case 0x4C: /* OSC_12M_SEL (OMAP1) */ | ||
| 2014 | + return s->clksel; | ||
| 2011 | case 0x50: /* MVR */ | 2015 | case 0x50: /* MVR */ |
| 2012 | return 0x30; | 2016 | return 0x30; |
| 2013 | - case 0x54: /* SYSC */ | 2017 | + case 0x54: /* SYSC (OMAP2) */ |
| 2014 | return s->syscontrol; | 2018 | return s->syscontrol; |
| 2015 | - case 0x58: /* SYSS */ | 2019 | + case 0x58: /* SYSS (OMAP2) */ |
| 2016 | return 1; | 2020 | return 1; |
| 2017 | - case 0x5c: /* WER */ | 2021 | + case 0x5c: /* WER (OMAP2) */ |
| 2018 | return s->wkup; | 2022 | return s->wkup; |
| 2019 | - case 0x60: /* CFPS */ | 2023 | + case 0x60: /* CFPS (OMAP2) */ |
| 2020 | return s->cfps; | 2024 | return s->cfps; |
| 2021 | } | 2025 | } |
| 2022 | 2026 | ||
| @@ -2040,23 +2044,26 @@ static void omap_uart_write(void *opaque, target_phys_addr_t addr, | @@ -2040,23 +2044,26 @@ static void omap_uart_write(void *opaque, target_phys_addr_t addr, | ||
| 2040 | case 0x40: /* SCR */ | 2044 | case 0x40: /* SCR */ |
| 2041 | s->scr = value & 0xff; | 2045 | s->scr = value & 0xff; |
| 2042 | break; | 2046 | break; |
| 2043 | - case 0x48: /* EBLR */ | 2047 | + case 0x48: /* EBLR (OMAP2) */ |
| 2044 | s->eblr = value & 0xff; | 2048 | s->eblr = value & 0xff; |
| 2045 | break; | 2049 | break; |
| 2050 | + case 0x4C: /* OSC_12M_SEL (OMAP1) */ | ||
| 2051 | + s->clksel = value & 1; | ||
| 2052 | + break; | ||
| 2046 | case 0x44: /* SSR */ | 2053 | case 0x44: /* SSR */ |
| 2047 | case 0x50: /* MVR */ | 2054 | case 0x50: /* MVR */ |
| 2048 | - case 0x58: /* SYSS */ | 2055 | + case 0x58: /* SYSS (OMAP2) */ |
| 2049 | OMAP_RO_REG(addr); | 2056 | OMAP_RO_REG(addr); |
| 2050 | break; | 2057 | break; |
| 2051 | - case 0x54: /* SYSC */ | 2058 | + case 0x54: /* SYSC (OMAP2) */ |
| 2052 | s->syscontrol = value & 0x1d; | 2059 | s->syscontrol = value & 0x1d; |
| 2053 | if (value & 2) | 2060 | if (value & 2) |
| 2054 | omap_uart_reset(s); | 2061 | omap_uart_reset(s); |
| 2055 | break; | 2062 | break; |
| 2056 | - case 0x5c: /* WER */ | 2063 | + case 0x5c: /* WER (OMAP2) */ |
| 2057 | s->wkup = value & 0x7f; | 2064 | s->wkup = value & 0x7f; |
| 2058 | break; | 2065 | break; |
| 2059 | - case 0x60: /* CFPS */ | 2066 | + case 0x60: /* CFPS (OMAP2) */ |
| 2060 | s->cfps = value & 0xff; | 2067 | s->cfps = value & 0xff; |
| 2061 | break; | 2068 | break; |
| 2062 | default: | 2069 | default: |