1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright © 2009 Bertrik Sikken
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
27 /* Power handling for S5L8700 based Meizu players
29 The M3 and M6 players appear to use the same pins for power, USB detection
35 /* take down PWRON_M (P1.3) */
41 /* configure PWRON_M (P1.3) as output and set it to keep power turned on */
42 PCON1
= (PCON1
& ~(0xF << 12)) | (0x1 << 12);
45 /* configure PBSTAT (P1.4) as input */
46 PCON1
&= ~(0xF << 16);
48 /* configure CHRG (P5.7) as input to monitor charging state */
49 PCON5
&= ~(0xF << 28);
51 /* enable USB2.0 function controller to allow VBUS monitoring */
56 unsigned int power_input_status(void)
58 /* check VBUS in the USB2.0 function controller */
59 if (USB_TR
& (1 << 15)) {
60 return POWER_INPUT_USB
;
63 return POWER_INPUT_NONE
;
66 bool charging_state(void)
68 /* CHRG pin goes low when charging */
69 return ((PDAT5
& (1 << 7)) == 0);
71 #endif /* CONFIG_CHARGING */
74 static bool tuner_on
= false;
76 bool tuner_power(bool status
)
78 if (status
!= tuner_on
)
87 bool tuner_powered(void)
89 return tuner_on
; /* No debug info */
91 #endif /* CONFIG_TUNER */