Barry Wardell | e367b05 | 2006-08-22 20:17:09 +0000 | [diff] [blame] | 1 | /*************************************************************************** |
| 2 | * __________ __ ___. |
| 3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 7 | * \/ \/ \/ \/ \/ |
| 8 | * $Id$ |
| 9 | * |
Jens Arnold | fad79dc | 2007-04-11 20:44:32 +0000 | [diff] [blame] | 10 | * Copyright (C) 2007 by Jens Arnold |
Barry Wardell | e367b05 | 2006-08-22 20:17:09 +0000 | [diff] [blame] | 11 | * |
Daniel Stenberg | 2acc0ac | 2008-06-28 18:10:04 +0000 | [diff] [blame^] | 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. |
Barry Wardell | e367b05 | 2006-08-22 20:17:09 +0000 | [diff] [blame] | 16 | * |
| 17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| 18 | * KIND, either express or implied. |
| 19 | * |
| 20 | ****************************************************************************/ |
Jens Arnold | fad79dc | 2007-04-11 20:44:32 +0000 | [diff] [blame] | 21 | #include "config.h" |
| 22 | #include <stdbool.h> |
| 23 | #include "adc.h" |
| 24 | #include "cpu.h" |
| 25 | #include "hwcompat.h" |
| 26 | #include "system.h" |
Dave Chapman | 1672350 | 2007-09-04 08:03:07 +0000 | [diff] [blame] | 27 | #include "usb.h" |
Barry Wardell | e367b05 | 2006-08-22 20:17:09 +0000 | [diff] [blame] | 28 | |
Dave Chapman | 1672350 | 2007-09-04 08:03:07 +0000 | [diff] [blame] | 29 | int usb_detect(void) |
Jens Arnold | fad79dc | 2007-04-11 20:44:32 +0000 | [diff] [blame] | 30 | { |
Dave Chapman | 1672350 | 2007-09-04 08:03:07 +0000 | [diff] [blame] | 31 | return (adc_read(ADC_USB_POWER) > 500) ? USB_INSERTED : USB_EXTRACTED; |
Jens Arnold | fad79dc | 2007-04-11 20:44:32 +0000 | [diff] [blame] | 32 | } |
Barry Wardell | e367b05 | 2006-08-22 20:17:09 +0000 | [diff] [blame] | 33 | |
Jens Arnold | fad79dc | 2007-04-11 20:44:32 +0000 | [diff] [blame] | 34 | void usb_enable(bool on) |
| 35 | { |
Jens Arnold | 8636e69 | 2007-04-11 23:51:00 +0000 | [diff] [blame] | 36 | if(HW_MASK & USB_ACTIVE_HIGH) |
Jens Arnold | fad79dc | 2007-04-11 20:44:32 +0000 | [diff] [blame] | 37 | on = !on; |
| 38 | |
| 39 | if(on) |
| 40 | and_b(~0x04, &PADRH); /* enable USB */ |
| 41 | else |
| 42 | or_b(0x04, &PADRH); |
| 43 | } |
| 44 | |
| 45 | void usb_init_device(void) |
| 46 | { |
| 47 | usb_enable(false); |
| 48 | or_b(0x04, &PAIORH); |
| 49 | } |