From 3e7a09cb0dee0ee04b5c77f427bf89d990ec8d0b Mon Sep 17 00:00:00 2001 From: Dana Conrad Date: Sat, 26 Jun 2021 12:07:11 -0500 Subject: New Port: Eros Q Native What works: - LCD: 16-bit RGB565 - all buttons, including scrollwheel - SD Card - Battery level and charging/not charging status - USB - audio - sample rate switching - HP / LO detect, with "safe" fixed LO volume - LO volume will only be put to user-defined max volume if headphones are not present. - rtc - Plugins build, tried a couple and they seem OK - Bootloader, installable to nand via usbboot What doesn't work: - Dual Boot - power on/off has intermittent, low volume audio click (sometimes it's completely silent, sometimes there's a click) - Audio uses 16-bit volume scaling, so clicking/popping is pretty bad at lower volumes - need 32 bit volume scaling, 24 bit I2S data - USB HID keys not yet defined - no jztool support Unknowns: - Stereo Switch pins: Direction select, AC_DC (probably not even hooked up) - What is the actual purpose of the Stereo Swtich? - How does the bluetooth module connect? "Someday" stuff: - get LCD working at higher bit depth - Bluetooth Change-Id: I70dda8fc092c6e3f4352f2245e4164193f803c33 --- firmware/export/config/erosqnative.h | 125 +++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 firmware/export/config/erosqnative.h (limited to 'firmware/export/config') diff --git a/firmware/export/config/erosqnative.h b/firmware/export/config/erosqnative.h new file mode 100644 index 0000000000..1b37b6042a --- /dev/null +++ b/firmware/export/config/erosqnative.h @@ -0,0 +1,125 @@ +/* + * This config file is for the AIGO EROS Q / EROS K (and its clones) + */ + +/* For Rolo and boot loader */ +#define MODEL_NAME "AIGO Eros Q Native" +#define MODEL_NUMBER 116 +#define BOOTFILE_EXT "erosq" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" +#define FIRMWARE_OFFSET_FILE_CRC 0 +#define FIRMWARE_OFFSET_FILE_DATA 8 + +/* CPU defines */ +#define CONFIG_CPU X1000 +#define X1000_EXCLK_FREQ 24000000 +#define CPU_FREQ 1008000000 +#define HAVE_FPU + +#ifndef SIMULATOR +#define TIMER_FREQ X1000_EXCLK_FREQ +#endif + +/* kernel defines */ +#define INCLUDE_TIMEOUT_API +#define HAVE_SEMAPHORE_OBJECTS + +/* drivers */ +#define HAVE_I2C_ASYNC + +/* Buffers for plugsins and codecs */ +#define PLUGIN_BUFFER_SIZE 0x200000 /* 2 MiB */ +#define CODEC_SIZE 0x100000 /* 1 MiB */ + +/* LCD defines */ +#define CONFIG_LCD LCD_EROSQ +#define LCD_WIDTH 320 +#define LCD_HEIGHT 240 +#define LCD_DEPTH 16 /* Future Improvement: 18 or 24 bpp if display supports it */ +#define LCD_PIXELFORMAT RGB565 +/* sqrt(240^2 + 320^2) / 2.0 = 200 */ +#define LCD_DPI 200 +#define HAVE_LCD_COLOR +#define HAVE_LCD_BITMAP +#define HAVE_LCD_ENABLE +#define HAVE_LCD_SHUTDOWN +#define LCD_X1000_FASTSLEEP +//#define LCD_X1000_DMA_WAITFORFRAME + +#define HAVE_BACKLIGHT +#define HAVE_BACKLIGHT_BRIGHTNESS +#define MIN_BRIGHTNESS_SETTING 1 +#define MAX_BRIGHTNESS_SETTING 255 +#define BRIGHTNESS_STEP 5 +#define DEFAULT_BRIGHTNESS_SETTING 70 +#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING + +/* RTC settings */ +#define CONFIG_RTC RTC_X1000 + +/* Codec / audio hardware defines */ +#define HW_SAMPR_CAPS SAMPR_CAP_ALL_192 +#define HAVE_EROS_QN_CODEC +#define HAVE_SW_TONE_CONTROLS +#define HAVE_SW_VOLUME_CONTROL + +/* Button defines */ +#define CONFIG_KEYPAD EROSQ_PAD +#define HAVE_SCROLLWHEEL +#define HAVE_HEADPHONE_DETECTION +#define HAVE_LINEOUT_DETECTION + +/* Storage defines */ +#define CONFIG_STORAGE STORAGE_SD +#define HAVE_HOTSWAP +#define HAVE_HOTSWAP_STORAGE_AS_MAIN +#define HAVE_MULTIDRIVE +#define NUM_DRIVES 1 +#define STORAGE_WANTS_ALIGN +#define STORAGE_NEEDS_BOUNCE_BUFFER + +/* Power management */ +#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE +#define CONFIG_CHARGING CHARGING_MONITOR +#define HAVE_SW_POWEROFF + +#ifndef SIMULATOR +#define HAVE_AXP_PMU 192 +#define HAVE_POWEROFF_WHILE_CHARGING +#endif + +/* Battery */ +#define BATTERY_TYPES_COUNT 1 +#define BATTERY_CAPACITY_DEFAULT 1300 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 1300 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 1300 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 0 /* capacity increment */ + +#define CURRENT_NORMAL 100 // 1.7mA * 60s +#define CURRENT_BACKLIGHT 180 +#define CURRENT_MAX_CHG 500 // bursts higher if needed + +/* USB support */ +#ifndef SIMULATOR +#define CONFIG_USBOTG USBOTG_DESIGNWARE +#define USB_DW_ARCH_SLAVE +#define USB_DW_TURNAROUND 5 +#define HAVE_USBSTACK +#define USB_VENDOR_ID 0xc502 +#define USB_PRODUCT_ID 0x0023 +#define USB_DEVBSS_ATTR __attribute__((aligned(32))) +#define HAVE_USB_POWER +#define HAVE_USB_CHARGING_ENABLE +#define HAVE_BOOTLOADER_USB_MODE +#endif + +/* Rockbox capabilities */ +#define HAVE_VOLUME_IN_LIST +#define HAVE_FAT16SUPPORT +#define HAVE_ALBUMART +#define HAVE_BMP_SCALING +#define HAVE_JPEG +#define HAVE_TAGCACHE +#define HAVE_QUICKSCREEN +#define HAVE_HOTKEY -- cgit v1.2.3