diff --git a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c index 870aa523cf..036b7db127 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c @@ -214,22 +214,6 @@ static void parse_button_state(unsigned char *buf) #endif } -/* HID Slave Select - GIO14 */ -#define HID_SS (1<<14) - -static inline void select_hid(bool on) -{ - if (on == true) - { - /* SS is active low */ - IO_GIO_BITCLR0 = HID_SS; - } - else - { - IO_GIO_BITSET0 = HID_SS; - } -} - static void spi_txrx(unsigned char *buf_tx, unsigned char *buf_rx, int n) { int i; @@ -239,7 +223,6 @@ static void spi_txrx(unsigned char *buf_tx, unsigned char *buf_rx, int n) bitset16(&IO_CLK_MOD2, CLK_MOD2_SIF1); IO_SERIAL1_TX_ENABLE = 0x0001; - select_hid(true); for (i = 0; i 200 kHz */ IO_SERIAL1_MODE = 0x6DB; diff --git a/firmware/target/arm/tms320dm320/sansa-connect/backlight-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/backlight-sansaconnect.c index b7989849d7..50301c0237 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/backlight-sansaconnect.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/backlight-sansaconnect.c @@ -53,6 +53,13 @@ static void _backlight_write_brightness(int brightness) void _backlight_on(void) { +#ifdef HAVE_LCD_SLEEP + if (!lcd_active()) + { + lcd_awake(); + lcd_update(); + } +#endif /* set GIO34 as PWM1 */ IO_GIO_FSEL3 = (IO_GIO_FSEL3 & 0xFFF3) | (1 << 2); diff --git a/firmware/target/arm/tms320dm320/sansa-connect/usb-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/usb-sansaconnect.c index ab42beb2b4..979b1b9eb2 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/usb-sansaconnect.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/usb-sansaconnect.c @@ -40,6 +40,14 @@ int usb_detect(void) void usb_init_device(void) { + /* set TNETV USB nreset high */ + IO_GIO_DIR0 &= ~(1 << 7); + IO_GIO_BITSET0 = (1 << 7); + + /* set VLYNQ port functions */ + IO_GIO_FSEL1 = 0xAAAA; + IO_GIO_FSEL2 = (IO_GIO_FSEL2 & 0xFFF0) | 0xA; + return; } diff --git a/firmware/target/arm/tms320dm320/system-dm320.c b/firmware/target/arm/tms320dm320/system-dm320.c index 029aecc610..37d06f4343 100644 --- a/firmware/target/arm/tms320dm320/system-dm320.c +++ b/firmware/target/arm/tms320dm320/system-dm320.c @@ -344,7 +344,10 @@ void system_init(void) IO_TIMER2_TMMD = CONFIG_TIMER2_TMMD_STOP; IO_TIMER3_TMMD = CONFIG_TIMER3_TMMD_STOP; +#ifndef SANSA_CONNECT + /* UART1 is not used on Sansa Connect - don't power it up */ uart_init(); +#endif spi_init(); #ifdef MROBE_500 @@ -359,9 +362,9 @@ void system_init(void) #endif #ifdef SANSA_CONNECT - /* keep WIFI CS low to save power */ - IO_GIO_DIR0 &= ~(1 << 4); - IO_GIO_BITCLR0 = (1 << 4); + /* keep WIFI CS and reset high to save power */ + IO_GIO_DIR0 &= ~((1 << 4) /* CS */ | (1 << 3) /* reset */); + IO_GIO_BITSET0 = (1 << 4) | (1 << 3); i2c_init(); avr_hid_init();