diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-10-08 09:47:40 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-11 16:37:17 -0400 |
commit | 2a471e288c16b91a7186a60b3fb84dd55a494c7a (patch) | |
tree | 3e746212c5fa69b59f61d19b6e29d11aa8a5e31b /firmware/export | |
parent | 5efaa9ef8073bb216e3dcdbb4476f2fa7c672b76 (diff) |
New port: AIGO EROS Q / EROS K
The Q and K have a slightly different case, but the hardware under the
shell is completely identical.
These models are rebadged versions:
* Hifiwalker H2 (== Q)
* AGPTek H3 (== K)
* Surfans F20 (== K)
Other notes:
* Significant improvements in the shared Hiby-platform launcher/loader
* SD card can theoretically be hot-swapped now
* Support external USB mass storage!
* Some consolidation of Hiby-platform targets
* Some consolidation of plugin keymaps
Todo/known issues:
* Keymaps need to be gone over properly
* Convert to HAVE_SCROLLWHEEL?
Change-Id: I5a8a4f22c38a5b69392ca7c0a8ad8c4e07d9523c
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/audiohw.h | 2 | ||||
-rw-r--r-- | firmware/export/config.h | 3 | ||||
-rw-r--r-- | firmware/export/config/agptekrocker.h | 1 | ||||
-rw-r--r-- | firmware/export/config/aigoerosq.h | 132 | ||||
-rw-r--r-- | firmware/export/config/fiiom3k.h | 2 | ||||
-rw-r--r-- | firmware/export/config/xduoox20.h | 2 | ||||
-rw-r--r-- | firmware/export/config/xduoox3ii.h | 1 | ||||
-rw-r--r-- | firmware/export/erosqlinux_codec.h | 13 | ||||
-rw-r--r-- | firmware/export/rbpaths.h | 6 | ||||
-rw-r--r-- | firmware/export/system.h | 2 |
10 files changed, 160 insertions, 4 deletions
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index 1ff220e403..8a46cbea78 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h @@ -226,6 +226,8 @@ struct sound_settings_info #include "xduoolinux_codec.h" #elif defined(HAVE_FIIO_LINUX_CODEC) #include "fiiolinux_codec.h" +#elif defined(HAVE_EROSQ_LINUX_CODEC) +#include "erosqlinux_codec.h" #endif /* convert caps into defines */ diff --git a/firmware/export/config.h b/firmware/export/config.h index a9753e3cf8..7e8d751090 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -162,6 +162,7 @@ #define XDUOO_X3II_PAD 69 #define XDUOO_X20_PAD 70 #define FIIO_M3K_PAD 71 +#define EROSQ_PAD 72 /* CONFIG_REMOTE_KEYPAD */ #define H100_REMOTE 1 @@ -602,6 +603,8 @@ Lyre prototype 1 */ #include "config/xduoox20.h" #elif defined(FIIO_M3K) #include "config/fiiom3k.h" +#elif defined(EROS_Q) +#include "config/aigoerosq.h" #else //#error "unknown hwardware platform!" #endif diff --git a/firmware/export/config/agptekrocker.h b/firmware/export/config/agptekrocker.h index a97522d976..230dc6cac4 100644 --- a/firmware/export/config/agptekrocker.h +++ b/firmware/export/config/agptekrocker.h @@ -17,6 +17,7 @@ #define CONFIG_PLATFORM (PLATFORM_HOSTED) #endif +#define HIBY_LINUX #define HAVE_FPU /* define this if you have a colour LCD */ diff --git a/firmware/export/config/aigoerosq.h b/firmware/export/config/aigoerosq.h new file mode 100644 index 0000000000..9207b5548f --- /dev/null +++ b/firmware/export/config/aigoerosq.h @@ -0,0 +1,132 @@ +/* + * This config file is for the AIGO EROS Q / EROS K (and its clones) + */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 113 + +#define MODEL_NAME "AIGO Eros Q" + +/* LCD dimensions */ +#define LCD_WIDTH 320 +#define LCD_HEIGHT 240 +/* sqrt(240^2 + 320^2) / 2.0 = 200 */ +#define LCD_DPI 200 + +#ifndef SIMULATOR +#define CONFIG_PLATFORM (PLATFORM_HOSTED) +#endif + +#define HIBY_LINUX +#define HAVE_FPU + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR + +#define HAVE_LCD_ENABLE + +/* Define this if the LCD can shut down */ +#define HAVE_LCD_SHUTDOWN + +/* define this if you want album art for this target */ +#define HAVE_ALBUMART + +/* define this to enable bitmap scaling */ +#define HAVE_BMP_SCALING + +/* define this to enable JPEG decoding */ +#define HAVE_JPEG + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +#define LCD_DEPTH 32 +/* Check that but should not matter */ +#define LCD_PIXELFORMAT XRGB8888 + +#define HAVE_BACKLIGHT +#define HAVE_BACKLIGHT_BRIGHTNESS + +/* Main LCD backlight brightness range and defaults: the backlight driver + * has levels from 0 to 255. But 0 is off so start at 1. + */ +#define MIN_BRIGHTNESS_SETTING 1 +#define MAX_BRIGHTNESS_SETTING 255 +#define BRIGHTNESS_STEP 5 +#define DEFAULT_BRIGHTNESS_SETTING 70 + +/* Which backlight fading type? */ +#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING + +/* define this if you have a real-time clock */ +#define CONFIG_RTC APPLICATION + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x80000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x100000 + +#define HAVE_HEADPHONE_DETECTION +#define HAVE_LINEOUT_DETECTION + +/* KeyPad configuration for plugins */ +#define CONFIG_KEYPAD EROSQ_PAD + +/* define this if the target has volume keys which can be used in the lists */ +#define HAVE_VOLUME_IN_LIST + +#ifndef SIMULATOR +/* We have usb power and can detect usb but it is handled by Linux */ +#define HAVE_USB_POWER + +#endif + +#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE + +/* Linux controlls charging, we can monitor */ +#define CONFIG_CHARGING CHARGING_MONITOR + +/* define this if the hardware can be powered off while charging */ +#define HAVE_POWEROFF_WHILE_CHARGING + +/* same dimensions as gigabeats */ +#define CONFIG_LCD LCD_INGENIC_LINUX + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* Define this to the CPU frequency */ +#define CPU_FREQ 108000000 + +/* No special storage */ +#define CONFIG_STORAGE STORAGE_HOSTFS +#define HAVE_STORAGE_FLUSH + +/* Battery */ +#define BATTERY_TYPES_COUNT 1 + +/* Audio codec */ +#define HAVE_EROSQ_LINUX_CODEC +/* Rockbox has to handle the volume level */ +#define HAVE_SW_VOLUME_CONTROL + +/* We don't have hardware controls */ +#define HAVE_SW_TONE_CONTROLS + +/* HW codec is flexible */ +#define HW_SAMPR_CAPS SAMPR_CAP_ALL_192 + +/* Battery */ +#define BATTERY_CAPACITY_DEFAULT 2000 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 2000 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 2000 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 0 /* capacity increment */ + +/* ROLO */ +#define BOOTFILE_EXT "erosq" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" diff --git a/firmware/export/config/fiiom3k.h b/firmware/export/config/fiiom3k.h index 5b68f3738e..88652b633f 100644 --- a/firmware/export/config/fiiom3k.h +++ b/firmware/export/config/fiiom3k.h @@ -17,6 +17,8 @@ #define CONFIG_PLATFORM (PLATFORM_HOSTED) #endif +#define HAVE_FPU + #define HW_SAMPR_CAPS (SAMPR_CAP_44 | SAMPR_CAP_48 | SAMPR_CAP_88 | SAMPR_CAP_96 | SAMPR_CAP_176 | SAMPR_CAP_192) /* define this if you have a bitmap LCD display */ diff --git a/firmware/export/config/xduoox20.h b/firmware/export/config/xduoox20.h index a8d2175719..70e6131cb7 100644 --- a/firmware/export/config/xduoox20.h +++ b/firmware/export/config/xduoox20.h @@ -17,6 +17,8 @@ #define CONFIG_PLATFORM (PLATFORM_HOSTED) #endif +#define HIBY_LINUX + #define HAVE_FPU /* define this if you have a colour LCD */ diff --git a/firmware/export/config/xduoox3ii.h b/firmware/export/config/xduoox3ii.h index 143d4442fd..d19165114a 100644 --- a/firmware/export/config/xduoox3ii.h +++ b/firmware/export/config/xduoox3ii.h @@ -17,6 +17,7 @@ #define CONFIG_PLATFORM (PLATFORM_HOSTED) #endif +#define HIBY_LINUX #define HAVE_FPU /* define this if you have a colour LCD */ diff --git a/firmware/export/erosqlinux_codec.h b/firmware/export/erosqlinux_codec.h new file mode 100644 index 0000000000..8a3afbfe3c --- /dev/null +++ b/firmware/export/erosqlinux_codec.h @@ -0,0 +1,13 @@ +#ifndef __EROSQLINUX_CODEC__ +#define __EROSQLINUX_CODEC__ + +#define AUDIOHW_CAPS (LINEOUT_CAP) + +AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -74, 6, -25) + + +void audiohw_mute(int mute); +void erosq_set_output(int ps); +int erosq_get_outputs(void); + +#endif diff --git a/firmware/export/rbpaths.h b/firmware/export/rbpaths.h index 6b686eec0e..215b4c0c4b 100644 --- a/firmware/export/rbpaths.h +++ b/firmware/export/rbpaths.h @@ -42,7 +42,7 @@ #if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \ - defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) + defined(HIBY_LINUX) || defined(FIIO_M3K) #if defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) #define HOME_DIR "/mnt/media0" @@ -51,7 +51,7 @@ #elif defined(DX50) || defined(DX90) /* Where to put save files like recordings, playlists, screen dumps ...*/ #define HOME_DIR "/mnt/sdcard" -#elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) +#elif defined(HIBY_LINUX) #define HOME_DIR "/mnt/sd_0" #elif defined(FIIO_M3K) #define HOME_DIR "/mnt" @@ -92,7 +92,7 @@ #define VIEWERS_DIR PLUGIN_DIR "/viewers" #if defined(APPLICATION) && !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ - defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) + defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX)) #define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data" #define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR #define PLUGIN_APPS_DATA_DIR PLUGIN_DATA_DIR diff --git a/firmware/export/system.h b/firmware/export/system.h index cfec235bc4..1885acfffd 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -347,7 +347,7 @@ static inline void cpu_boost_unlock(void) #ifndef SIMULATOR bool dbg_ports(void); #endif -#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) +#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K) bool dbg_hw_info(void); #endif |