Commit Graph

47 Commits

Author SHA1 Message Date
Tracy Wadleigh 317f69356c More compilation guards. 2020-05-26 08:12:21 -07:00
Tracy Wadleigh e8cc54e995 Extra compilation guards. 2020-05-26 08:06:03 -07:00
Tracy Wadleigh 47b1725a7d Modified the ISR. 2020-05-26 07:28:06 -07:00
Tracy Wadleigh a263688c5e Added sync & callback interface to KINETIS/GPIOv1. 2020-05-25 21:19:24 -07:00
Tracy Wadleigh c995b9c141
fix address assignment 2020-05-17 15:16:38 -07:00
Tracy Wadleigh 17f45e24a3
Fix up SD1 initialization for KL2x
In the case of KINETIS_SERIAL0_IS_UARTLP:
* the argument to `sd_lld_init_driver` needs to be explicitly coerced to a pointer of type `UART_TypeDef`;
* the initialization of `c4_p` needs to be patched, as its position is different in the underlying `UARTLP_TypeDef`.
2020-05-04 10:10:24 -07:00
Fabien Poussin bc65ee4513 Kinetis SPI driver 2019-10-02 13:54:24 +02:00
Fabien Poussin 2e17d54017 Kinetis ADC 2019-10-02 13:09:49 +02:00
Konstantin Oblaukhov d921781a45 KINETIS platform update for ChibiOS 18.2.x. 2018-11-20 09:53:30 +07:00
Konstantin Oblaukhov d200007a29 Reorganize KINETIS driver files 2018-11-20 09:53:22 +07:00
Michael Walker 619d45c0ff Fix MK66F18 compilation for the following HALs: Serial, I2C, EXT, ADC, GPT, PWM, SPI 2018-05-07 07:45:08 -07:00
Michael Walker 8f7e1d18b9 Always use IRC48M clock for USB on MK66F18 2018-05-02 07:53:01 -07:00
Michael Walker 5bec0d7abc Always use IRC48M clock for USB on MK66F18 2018-05-02 06:49:29 -07:00
Michael Walker 72b22c7f67 Merge branch 'master' into mike 2018-05-02 03:48:09 -07:00
Michael Walker 1fefdf78fe Remove duplicate code already in upstream master and add include dir 2018-05-02 03:47:26 -07:00
Michael Walker cd7559268d Merge branch 'master' into mike 2018-05-02 03:37:31 -07:00
Michael Walker 457afa6202 Remove duplication 2018-05-02 03:36:12 -07:00
Michael Walker 6d879f58f5 Merge remote-tracking branch 'upstream/master' 2018-05-02 03:33:23 -07:00
Michael Walker 0fbddccd80 disable voltage inrush regulator 2018-05-01 03:26:28 -07:00
Michael Walker 7506c2a2c1 support Teensy 3.6 2018-05-01 00:46:42 -07:00
Michael Walker c7e0258666 Merge branch 'master' into mike 2018-05-01 00:37:57 -07:00
Michael Walker 4e9f077fb1 Enable Kinesis on newer ChibiOS 2018-05-01 00:26:06 -07:00
Michael Walker b0a7581067 Attempt at Teensy 3.6 support 2018-04-30 16:34:26 -07:00
Fabien Poussin 424c7a2717 Fixed most testhal examples for STM32, updated configs using script. Fixed deprecated MS2ST calls. 2018-03-14 20:15:13 +01:00
Fabien Poussin 32f792087a
Merge pull request #139 from wiml/kinetis_sdhc
Add support for the Kinetis SDHC peripheral
2018-03-08 17:13:30 +01:00
Fabien Poussin 6927538038
Merge pull request #136 from wiml/k64_uarts
Added support for additional UARTs (up to six on the K64F).
2018-03-08 17:11:14 +01:00
Fabien Poussin 11066ebbd3
Merge pull request #143 from qmk/fix_kinesis_usb_data_sync
Fix Kinetis usb databank synchronization problems
2018-03-08 17:09:26 +01:00
Fred Sundvik b7f761313c Fix data usb data toggle sync problem
USB control transfers are structured as the following.
For incoming transfers
Setup (Data0 out)
Data (Data1/Data0 in) - starting with data 1
Status (Data1 out)

For outgoing transfers
Setup (Data0 out)
Data (Data1/Data0 out) - starting with data 1
Status (Data1 in)

The in buffers (device to host) are always correctly synchronized, since
they can always be reset to Data1 each setup packet without any
synchronization problems.

The problem occured for outgoing transfers (host to device). For
incoming transfers the data banks always alternates, and will
automatically stay in sync. Outgoing transfers also stays in sync when
there's an odd number of data packets. However when the number is even,
including zero, then the last packet received by the device will be
data0 and the next setup packet also has to be data0, so there's a
synchronization problem.

This itself is not a problem since data toggle synchronization(DTS) is
ignored for setup packets, however if the follwoing packet after that
is also an out packet, then the data bank will be wrong and the packet
dropped. In this case the USB spec don't allow sending a nack, so it
will only recover after a timeout, when the host tries to send a new
setup packet.

The old code tried to take care of this situation by reinitializing
both data banks when a setup packet is received. The problem is that the
next packet might already have been received or is in progress of being
received at this point, so the fixup comes to late. The new code does
the fixup when a status packet is about to be sent from the device to
avoid this problem.
2018-02-08 08:34:51 +02:00
Fred Sundvik 432bc1762f Add usb_lld_wakeup_host for Kinetis 2018-02-03 17:25:31 +02:00
Wim Lewis 7e51a3bcfa Use an interrupt instead of polling for simple commands.
Updated some comments and some trace statements.
2018-01-18 18:23:07 -08:00
Wim Lewis 48d924c24b Improved error handling: check the card's state before trying to abort
a failed data transfer; translate card status bits into HLD error
bits. Set BLKATTR_BLKCNT even when it's not being used, which seems to
avoid errors when alternating between multi-block and single-block
transfers. Some comments.
2018-01-18 01:33:04 -08:00
Wim Lewis ee3f7f1b85 Low-level driver for the Kinetis SDHC peripheral as found on the MK64FX512
and other members of the Kinetis family.
2018-01-06 03:17:53 -08:00
Wim Lewis c4eb6b4901 Added support for additional UARTs (up to six on the K64F).
Also moved some code that is duplicated per-UART into
local functions to reduce the amount of duplication.
2017-12-08 19:42:13 -08:00
flabbergast db3057e1fc [KINETIS] Add saved_state to USB driver. 2016-07-17 20:49:48 +01:00
flabbergast 3cde591bd2 [KINETIS] Fixes for kernel-less builds. 2016-05-20 19:16:47 +01:00
flabbergast 7d99206f05 [KINETIS] PAL driver: implement PAL_LINE. 2016-05-08 09:09:43 +01:00
Fabio Utzig 5c02f23706 Merge pull request #62 from flabbergast/i2c
[KINETIS] I2C update (timeouts, KL27Z)
2016-04-27 19:03:01 -03:00
flabbergast 9107b150b0 [KINETIS] Add I2C workaround for KL27Z. 2016-04-25 11:53:55 +01:00
flabbergast 2897589bf3 [KINETIS] Fix I2C clock divisor computation. 2016-04-25 11:53:55 +01:00
flabbergast 0a37322265 [KINETIS] I2C driver: implement timeout. 2016-04-25 11:53:55 +01:00
flabbergast fa9644e655 [KINETIS] Slightly rewrite and comment i2c driver. 2016-04-25 11:53:48 +01:00
bunnie 469e05d445 [KINETIS] fix ADC LLD bug, grpp access after clear 2016-04-24 18:12:19 +01:00
Jonathan Struebel 62ffe525e0 [KINETIS] Fix I2C TX to not wait for RX if requested rxbytes is 0 2016-04-08 19:24:47 -07:00
flabbergast 496e7f5e89 [KINETIS] Rename header guards in HAL. 2016-04-04 09:26:36 +01:00
flabbergast 51703da9df [KINETIS] Rename HAL LLD files. 2016-04-04 09:19:44 +01:00
flabbergast d5a880807b [KINETIS] HAL cleanup/update.
New entries in kinetis_registry.h to support new MCUs.
Moved registers to ext/CMSIS, like it is done for STM32.
Move the same drivers to LLD.
Add USB driver.
2016-03-22 17:51:46 +00:00
Fabio Utzig b67ecdfeca [KINETIS] Move from main repo to contrib 2016-03-07 12:33:00 -03:00