Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

ipod4g: Explicitly initialize both UARTs

This should allow either accesspory port to be used for IAP comms.

No regressions on an ipodphoto and mini2g through the dock connector,
but I don't have any headset-attached accessories to test against.

Change-Id: If217d8147ee871b20ad5f81ba95542379eb9f2dc

+37 -35
+37 -35
firmware/target/arm/pp/uart-pp.c
··· 48 48 { 49 49 int tmp; 50 50 51 - #if defined(IPOD_COLOR) || defined(IPOD_4G) || defined(IPOD_MINI) || defined(IPOD_MINI2G) 51 + #if defined(IPOD_NANO) || defined(IPOD_VIDEO) 52 + /* Route the Tx/Rx pins. 5G Ipods. ser0, dock conncetor */ 53 + (*(volatile unsigned long *)(0x7000008C)) &= ~0x0C; 54 + GPO32_ENABLE &= ~0x0C; 52 55 53 - /* Route the Tx/Rx pins. 4G Ipod, MINI & MINI2G ser1, dock connector */ 56 + base_RBR = &SER0_RBR; 57 + base_THR = &SER0_THR; 58 + base_LCR = &SER0_LCR; 59 + base_LSR = &SER0_LSR; 60 + base_DLL = &SER0_DLL; 61 + 62 + DEV_EN = DEV_EN | DEV_SER0; 63 + CPU_HI_INT_DIS = SER0_MASK; 64 + 65 + DEV_RS |= DEV_SER0; 66 + sleep(1); 67 + DEV_RS &= ~DEV_SER0; 68 + 69 + SER0_LCR = 0x80; /* Divisor latch enable */ 70 + SER0_DLM = 0x00; 71 + SER0_LCR = 0x03; /* Divisor latch disable, 8-N-1 */ 72 + SER0_IER = 0x01; 73 + 74 + SER0_FCR = 0x07; /* Tx+Rx FIFO reset and FIFO enable */ 75 + 76 + CPU_INT_EN = HI_MASK; 77 + CPU_HI_INT_EN = SER0_MASK; 78 + tmp = SER0_RBR; 79 + 80 + serial_bitrate(0); 81 + 82 + #elif defined(IPOD_COLOR) || defined(IPOD_4G) || defined(IPOD_MINI) || defined(IPOD_MINI2G) 83 + 84 + /* Route the Tx/Rx pins. 4G Ipods, MINI & MINI2G. ser1, dock connector */ 54 85 GPIO_CLEAR_BITWISE(GPIOD_ENABLE, 0x6); 55 86 GPIO_CLEAR_BITWISE(GPIOD_OUTPUT_EN, 0x6); 56 87 ··· 80 111 CPU_HI_INT_EN = SER1_MASK; 81 112 tmp = SER1_RBR; 82 113 83 - #elif defined(IPOD_NANO) || defined(IPOD_VIDEO) 84 - /* Route the Tx/Rx pins. 5G Ipod */ 85 - (*(volatile unsigned long *)(0x7000008C)) &= ~0x0C; 86 - GPO32_ENABLE &= ~0x0C; 87 - 88 - base_RBR = &SER0_RBR; 89 - base_THR = &SER0_THR; 90 - base_LCR = &SER0_LCR; 91 - base_LSR = &SER0_LSR; 92 - base_DLL = &SER0_DLL; 93 - 94 - DEV_EN = DEV_EN | DEV_SER0; 95 - CPU_HI_INT_DIS = SER0_MASK; 96 - 97 - DEV_RS |= DEV_SER0; 98 - sleep(1); 99 - DEV_RS &= ~DEV_SER0; 100 - 101 - SER0_LCR = 0x80; /* Divisor latch enable */ 102 - SER0_DLM = 0x00; 103 - SER0_LCR = 0x03; /* Divisor latch disable, 8-N-1 */ 104 - SER0_IER = 0x01; 105 - 106 - SER0_FCR = 0x07; /* Tx+Rx FIFO reset and FIFO enable */ 114 + serial_bitrate(0); 107 115 108 - CPU_INT_EN = HI_MASK; 109 - CPU_HI_INT_EN = SER0_MASK; 110 - tmp = SER0_RBR; 111 - 112 - #else 113 - 114 - /* Default Route the Tx/Rx pins. 4G Ipod, ser0, top connector */ 115 - 116 + /* Route the Tx/Rx pins. 4G Ipod, ser0, top connector */ 116 117 GPIO_CLEAR_BITWISE(GPIOC_INT_EN, 0x8); 117 118 GPIO_CLEAR_BITWISE(GPIOC_INT_LEV, 0x8); 118 119 GPIOC_INT_CLR = 0x8; ··· 141 142 CPU_HI_INT_EN = SER0_MASK; 142 143 tmp = SER0_RBR; 143 144 145 + serial_bitrate(0); 146 + 144 147 #endif 145 148 146 149 (void)tmp; 147 150 148 - serial_bitrate(0); 149 151 } 150 152 151 153 void serial_bitrate(int rate)