diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2017-02-23 11:33:19 +0100 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2017-09-05 21:42:12 +0200 |
commit | 1d121e8c082fe67757cf0d4df7b9e6ca1e26f755 (patch) | |
tree | 1c93842d99bb8e4a5f3ed5bca38c05e7f17894fa /firmware/target/hosted/sonynwz/adc-nwz.c | |
parent | 142f80f07d96305f1618c99c28c13319b1b279e6 (diff) | |
download | rockbox-1d121e8c082fe67757cf0d4df7b9e6ca1e26f755.tar.gz rockbox-1d121e8c082fe67757cf0d4df7b9e6ca1e26f755.zip |
Initial commit for the Sony NWZ linux port
SUPPORTED SERIES:
- NWZ-E450
- NWZ-E460
- NWZ-E470
- NWZ-E580
- NWZ-A10
NOTES:
- bootloader makefile convert an extra font to be installed alongside the bootloader
since sysfont is way too small
- the toolsicon bitmap comes from the Oxygen iconset
- touchscreen driver is untested
TODO:
- implement audio routing driver (pcm is handled by pcm-alsa)
- fix playback: it crashes on illegal instruction in DEBUG builds
- find out why the browser starts at / instead of /contents
- implement radio support
- implement return to OF for usb handling
- calibrate battery curve (NB: of can report a battery level on a 0-5 scale but
probabl don't want to use that ?)
- implement simulator build (we need a nice image of the player)
- figure out if we can detect jack removal
POTENTIAL TODOS:
- try to build a usb serial gadget and gdbserver
Change-Id: Ic77d71e0651355d47cc4e423a40fb64a60c69a80
Diffstat (limited to 'firmware/target/hosted/sonynwz/adc-nwz.c')
-rw-r--r-- | firmware/target/hosted/sonynwz/adc-nwz.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/firmware/target/hosted/sonynwz/adc-nwz.c b/firmware/target/hosted/sonynwz/adc-nwz.c new file mode 100644 index 0000000000..d981ead9eb --- /dev/null +++ b/firmware/target/hosted/sonynwz/adc-nwz.c @@ -0,0 +1,63 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2016 by Amaury Pouly + * + * 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 "adc.h" +#include "adc-target.h" +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <sys/ioctl.h> + +static int adc_fd = -1; /* file descriptor */ + +static const char *nwz_adc_channel_name[NWZ_ADC_MAX_CHAN + 1] = +{ + [NWZ_ADC_VCCBAT] = "VCCBAT", + [NWZ_ADC_VCCVBUS] = "VCCBUS", + [NWZ_ADC_ADIN3] = "ADIN3", + [NWZ_ADC_ADIN4] = "ADIN4", + [NWZ_ADC_ADIN5] = "ADIN5", + [NWZ_ADC_ADIN6] = "ADIN6", + [NWZ_ADC_ADIN7] = "ADIN7", + [NWZ_ADC_ADIN8] = "ADIN8" +}; + +void adc_init(void) +{ + adc_fd = open(NWZ_ADC_DEV, O_RDONLY); +} + +unsigned short adc_read(int channel) +{ + unsigned char val; + if(ioctl(adc_fd, NWZ_ADC_GET_VAL(channel), &val) < 0) + return 0; + else + return val; +} + +const char *adc_name(int channel) +{ + if(channel < NWZ_ADC_MIN_CHAN || channel > NWZ_ADC_MAX_CHAN) + return ""; + return nwz_adc_channel_name[channel]; +} + |