From 758bb3bc628705ff8e5c677b3b2d87720c726c13 Mon Sep 17 00:00:00 2001 From: Mark Arigo Date: Mon, 25 May 2009 21:10:45 +0000 Subject: 3 new ports: Samsung YH-820, YH-920, and YH-925. Mostly functional. Audio working on 820 & 925 (untested on the 920). No battery readings. No recording. No plugins. Keymap needs work. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21083 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/ak4537.h | 193 +++++++++++++++++++++++++++++++++++++++++ firmware/export/akcodec.h | 29 +++++++ firmware/export/audiohw.h | 2 + firmware/export/config-yh820.h | 187 +++++++++++++++++++++++++++++++++++++++ firmware/export/config-yh920.h | 193 +++++++++++++++++++++++++++++++++++++++++ firmware/export/config-yh925.h | 190 ++++++++++++++++++++++++++++++++++++++++ firmware/export/config.h | 10 ++- firmware/export/usb.h | 3 + 8 files changed, 806 insertions(+), 1 deletion(-) create mode 100644 firmware/export/ak4537.h create mode 100644 firmware/export/akcodec.h create mode 100644 firmware/export/config-yh820.h create mode 100644 firmware/export/config-yh920.h create mode 100644 firmware/export/config-yh925.h (limited to 'firmware/export') diff --git a/firmware/export/ak4537.h b/firmware/export/ak4537.h new file mode 100644 index 0000000000..1f272d41fc --- /dev/null +++ b/firmware/export/ak4537.h @@ -0,0 +1,193 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2009 by Mark Arigo + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef _AK4537_H +#define _AK4537_H + +/* Volume goes from -127.0 ... 0 dB in 0.5 dB increments */ +#define VOLUME_MIN -1270 +#define VOLUME_MAX 0 + +extern int tenthdb2master(int db); + +extern void audiohw_set_master_vol(int vol_l, int vol_r); + +#define AKC_NUM_REGS 0x11 + +/* Common register bits */ + +/* Power Management 1 */ +#define AK4537_PM1 0x00 +#define PMADL (1 << 0) +#define PMMICL (1 << 1) +#define PMIPGL (1 << 2) +#define PMMO (1 << 3) +#define PMLO (1 << 4) +#define PMBPM (1 << 5) +#define PMBPS (1 << 6) +#define PMVCM (1 << 7) + +/* Power Management 2 */ +#define AK4537_PM2 0x01 +#define PMDAC (1 << 0) +#define PMHPR (1 << 1) +#define PMHPL (1 << 2) +#define PMSPK (1 << 3) +#define SPKG (1 << 4) +#define PMPLL (1 << 5) +#define PMXTL (1 << 6) +#define MCLKPD (1 << 7) + +/* Signal Select 1 */ +#define AK4537_SIGSEL1 0x02 +#define MOUT2 (1 << 0) +#define ALCS (1 << 1) +#define BPMSP (1 << 2) +#define BPSSP (1 << 3) +#define MICM (1 << 4) +#define DAMO (1 << 5) +#define PSMO (1 << 6) +#define MOGN (1 << 7) + +/* Signal Select 2 */ +#define AK4537_SIGSEL2 0x03 +#define HPR (1 << 0) +#define HPL (1 << 1) +#define BPMHP (1 << 2) +#define BPSHP (1 << 3) +#define MICL (1 << 4) +#define PSLO (1 << 6) +#define DAHS (1 << 7) + +/* Mode Control 1 */ +#define AK4537_MODE1 0x04 +#define DIF_MASK (3 << 0) +#define BICK_MASK (1 << 2) +#define MCKO_EN (1 << 3) +#define MCKO_MASK (3 << 4) +#define MCKI_MASK (3 << 6) + +/* Mode Control 2 */ +#define AK4537_MODE2 0x05 +#define SPPS (1 << 0) +#define LOOP (1 << 1) +#define HPM (1 << 2) +#define FS_MASK (7 << 5) + +/* DAC Control */ +#define AK4537_DAC 0x06 +#define DEM_MASK (3 << 0) +#define BST_MASK (3 << 2) +#define DATTC (1 << 4) +#define SMUTE (1 << 5) +#define TM_MASK (3 << 6) + +/* MIC Control */ +#define AK4537_MIC 0x07 +#define MGAIN (1 << 0) +#define MSEL (1 << 1) +#define MICAD (1 << 2) +#define MPWRI (1 << 3) +#define MPWRE (1 << 4) +#define IPGAC (1 << 5) + +/* Timer Select */ +#define AK4537_TIMER 0x08 +#define LTM_MASK (3 << 0) +#define WTM_MASK (3 << 2) +#define ZTM_MASK (3 << 4) +#define ZTM1 (1 << 5) +#define ROTM (1 << 6) + +/* ALC Mode Control 1 */ +#define AK4537_ALC1 0x09 +#define LMTH (1 << 0) +#define RATT (1 << 1) +#define LMAT_MASK (3 << 2) +#define ZELM (1 << 4) +#define ALC1 (1 << 5) +#define ALC2 (1 << 6) + +/* ALC Mode Control 2 */ +#define AK4537_ALC2 0x0a + +/* Lch Input PGA Control */ +#define AK4537_IPGAL 0x0b + +/* Lch Digital ATT Control */ +#define AK4537_ATTL 0x0c + +/* Rch Digital ATT Control */ +#define AK4537_ATTR 0x0d + +/* Volume Control */ +#define AK4537_VOLUME 0x0e +#define ATTS_MASK (7 << 4) +#define ATTRM (1 << 7) + +/* Rch Input PGA Control */ +#define AK4537_IPGAR 0x0f + +/* Power Management 3 */ +#define AK4537_PM3 0x10 +#define PMADR (1 << 0) +#define PMMICR (1 << 1) +#define PMIPGR (1 << 2) +#define INR (1 << 3) +#define INL (1 << 4) + +/* Sampling frequency (PLL mode) */ +#define AKC_PLL_8000HZ (7 << 5) +#define AKC_PLL_11025HZ (2 << 5) +#define AKC_PLL_16000HZ (6 << 5) +#define AKC_PLL_22050HZ (1 << 5) +#define AKC_PLL_24000HZ (5 << 5) +#define AKC_PLL_32000HZ (4 << 5) +#define AKC_PLL_44100HZ (0 << 5) +#define AKC_PLL_48000HZ (3 << 5) + +/* MCKI input frequency (PLL mode) */ +#define MCKI_PLL_12288KHZ (0 << 6) +#define MCKI_PLL_11289KHZ (1 << 6) +#define MCKI_PLL_12000KHZ (2 << 6) + +/* MCKO frequency (PLL mode, MCKO bit = 1) */ +#define MCKO_PLL_256FS (0 << 4) +#define MCKO_PLL_128FS (1 << 4) +#define MCKO_PLL_64FS (2 << 4) +#define MCKO_PLL_32FS (3 << 4) + +/* BICK frequency */ +#define BICK_64FS (0 << 2) +#define BICK_32FS (1 << 2) + +/* Audio interface format */ +#define DIF_MSB_LSB (0 << 0) +#define DIF_MSB_MSB (1 << 0) +#define DIF_I2S (2 << 0) + +/* Low frequency boost control */ +#define BST_OFF (0 << 2) +#define BST_MIN (1 << 2) +#define BST_MID (2 << 2) +#define BST_MAX (3 << 2) + +#endif /* _AK4537_H */ diff --git a/firmware/export/akcodec.h b/firmware/export/akcodec.h new file mode 100644 index 0000000000..7cb2bad7e5 --- /dev/null +++ b/firmware/export/akcodec.h @@ -0,0 +1,29 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Marcoen Hirschberg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef _AKCODEC_H +#define _AKCODEC_H + +int akcodec_read(int reg); +void akcodec_write(int reg, int data); +void akcodec_close(void); + +#endif diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index e53db7e7b9..66fc19f923 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h @@ -59,6 +59,8 @@ #include "tsc2100.h" #elif defined(HAVE_JZ4740_CODEC) #include "jz4740-codec.h" +#elif defined(HAVE_AK4537) +#include "ak4537.h" #endif /* convert caps into defines */ diff --git a/firmware/export/config-yh820.h b/firmware/export/config-yh820.h new file mode 100644 index 0000000000..b96a7c72ea --- /dev/null +++ b/firmware/export/config-yh820.h @@ -0,0 +1,187 @@ +/* + * This config file is for the Samsung YH-820 + */ + +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 57 +#define MODEL_NAME "Samsung YH-820" + +/* define this if you have recording possibility */ +/* todo #define HAVE_RECORDING */ + +/* Define bitmask of input sources - recordable bitmask can be defined + explicitly if different */ +#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN ) + +/* define the bitmask of hardware sample rates */ +#define HW_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ + SAMPR_CAP_24 | SAMPR_CAP_22 | SAMPR_CAP_16 | \ + SAMPR_CAP_11 | SAMPR_CAP_8) + +/* define the bitmask of recording sample rates */ +#define REC_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ + SAMPR_CAP_24 | SAMPR_CAP_22 | SAMPR_CAP_16 | \ + SAMPR_CAP_11 | SAMPR_CAP_8) + +/* Type of LCD */ +#define CONFIG_LCD LCD_S6B33B2 + +/* LCD dimensions */ +#define LCD_WIDTH 128 +#define LCD_HEIGHT 96 +#define LCD_DEPTH 16 /* 65536 colours */ +#define LCD_PIXELFORMAT RGB565 + +#ifndef BOOTLOADER +/* Define this if your LCD can be enabled/disabled */ +#define HAVE_LCD_ENABLE + +/* Define this if your LCD can be put to sleep. + HAVE_LCD_ENABLE should be defined as well. */ +/* todo #define HAVE_LCD_SLEEP*/ +/* todo #define HAVE_LCD_SLEEP_SETTING */ +#endif /* !BOOTLOADER */ + +/* Define this for LCD backlight available */ +#define HAVE_BACKLIGHT + +/* Define this if your LCD can set contrast */ +#define HAVE_LCD_CONTRAST + +#define MIN_CONTRAST_SETTING 0 +#define MAX_CONTRAST_SETTING 255 +#define DEFAULT_CONTRAST_SETTING 137 + +/* define this if you can flip your LCD */ +/* #define HAVE_LCD_FLIP */ + +/* define this if you can invert the colours on your LCD */ +/* todo #define HAVE_LCD_INVERT */ + +/* put the lcd frame buffer in IRAM */ +/* #define IRAM_LCDFRAMEBUFFER IDATA_ATTR */ + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR + +/* define this if you want album art for this target */ +#define HAVE_ALBUMART + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +#define CONFIG_KEYPAD SAMSUNG_YH_PAD + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +/* todo verify rtc (or none) */ +/* #ifndef BOOTLOADER */ +#if 0 +#define CONFIG_RTC RTC_E8564 +#define HAVE_RTC_ALARM +#endif + +/* define this if you have a disk storage, i.e. something + that needs spinups and can cause skips when shaked */ +#define HAVE_DISK_STORAGE + +/* define this if you use an ATA controller */ +#define CONFIG_STORAGE STORAGE_ATA + +/* We're able to shut off power to the HDD */ +#ifndef SIMULATOR +/* todo #define HAVE_ATA_POWER_OFF */ +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x100000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* Define this if you have the AK4537 audio codec */ +#define HAVE_AK4537 + +/* AK4537 has no tone controls, so we use the software ones */ +#define HAVE_SW_TONE_CONTROLS + +#define AB_REPEAT_ENABLE 1 + +#define BATTERY_CAPACITY_DEFAULT 1550 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 50 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ + +/* Hardware controlled charging */ +#define CONFIG_CHARGING CHARGING_SIMPLE + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +#ifndef SIMULATOR + +/* Define this if you have a PortalPlayer PP5020 */ +#define CONFIG_CPU PP5020 + +/* Define this if you want to use the PP5020 i2c interface */ +#define CONFIG_I2C I2C_PP5020 + +/* define this if the hardware can be powered off while charging */ +#define HAVE_POWEROFF_WHILE_CHARGING + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* The size of the flash ROM */ +#define FLASH_SIZE 0x100000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 75000000 + +/* USB On-the-go */ +#define CONFIG_USBOTG USBOTG_ARC + +/* enable these for the experimental usb stack */ +#define HAVE_USBSTACK +#define USE_ROCKBOX_USB +/* todo - check */ +#define USB_VENDOR_ID 0x04e8 +#define USB_PRODUCT_ID 0x5023 + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define MI4_FORMAT +#define BOOTFILE_EXT "mi4" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" + +/* Offset ( in the firmware file's header ) to the file CRC */ +#define FIRMWARE_OFFSET_FILE_CRC 0x00 + +/* Offset ( in the firmware file's header ) to the real data */ +#define FIRMWARE_OFFSET_FILE_DATA 0x00 + +#define ICODE_ATTR_TREMOR_NOT_MDCT + +#endif /* !SIMULATOR */ diff --git a/firmware/export/config-yh920.h b/firmware/export/config-yh920.h new file mode 100644 index 0000000000..62febaac71 --- /dev/null +++ b/firmware/export/config-yh920.h @@ -0,0 +1,193 @@ +/* + * This config file is for the Samsung YH-920 + */ + +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 58 +#define MODEL_NAME "Samsung YH-920" + +/* define this if you have recording possibility */ +/* todo #define HAVE_RECORDING */ + +/* Define bitmask of input sources - recordable bitmask can be defined + explicitly if different */ +#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN ) + +/* define the bitmask of hardware sample rates */ +#define HW_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ + SAMPR_CAP_24 | SAMPR_CAP_22 | SAMPR_CAP_16 | \ + SAMPR_CAP_11 | SAMPR_CAP_8) + +/* define the bitmask of recording sample rates */ +#define REC_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ + SAMPR_CAP_24 | SAMPR_CAP_22 | SAMPR_CAP_16 | \ + SAMPR_CAP_11 | SAMPR_CAP_8) + +/* Type of LCD */ +#define CONFIG_LCD LCD_S1D15E06 + +/* LCD dimensions */ +#define LCD_WIDTH 160 +#define LCD_HEIGHT 128 +#define LCD_DEPTH 2 +#define LCD_PIXELFORMAT VERTICAL_PACKING + +/* Display colours, for screenshots and sim (0xRRGGBB) */ +#define LCD_DARKCOLOR 0x000000 +#define LCD_BRIGHTCOLOR 0x5a915a +#define LCD_BL_DARKCOLOR 0x000000 +#define LCD_BL_BRIGHTCOLOR 0xadd8e6 + +/* todo */ +/* #ifndef BOOTLOADER */ +#if 0 +/* Define this if your LCD can be enabled/disabled */ +#define HAVE_LCD_ENABLE + +/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE + * should be defined as well. + * We can currently put the lcd to sleep but it won't wake up properly */ +#define HAVE_LCD_SLEEP +#define HAVE_LCD_SLEEP_SETTING +#endif + +/* Define this for LCD backlight available */ +#define HAVE_BACKLIGHT + +/* Define this if your LCD can set contrast */ +/* todo #define HAVE_LCD_CONTRAST */ + +#define MIN_CONTRAST_SETTING 0 +#define MAX_CONTRAST_SETTING 30 +#define DEFAULT_CONTRAST_SETTING 14 /* Match boot contrast */ + +/* define this if you can flip your LCD */ +/* todo #define HAVE_LCD_FLIP */ + +/* define this if you can invert the colours on your LCD */ +/* todo #define HAVE_LCD_INVERT */ + +/* put the lcd frame buffer in IRAM */ +/* #define IRAM_LCDFRAMEBUFFER IDATA_ATTR */ + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you want album art for this target */ +#define HAVE_ALBUMART + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +#define CONFIG_KEYPAD SAMSUNG_YH_PAD + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +/* todo verify rtc (or none) */ +/* #ifndef BOOTLOADER */ +#if 0 +#define CONFIG_RTC RTC_E8564 +#define HAVE_RTC_ALARM +#endif + +/* define this if you have a disk storage, i.e. something + that needs spinups and can cause skips when shaked */ +#define HAVE_DISK_STORAGE + +/* define this if you use an ATA controller */ +#define CONFIG_STORAGE STORAGE_ATA + +/* We're able to shut off power to the HDD */ +#ifndef SIMULATOR +/* todo #define HAVE_ATA_POWER_OFF */ +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x100000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* Define this if you have the AK4537 audio codec */ +#define HAVE_AK4537 + +/* AK4537 has no tone controls, so we use the software ones */ +#define HAVE_SW_TONE_CONTROLS + +#define AB_REPEAT_ENABLE 1 + +#define BATTERY_CAPACITY_DEFAULT 1550 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 50 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ + +/* Hardware controlled charging */ +#define CONFIG_CHARGING CHARGING_SIMPLE + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +#ifndef SIMULATOR + +/* Define this if you have a PortalPlayer PP5020 */ +#define CONFIG_CPU PP5020 + +/* Define this if you want to use the PP5020 i2c interface */ +#define CONFIG_I2C I2C_PP5020 + +/* define this if the hardware can be powered off while charging */ +#define HAVE_POWEROFF_WHILE_CHARGING + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* The size of the flash ROM */ +#define FLASH_SIZE 0x100000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 75000000 + +/* USB On-the-go */ +#define CONFIG_USBOTG USBOTG_ARC + +/* enable these for the experimental usb stack */ +#define HAVE_USBSTACK +#define USE_ROCKBOX_USB +/* todo - check */ +#define USB_VENDOR_ID 0x04e8 +#define USB_PRODUCT_ID 0x5022 + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define MI4_FORMAT +#define BOOTFILE_EXT "mi4" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" + +/* Offset ( in the firmware file's header ) to the file CRC */ +#define FIRMWARE_OFFSET_FILE_CRC 0x00 + +/* Offset ( in the firmware file's header ) to the real data */ +#define FIRMWARE_OFFSET_FILE_DATA 0x00 + +#define ICODE_ATTR_TREMOR_NOT_MDCT + +#endif /* !SIMULATOR */ diff --git a/firmware/export/config-yh925.h b/firmware/export/config-yh925.h new file mode 100644 index 0000000000..3a6403f93f --- /dev/null +++ b/firmware/export/config-yh925.h @@ -0,0 +1,190 @@ +/* + * This config file is for the Samsung YH-925 + */ + +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 59 +#define MODEL_NAME "Samsung YH-925" + +/* define this if you have recording possibility */ +/* todo #define HAVE_RECORDING */ + +/* Define bitmask of input sources - recordable bitmask can be defined + explicitly if different */ +#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN ) + +/* define the bitmask of hardware sample rates */ +#define HW_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ + SAMPR_CAP_24 | SAMPR_CAP_22 | SAMPR_CAP_16 | \ + SAMPR_CAP_11 | SAMPR_CAP_8) + +/* define the bitmask of recording sample rates */ +#define REC_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ + SAMPR_CAP_24 | SAMPR_CAP_22 | SAMPR_CAP_16 | \ + SAMPR_CAP_11 | SAMPR_CAP_8) + +/* Type of LCD */ +#define CONFIG_LCD LCD_YH925 + +/* LCD dimensions */ +#define LCD_WIDTH 160 +#define LCD_HEIGHT 128 +#define LCD_DEPTH 16 /* 65536 colours */ +#define LCD_PIXELFORMAT RGB565 + +/* todo */ +/* #ifndef BOOTLOADER */ +#if 0 +/* Define this if your LCD can be enabled/disabled */ +#define HAVE_LCD_ENABLE + +/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE + * should be defined as well. + * We can currently put the lcd to sleep but it won't wake up properly */ +#define HAVE_LCD_SLEEP +#define HAVE_LCD_SLEEP_SETTING +#endif + +/* Define this for LCD backlight available */ +#define HAVE_BACKLIGHT + +/* Define this if your LCD can set contrast */ +/* todo #define HAVE_LCD_CONTRAST */ + +#define MIN_CONTRAST_SETTING 0 +#define MAX_CONTRAST_SETTING 30 +#define DEFAULT_CONTRAST_SETTING 14 /* Match boot contrast */ + +/* define this if you can flip your LCD */ +/* todo #define HAVE_LCD_FLIP */ + +/* define this if you can invert the colours on your LCD */ +/* todo #define HAVE_LCD_INVERT */ + +/* put the lcd frame buffer in IRAM */ +/* #define IRAM_LCDFRAMEBUFFER IDATA_ATTR */ + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR + +/* define this if you want album art for this target */ +#define HAVE_ALBUMART + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +#define CONFIG_KEYPAD SAMSUNG_YH_PAD + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +/* todo verify rtc (or none) */ +/* #ifndef BOOTLOADER */ +#if 0 +#define CONFIG_RTC RTC_E8564 +#define HAVE_RTC_ALARM +#endif + +/* define this if you have a disk storage, i.e. something + that needs spinups and can cause skips when shaked */ +#define HAVE_DISK_STORAGE + +/* define this if you use an ATA controller */ +#define CONFIG_STORAGE STORAGE_ATA + +/* We're able to shut off power to the HDD */ +#ifndef SIMULATOR +/* todo #define HAVE_ATA_POWER_OFF */ +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x100000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* Define this if you have the AK4537 audio codec */ +#define HAVE_AK4537 + +/* AK4537 has no tone controls, so we use the software ones */ +#define HAVE_SW_TONE_CONTROLS + +#define AB_REPEAT_ENABLE 1 + +#define BATTERY_CAPACITY_DEFAULT 1550 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 50 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ + +/* Hardware controlled charging */ +#define CONFIG_CHARGING CHARGING_SIMPLE + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +#ifndef SIMULATOR + +/* Define this if you have a PortalPlayer PP5020 */ +#define CONFIG_CPU PP5020 + +/* Define this if you want to use the PP5020 i2c interface */ +#define CONFIG_I2C I2C_PP5020 + +/* define this if the hardware can be powered off while charging */ +#define HAVE_POWEROFF_WHILE_CHARGING + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* The size of the flash ROM */ +#define FLASH_SIZE 0x100000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 75000000 + +/* USB On-the-go */ +#define CONFIG_USBOTG USBOTG_ARC + +/* enable these for the experimental usb stack */ +#define HAVE_USBSTACK +#define USE_ROCKBOX_USB +/* todo - check */ +#define USB_VENDOR_ID 0x04e8 +#define USB_PRODUCT_ID 0x5024 + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define MI4_FORMAT +#define BOOTFILE_EXT "mi4" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" + +/* Offset ( in the firmware file's header ) to the file CRC */ +#define FIRMWARE_OFFSET_FILE_CRC 0x00 + +/* Offset ( in the firmware file's header ) to the real data */ +#define FIRMWARE_OFFSET_FILE_DATA 0x00 + +#define ICODE_ATTR_TREMOR_NOT_MDCT + +#endif /* !SIMULATOR */ diff --git a/firmware/export/config.h b/firmware/export/config.h index ff9a8e9589..56cd2dec94 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -109,6 +109,7 @@ #define SANSA_CLIP_PAD 35 #define SANSA_FUZE_PAD 36 #define LYRE_PROTO1_PAD 37 +#define SAMSUNG_YH_PAD 38 /* CONFIG_REMOTE_KEYPAD */ #define H100_REMOTE 1 @@ -185,7 +186,8 @@ #define LCD_SSD1303 31 /* as used by the Sansa Clip */ #define LCD_FUZE 32 /* as used by the Sansa Fuze */ #define LCD_LYRE_PROTO1 33 /* as used by the Lyre */ - +#define LCD_YH925 34 /* as used by Samsung YH-925 (similar to the H10 20GB) */ + /* LCD_PIXELFORMAT */ #define HORIZONTAL_PACKING 1 #define VERTICAL_PACKING 2 @@ -364,6 +366,12 @@ Lyre prototype 1*/ #include "config-c200v2.h" #elif defined(LYRE_PROTO1) #include "config-lyre_proto1.h" +#elif defined(SAMSUNG_YH820) +#include "config-yh820.h" +#elif defined(SAMSUNG_YH920) +#include "config-yh920.h" +#elif defined(SAMSUNG_YH925) +#include "config-yh925.h" #else /* no known platform */ #endif diff --git a/firmware/export/usb.h b/firmware/export/usb.h index 42893c3468..557639c622 100644 --- a/firmware/export/usb.h +++ b/firmware/export/usb.h @@ -84,6 +84,9 @@ enum { #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD #define USBPOWER_BUTTON BUTTON_PLAYLIST #define USBPOWER_BTN_IGNORE BUTTON_POWER +#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD +#define USBPOWER_BUTTON BUTTON_RIGHT +#define USBPOWER_BTN_IGNORE BUTTON_LEFT #endif #endif /* HAVE_USB_POWER */ -- cgit v1.2.3