mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 09:32:34 +00:00
1. porting MorseMicro HaLow driver to support HaLow on EAP112 2. Only support FCC regulation because of hardware limitation 3. Add /etc/init.d/halow-gpio-reset to initialize HaLow chip in early stage 4. Add /etc/uci-defaults/aaa-fix-phy0-to-morse to correct the default uci for HaLow radio. Signed-off-by: Ian Chen <ian77_chen@accton.com>
61 lines
1.7 KiB
Diff
61 lines
1.7 KiB
Diff
--- a/spi.c
|
|
+++ b/spi.c
|
|
@@ -175,10 +175,12 @@ static int morse_spi_setup(struct spi_de
|
|
spi->bits_per_word = 8;
|
|
spi->max_speed_hz = max_speed_hz;
|
|
|
|
+#if 0
|
|
if (spi->max_speed_hz > MAX_SPI_CLK_SPEED) {
|
|
dev_err(&spi->dev, "SPI clocks above 50MHz are not supported by Morse chip\n");
|
|
return -EPERM;
|
|
}
|
|
+#endif
|
|
|
|
ret = spi_setup(spi);
|
|
if (ret < 0) {
|
|
@@ -432,7 +434,7 @@ static u8 *morse_spi_find_data_ack(struc
|
|
{
|
|
u8 *cp = data;
|
|
|
|
- while (cp < end && *cp == 0xff)
|
|
+ while (cp < end && (SPI_MMC_RESPONSE_CODE(*cp) != SPI_RESPONSE_ACCEPTED))
|
|
cp++;
|
|
|
|
if (cp == end)
|
|
@@ -529,13 +531,10 @@ static int morse_spi_cmd53_read(struct m
|
|
cp += 4;
|
|
|
|
if (!block) {
|
|
- /* Scale bytes delay to block */
|
|
- u32 extra_bytes = (count * mspi->inter_block_delay_bytes) / MMC_SPI_BLOCKSIZE;
|
|
-
|
|
/* Allow 4 bytes for CRC and another 10 bytes for start block token & chip delays
|
|
* (usually comes in 2).
|
|
*/
|
|
- data_size = count + 4 + 4 + extra_bytes;
|
|
+ data_size = count + 4 + 4 + mspi->inter_block_delay_bytes;
|
|
if (is_rk3288)
|
|
/* Short transactions are sometimes delayed. These extra bytes give enough
|
|
* cycles to receive all the data. This could be optimised to a lower
|
|
@@ -601,6 +600,7 @@ static int morse_spi_cmd53_write(struct
|
|
u8 *resp;
|
|
u8 *end;
|
|
u8 *ack = cp;
|
|
+ u8 *test_ack;
|
|
u32 data_size;
|
|
int i;
|
|
|
|
@@ -656,10 +656,11 @@ static int morse_spi_cmd53_write(struct
|
|
/* crc */
|
|
*cp = (crc & 0xFF00) >> 8;
|
|
*(cp + 1) = (crc & 0xFF);
|
|
+ test_ack = cp + 2;
|
|
cp += sizeof(crc);
|
|
|
|
/* Allow more bytes for status and chip processing (depends on CLK) */
|
|
- cp += block ? mspi->inter_block_delay_bytes : 4;
|
|
+ cp += mspi->inter_block_delay_bytes;
|
|
}
|
|
|
|
/* Do the actual transfer */
|