From b3cba9021f0b5437afbacc286b5e026c84ef7141 Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Thu, 14 Jan 2010 20:16:03 +0000 Subject: Meizu M6SP: add stubs so the meizu m6sp binary compiles and links git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24228 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/s5l8700/audio-meizu.c | 68 ++++++++++++++++++ firmware/target/arm/s5l8700/ftl-meizu.c | 48 +++++++++++++ firmware/target/arm/s5l8700/meizu-m6sp/lcd-m6sp.c | 23 ++++++ .../target/arm/s5l8700/meizu-m6sp/nand-target.h | 2 + .../target/arm/s5l8700/meizu-m6sp/powermgmt-m6sp.c | 64 +++++++++++++++++ firmware/target/arm/s5l8700/nand-meizu.c | 81 ++++++++++++++++++++++ firmware/target/arm/s5l8700/usb-s5l8700.c | 45 ++++++++++++ firmware/target/arm/s5l8700/usb-target.h | 24 +++++++ 8 files changed, 355 insertions(+) create mode 100644 firmware/target/arm/s5l8700/audio-meizu.c create mode 100644 firmware/target/arm/s5l8700/ftl-meizu.c create mode 100644 firmware/target/arm/s5l8700/meizu-m6sp/powermgmt-m6sp.c create mode 100644 firmware/target/arm/s5l8700/nand-meizu.c create mode 100644 firmware/target/arm/s5l8700/usb-s5l8700.c create mode 100644 firmware/target/arm/s5l8700/usb-target.h (limited to 'firmware/target') diff --git a/firmware/target/arm/s5l8700/audio-meizu.c b/firmware/target/arm/s5l8700/audio-meizu.c new file mode 100644 index 0000000000..670b7e0100 --- /dev/null +++ b/firmware/target/arm/s5l8700/audio-meizu.c @@ -0,0 +1,68 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2009 by Bertrik Sikken + * + * 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. + * + ****************************************************************************/ +#include "config.h" +#include "system.h" +#include "cpu.h" +#include "audio.h" +#include "audiohw.h" +#include "sound.h" + +int audio_channels = 2; +int audio_output_source = AUDIO_SRC_PLAYBACK; + +void audio_set_output_source(int source) +{ + if ((unsigned)source >= AUDIO_NUM_SOURCES) + source = AUDIO_SRC_PLAYBACK; + + audio_output_source = source; +} /* audio_set_output_source */ + +void audio_input_mux(int source, unsigned flags) +{ + static int last_source = AUDIO_SRC_PLAYBACK; + + (void)flags; + + switch (source) + { + default: /* playback - no recording */ + source = AUDIO_SRC_PLAYBACK; + case AUDIO_SRC_PLAYBACK: + audio_channels = 2; + if (source != last_source) + { +// audiohw_set_monitor(false); + } + break; + + case AUDIO_SRC_FMRADIO: /* recording and playback */ + audio_channels = 2; + if (source == last_source) + break; + +// audiohw_set_monitor(true); + break; + } /* end switch */ + + last_source = source; +} /* audio_input_mux */ + diff --git a/firmware/target/arm/s5l8700/ftl-meizu.c b/firmware/target/arm/s5l8700/ftl-meizu.c new file mode 100644 index 0000000000..abc30e93b9 --- /dev/null +++ b/firmware/target/arm/s5l8700/ftl-meizu.c @@ -0,0 +1,48 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Bertrik Sikken + * + * 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. + * + ****************************************************************************/ + + #include "config.h" +# include "ftl-target.h" + +uint32_t ftl_init(void) +{ + /* TODO implement */ + return 0; +} + +uint32_t ftl_read(uint32_t sector, uint32_t count, void* buffer) +{ + /* TODO implement */ + return 0; +} + +uint32_t ftl_write(uint32_t sector, uint32_t count, const void* buffer) +{ + /* TODO implement */ + return 0; +} + +uint32_t ftl_sync(void) +{ + /* TODO implement */ + return 0; +} + diff --git a/firmware/target/arm/s5l8700/meizu-m6sp/lcd-m6sp.c b/firmware/target/arm/s5l8700/meizu-m6sp/lcd-m6sp.c index fa3d5aa7f2..8e6a653f1b 100644 --- a/firmware/target/arm/s5l8700/meizu-m6sp/lcd-m6sp.c +++ b/firmware/target/arm/s5l8700/meizu-m6sp/lcd-m6sp.c @@ -56,6 +56,7 @@ #define LCD_TYPE1_ID 0x139 /* id for LCD type S6D0139 */ static int lcd_type = 0; +static bool lcd_is_active = false; /* simple and crude delay */ static void lcd_delay(int count) @@ -357,6 +358,13 @@ void lcd_enable(bool on) /* disable controller clock */ PWRCON |= (1 << 18); } + + lcd_is_active = on; +} + +bool lcd_active(void) +{ + return lcd_is_active; } /* initialise the lcd controller inside the s5l8700 */ @@ -468,3 +476,18 @@ void lcd_update(void) lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT); } +void lcd_blit_yuv(unsigned char * const src[3], + int src_x, int src_y, int stride, + int x, int y, int width, int height) +{ + (void)src; + (void)src_x; + (void)src_y; + (void)stride; + (void)x; + (void)y; + (void)width; + (void)height; + /* TODO: not implemented yet */ +} + diff --git a/firmware/target/arm/s5l8700/meizu-m6sp/nand-target.h b/firmware/target/arm/s5l8700/meizu-m6sp/nand-target.h index 67d2220185..dee690e5e6 100644 --- a/firmware/target/arm/s5l8700/meizu-m6sp/nand-target.h +++ b/firmware/target/arm/s5l8700/meizu-m6sp/nand-target.h @@ -49,6 +49,8 @@ uint32_t nand_block_erase(uint32_t bank, uint32_t page); const struct nand_device_info_type* nand_get_device_type(uint32_t bank); uint32_t nand_reset(uint32_t bank); uint32_t nand_device_init(void); +void nand_set_active(void); +long nand_last_activity(void); void nand_power_up(void); void nand_power_down(void); diff --git a/firmware/target/arm/s5l8700/meizu-m6sp/powermgmt-m6sp.c b/firmware/target/arm/s5l8700/meizu-m6sp/powermgmt-m6sp.c new file mode 100644 index 0000000000..86b6e46b4d --- /dev/null +++ b/firmware/target/arm/s5l8700/meizu-m6sp/powermgmt-m6sp.c @@ -0,0 +1,64 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright © 2008 Rafaël Carré + * + * 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. + * + ****************************************************************************/ + +#include "config.h" +#include "powermgmt.h" +#include "adc.h" +#include "adc-target.h" + +const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = +{ + /* TODO: this is just an initial guess */ + 3400 +}; + +const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = +{ + /* TODO: this is just an initial guess */ + 3300 +}; + +/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ +const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = +{ + /* TODO: simple uncalibrated curve, linear except for first 10% */ + { 3300, 3390, 3480, 3570, 3660, 3750, 3840, 3930, 4020, 4110, 4200 } +}; + +#if CONFIG_CHARGING +/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ +const unsigned short percent_to_volt_charge[11] = +{ + /* TODO: simple uncalibrated curve, linear except for first 10% */ + 3300, 3390, 3480, 3570, 3660, 3750, 3840, 3930, 4020, 4110, 4200 +}; +#endif /* CONFIG_CHARGING */ + +/* ADC should read 0x3ff=6.00V */ +#define BATTERY_SCALE_FACTOR 6000 +/* full-scale ADC readout (2^10) in millivolt */ + + +/* Returns battery voltage from ADC [millivolts] */ +unsigned int battery_adc_voltage(void) +{ + return (adc_read(ADC_BATTERY) * BATTERY_SCALE_FACTOR) >> 10; +} diff --git a/firmware/target/arm/s5l8700/nand-meizu.c b/firmware/target/arm/s5l8700/nand-meizu.c new file mode 100644 index 0000000000..382a147286 --- /dev/null +++ b/firmware/target/arm/s5l8700/nand-meizu.c @@ -0,0 +1,81 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Bertrik Sikken + * + * 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. + * + ****************************************************************************/ + + #include "config.h" + #include "nand-target.h" + +const struct nand_device_info_type* nand_get_device_type(uint32_t bank); + + +uint32_t nand_read_page(uint32_t bank, uint32_t page, void* databuffer, + void* sparebuffer, uint32_t doecc, + uint32_t checkempty) +{ + /* TODO implement */ + return 0; +} + +uint32_t nand_write_page(uint32_t bank, uint32_t page, void* databuffer, + void* sparebuffer, uint32_t doecc) +{ + /* TODO implement */ + return 0; +} + +uint32_t nand_block_erase(uint32_t bank, uint32_t page) +{ + /* TODO implement */ + return 0; +} + +uint32_t nand_reset(uint32_t bank) +{ + /* TODO implement */ + return 0; +} + +uint32_t nand_device_init(void) +{ + /* TODO implement */ + return 0; +} + +void nand_power_up(void) +{ + /* TODO implement */ +} + +void nand_power_down(void) +{ + /* TODO implement */ +} + +void nand_set_active(void) +{ + /* TODO implement */ +} + +long nand_last_activity(void) +{ + /* TODO implement */ + return 0; +} + diff --git a/firmware/target/arm/s5l8700/usb-s5l8700.c b/firmware/target/arm/s5l8700/usb-s5l8700.c new file mode 100644 index 0000000000..883f36b43e --- /dev/null +++ b/firmware/target/arm/s5l8700/usb-s5l8700.c @@ -0,0 +1,45 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Bertrik Sikken + * + * 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. + * + ****************************************************************************/ + +#include "config.h" +#include "s5l8700.h" +#include "usb.h" +#include "usb-target.h" + +void usb_init_device(void) +{ + /* TODO implement */ + + /* enable USB2.0 function controller to allow VBUS monitoring */ + PWRCON &= ~(1 << 15); +} + +void usb_enable(bool on) +{ + (void)on; + /* TODO implement */ +} + +int usb_detect(void) +{ + return (USB_TR & (1 << 15)) ? USB_INSERTED : USB_EXTRACTED; +} + diff --git a/firmware/target/arm/s5l8700/usb-target.h b/firmware/target/arm/s5l8700/usb-target.h new file mode 100644 index 0000000000..2c9f841773 --- /dev/null +++ b/firmware/target/arm/s5l8700/usb-target.h @@ -0,0 +1,24 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Bertrik Sikken + * + * 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. + * + ****************************************************************************/ + + void usb_init_device(void); + + -- cgit