mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-02 13:14:51 +00:00
This provides a framework for additional work. It exposes an API (ccd_set_mode) that can be used by the PD code to enable Case Closed Debug. Enabling CCD will result in the USB 2.0 lines on Ryu (proto 2) to be disconnected from the AP and for the USB peripheral to be enabled and connected to the host. The result is an enumerated device with no interfaces. Signed-off-by: Anton Staaf <robotboy@chromium.org> BRANCH=None BUG=None TEST=make buildall -j Enable CCD ryu_p2 and verify that it is enumerated by the host correctly. This requires a reworked Ryu (proto 2 with pullup). Change-Id: I1fbecdd5f94a61519cfc18c5e087892c6bd77fde Reviewed-on: https://chromium-review.googlesource.com/229139 Reviewed-by: Anton Staaf <robotboy@chromium.org> Commit-Queue: Anton Staaf <robotboy@chromium.org> Tested-by: Anton Staaf <robotboy@chromium.org>
40 lines
857 B
C
40 lines
857 B
C
/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*
|
|
* Case Closed Debug common implementation
|
|
*/
|
|
|
|
#include "case_closed_debug.h"
|
|
|
|
#include "common.h"
|
|
#include "usb_api.h"
|
|
|
|
#if !defined(CONFIG_USB_INHIBIT_INIT)
|
|
#error "CONFIG_USB_INHIBIT_INIT must be defined to use Case Closed Debugging"
|
|
#endif
|
|
|
|
#if !defined(CONFIG_USB)
|
|
#error "CONFIG_USB must be defined to use Case Closed Debugging"
|
|
#endif
|
|
|
|
static enum ccd_mode current_mode = CCD_MODE_DISABLED;
|
|
|
|
void ccd_set_mode(enum ccd_mode new_mode)
|
|
{
|
|
if (new_mode == current_mode)
|
|
return;
|
|
|
|
if (current_mode != CCD_MODE_DISABLED) {
|
|
usb_release();
|
|
ccd_board_disconnect();
|
|
}
|
|
|
|
current_mode = new_mode;
|
|
|
|
if (new_mode != CCD_MODE_DISABLED) {
|
|
ccd_board_connect();
|
|
usb_init();
|
|
}
|
|
}
|