summaryrefslogtreecommitdiff
path: root/tmk_core/protocol/arm_atsam/usb/usb_hub.c
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/protocol/arm_atsam/usb/usb_hub.c')
-rw-r--r--tmk_core/protocol/arm_atsam/usb/usb_hub.c76
1 files changed, 39 insertions, 37 deletions
diff --git a/tmk_core/protocol/arm_atsam/usb/usb_hub.c b/tmk_core/protocol/arm_atsam/usb/usb_hub.c
index c5fd284aab..14fba799c7 100644
--- a/tmk_core/protocol/arm_atsam/usb/usb_hub.c
+++ b/tmk_core/protocol/arm_atsam/usb/usb_hub.c
@@ -27,7 +27,7 @@ uint8_t usb_extra_state;
uint8_t usb_extra_manual;
uint8_t usb_gcr_auto;
-#endif // MD_BOOTLOADER
+#endif // MD_BOOTLOADER
uint16_t adc_extra;
@@ -51,10 +51,10 @@ void USB_Hub_init(void) {
pmclk->APBBMASK.bit.USB_ = 1;
// setup port pins for D-, D+, and SOF_1KHZ
- pport->Group[0].PMUX[12].reg = 0x77; // PA24, PA25, function column H for USB D-, D+
+ pport->Group[0].PMUX[12].reg = 0x77; // PA24, PA25, function column H for USB D-, D+
pport->Group[0].PINCFG[24].bit.PMUXEN = 1;
pport->Group[0].PINCFG[25].bit.PMUXEN = 1;
- pport->Group[1].PMUX[11].bit.PMUXE = 7; // PB22, function column H for USB SOF_1KHz output
+ pport->Group[1].PMUX[11].bit.PMUXE = 7; // PB22, function column H for USB SOF_1KHz output
pport->Group[1].PINCFG[22].bit.PMUXEN = 1;
// configure and enable DFLL for USB clock recovery mode at 48MHz
@@ -78,7 +78,7 @@ void USB_Hub_init(void) {
DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLCTRLB_4);
}
posc->DFLLCTRLB.bit.CCDIS = 1;
- posc->DFLLMUL.bit.MUL = 0xBB80; // 4800 x 1KHz
+ posc->DFLLMUL.bit.MUL = 0xBB80; // 4800 x 1KHz
while (posc->DFLLSYNC.bit.DFLLMUL) {
DBGC(DC_USB2422_INIT_OSC_SYNC_DFLLMUL);
}
@@ -99,7 +99,7 @@ void USB_Hub_init(void) {
pusb->DEVICE.PADCAL.bit.TRANSP = (USB_FUSES_TRANSP_ADDR >> USB_FUSES_TRANSP_Pos) & USB_FUSES_TRANSP_Msk;
pusb->DEVICE.PADCAL.bit.TRIM = (USB_FUSES_TRIM_ADDR >> USB_FUSES_TRIM_Pos) & USB_FUSES_TRIM_Msk;
// device mode, enabled
- pusb->DEVICE.CTRLB.bit.SPDCONF = 0; // full speed
+ pusb->DEVICE.CTRLB.bit.SPDCONF = 0; // full speed
pusb->DEVICE.CTRLA.bit.MODE = 0;
pusb->DEVICE.CTRLA.bit.ENABLE = 1;
while (pusb->DEVICE.SYNCBUSY.bit.ENABLE) {
@@ -111,8 +111,8 @@ void USB_Hub_init(void) {
USB2422_init();
- sr_exp_data.bit.HUB_CONNECT = 1; // connect signal
- sr_exp_data.bit.HUB_RESET_N = 1; // reset high
+ sr_exp_data.bit.HUB_CONNECT = 1; // connect signal
+ sr_exp_data.bit.HUB_RESET_N = 1; // reset high
SR_EXP_WriteData();
wait_us(100);
@@ -122,7 +122,7 @@ void USB_Hub_init(void) {
usb_extra_manual = 0;
usb_gcr_auto = 1;
-#endif // MD_BOOTLOADER
+#endif // MD_BOOTLOADER
DBGC(DC_USB2422_INIT_COMPLETE);
}
@@ -131,10 +131,10 @@ void USB_reset(void) {
DBGC(DC_USB_RESET_BEGIN);
// pulse reset for at least 1 usec
- sr_exp_data.bit.HUB_RESET_N = 0; // reset low
+ sr_exp_data.bit.HUB_RESET_N = 0; // reset low
SR_EXP_WriteData();
wait_us(2);
- sr_exp_data.bit.HUB_RESET_N = 1; // reset high to run
+ sr_exp_data.bit.HUB_RESET_N = 1; // reset high to run
SR_EXP_WriteData();
DBGC(DC_USB_RESET_COMPLETE);
@@ -150,7 +150,9 @@ void USB_configure(void) {
DBGC(DC_USB_CONFIGURE_COMPLETE);
}
-uint16_t USB_active(void) { return USB2422_active(); }
+uint16_t USB_active(void) {
+ return USB2422_active();
+}
void USB_set_host_by_voltage(void) {
// UP is upstream device (HOST)
@@ -162,13 +164,13 @@ void USB_set_host_by_voltage(void) {
usb_host_port = USB_HOST_PORT_UNKNOWN;
#ifndef MD_BOOTLOADER
usb_extra_state = USB_EXTRA_STATE_UNKNOWN;
-#endif // MD_BOOTLOADER
- sr_exp_data.bit.SRC_1 = 1; // USBC-1 available for test
- sr_exp_data.bit.SRC_2 = 1; // USBC-2 available for test
- sr_exp_data.bit.E_UP_N = 1; // HOST disable
- sr_exp_data.bit.E_DN1_N = 1; // EXTRA disable
- sr_exp_data.bit.E_VBUS_1 = 0; // USBC-1 disable full power I/O
- sr_exp_data.bit.E_VBUS_2 = 0; // USBC-2 disable full power I/O
+#endif // MD_BOOTLOADER
+ sr_exp_data.bit.SRC_1 = 1; // USBC-1 available for test
+ sr_exp_data.bit.SRC_2 = 1; // USBC-2 available for test
+ sr_exp_data.bit.E_UP_N = 1; // HOST disable
+ sr_exp_data.bit.E_DN1_N = 1; // EXTRA disable
+ sr_exp_data.bit.E_VBUS_1 = 0; // USBC-1 disable full power I/O
+ sr_exp_data.bit.E_VBUS_2 = 0; // USBC-2 disable full power I/O
SR_EXP_WriteData();
@@ -185,33 +187,33 @@ void USB_set_host_by_voltage(void) {
v_con_2_boot = v_con_2;
if (v_con_1 > v_con_2) {
- sr_exp_data.bit.S_UP = 0; // HOST to USBC-1
- sr_exp_data.bit.S_DN1 = 1; // EXTRA to USBC-2
- sr_exp_data.bit.SRC_1 = 1; // HOST on USBC-1
- sr_exp_data.bit.SRC_2 = 0; // EXTRA available on USBC-2
+ sr_exp_data.bit.S_UP = 0; // HOST to USBC-1
+ sr_exp_data.bit.S_DN1 = 1; // EXTRA to USBC-2
+ sr_exp_data.bit.SRC_1 = 1; // HOST on USBC-1
+ sr_exp_data.bit.SRC_2 = 0; // EXTRA available on USBC-2
- sr_exp_data.bit.E_VBUS_1 = 1; // USBC-1 enable full power I/O
- sr_exp_data.bit.E_VBUS_2 = 0; // USBC-2 disable full power I/O
+ sr_exp_data.bit.E_VBUS_1 = 1; // USBC-1 enable full power I/O
+ sr_exp_data.bit.E_VBUS_2 = 0; // USBC-2 disable full power I/O
SR_EXP_WriteData();
- sr_exp_data.bit.E_UP_N = 0; // HOST enable
+ sr_exp_data.bit.E_UP_N = 0; // HOST enable
SR_EXP_WriteData();
usb_host_port = USB_HOST_PORT_1;
} else {
- sr_exp_data.bit.S_UP = 1; // EXTRA to USBC-1
- sr_exp_data.bit.S_DN1 = 0; // HOST to USBC-2
- sr_exp_data.bit.SRC_1 = 0; // EXTRA available on USBC-1
- sr_exp_data.bit.SRC_2 = 1; // HOST on USBC-2
+ sr_exp_data.bit.S_UP = 1; // EXTRA to USBC-1
+ sr_exp_data.bit.S_DN1 = 0; // HOST to USBC-2
+ sr_exp_data.bit.SRC_1 = 0; // EXTRA available on USBC-1
+ sr_exp_data.bit.SRC_2 = 1; // HOST on USBC-2
- sr_exp_data.bit.E_VBUS_1 = 0; // USBC-1 disable full power I/O
- sr_exp_data.bit.E_VBUS_2 = 1; // USBC-2 enable full power I/O
+ sr_exp_data.bit.E_VBUS_1 = 0; // USBC-1 disable full power I/O
+ sr_exp_data.bit.E_VBUS_2 = 1; // USBC-2 enable full power I/O
SR_EXP_WriteData();
- sr_exp_data.bit.E_UP_N = 0; // HOST enable
+ sr_exp_data.bit.E_UP_N = 0; // HOST enable
SR_EXP_WriteData();
@@ -220,7 +222,7 @@ void USB_set_host_by_voltage(void) {
#ifndef MD_BOOTLOADER
usb_extra_state = USB_EXTRA_STATE_DISABLED;
-#endif // MD_BOOTLOADER
+#endif // MD_BOOTLOADER
USB_reset();
USB_configure();
@@ -241,7 +243,7 @@ uint8_t USB_Hub_Port_Detect_Init(void) {
while (!USB_active()) {
tmod = timer_read64() % PORT_DETECT_RETRY_INTERVAL;
- if (v_con_1 > v_con_2) // Values updated from USB_set_host_by_voltage();
+ if (v_con_1 > v_con_2) // Values updated from USB_set_host_by_voltage();
{
// 1 flash for port 1 detected
if (tmod > 500 && tmod < 600) {
@@ -249,7 +251,7 @@ uint8_t USB_Hub_Port_Detect_Init(void) {
} else {
DBG_LED_OFF;
}
- } else if (v_con_2 > v_con_1) // Values updated from USB_set_host_by_voltage();
+ } else if (v_con_2 > v_con_1) // Values updated from USB_set_host_by_voltage();
{
// 2 flash for port 2 detected
if (tmod > 500 && tmod < 600) {
@@ -321,7 +323,7 @@ void USB_HandleExtraDevice(void) {
// Detect unplug and reset state to disabled
if (adc_extra > USB_EXTRA_ADC_THRESHOLD) usb_extra_state = USB_EXTRA_STATE_DISABLED;
- return; // Return even if unplug detected
+ return; // Return even if unplug detected
}
if (usb_extra_manual) {
@@ -337,4 +339,4 @@ void USB_HandleExtraDevice(void) {
USB_ExtraSetState(USB_EXTRA_STATE_DISABLED);
}
-#endif // MD_BOOTLOADER
+#endif // MD_BOOTLOADER