forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ath79: copy patches and kernel config from 5.15 to 6.1
This is preparation for kernel 6.1 support. Signed-off-by: Shiji Yang <[email protected]>
- Loading branch information
1 parent
c60dd7b
commit d9a9caf
Showing
36 changed files
with
3,928 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
CONFIG_AG71XX=y | ||
# CONFIG_AG71XX_DEBUG is not set | ||
CONFIG_AG71XX_DEBUG_FS=y | ||
CONFIG_AR8216_PHY=y | ||
CONFIG_AR8216_PHY_LEDS=y | ||
CONFIG_ARCH_32BIT_OFF_T=y | ||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
CONFIG_ARCH_KEEP_MEMBLOCK=y | ||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15 | ||
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15 | ||
CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
CONFIG_AT803X_PHY=y | ||
CONFIG_ATH79=y | ||
CONFIG_ATH79_WDT=y | ||
CONFIG_BLK_MQ_PCI=y | ||
CONFIG_CEVT_R4K=y | ||
CONFIG_CLONE_BACKWARDS=y | ||
CONFIG_CMDLINE="rootfstype=squashfs,jffs2" | ||
CONFIG_CMDLINE_BOOL=y | ||
# CONFIG_CMDLINE_OVERRIDE is not set | ||
CONFIG_COMMON_CLK=y | ||
CONFIG_COMPAT_32BIT_TIME=y | ||
CONFIG_CPU_BIG_ENDIAN=y | ||
CONFIG_CPU_GENERIC_DUMP_TLB=y | ||
CONFIG_CPU_HAS_DIEI=y | ||
CONFIG_CPU_HAS_PREFETCH=y | ||
CONFIG_CPU_HAS_RIXI=y | ||
CONFIG_CPU_HAS_SYNC=y | ||
CONFIG_CPU_MIPS32=y | ||
CONFIG_CPU_MIPS32_R2=y | ||
CONFIG_CPU_MIPSR2=y | ||
CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y | ||
CONFIG_CPU_R4K_CACHE_TLB=y | ||
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
CONFIG_CPU_SUPPORTS_MSA=y | ||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y | ||
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2 | ||
CONFIG_CRYPTO_RNG2=y | ||
CONFIG_CSRC_R4K=y | ||
CONFIG_DMA_NONCOHERENT=y | ||
CONFIG_DTC=y | ||
CONFIG_EARLY_PRINTK=y | ||
CONFIG_ETHERNET_PACKET_MANGLE=y | ||
CONFIG_FIXED_PHY=y | ||
CONFIG_FWNODE_MDIO=y | ||
CONFIG_FW_LOADER_PAGED_BUF=y | ||
CONFIG_GENERIC_ATOMIC64=y | ||
CONFIG_GENERIC_CLOCKEVENTS=y | ||
CONFIG_GENERIC_CMOS_UPDATE=y | ||
CONFIG_GENERIC_CPU_AUTOPROBE=y | ||
CONFIG_GENERIC_FIND_FIRST_BIT=y | ||
CONFIG_GENERIC_GETTIMEOFDAY=y | ||
CONFIG_GENERIC_IOMAP=y | ||
CONFIG_GENERIC_IRQ_CHIP=y | ||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y | ||
CONFIG_GENERIC_IRQ_SHOW=y | ||
CONFIG_GENERIC_LIB_ASHLDI3=y | ||
CONFIG_GENERIC_LIB_ASHRDI3=y | ||
CONFIG_GENERIC_LIB_CMPDI2=y | ||
CONFIG_GENERIC_LIB_LSHRDI3=y | ||
CONFIG_GENERIC_LIB_UCMPDI2=y | ||
CONFIG_GENERIC_PCI_IOMAP=y | ||
CONFIG_GENERIC_PHY=y | ||
CONFIG_GENERIC_PINCONF=y | ||
CONFIG_GENERIC_PINCTRL_GROUPS=y | ||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y | ||
CONFIG_GENERIC_SCHED_CLOCK=y | ||
CONFIG_GENERIC_SMP_IDLE_THREAD=y | ||
CONFIG_GENERIC_TIME_VSYSCALL=y | ||
CONFIG_GPIOLIB_IRQCHIP=y | ||
CONFIG_GPIO_74X164=y | ||
CONFIG_GPIO_ATH79=y | ||
CONFIG_GPIO_CDEV=y | ||
CONFIG_GPIO_GENERIC=y | ||
# CONFIG_GPIO_LATCH is not set | ||
# CONFIG_GPIO_RB91X_KEY is not set | ||
CONFIG_HANDLE_DOMAIN_IRQ=y | ||
CONFIG_HARDWARE_WATCHPOINTS=y | ||
CONFIG_HAS_DMA=y | ||
CONFIG_HAS_IOMEM=y | ||
CONFIG_HAS_IOPORT_MAP=y | ||
CONFIG_HZ_PERIODIC=y | ||
CONFIG_INITRAMFS_SOURCE="" | ||
CONFIG_IRQCHIP=y | ||
CONFIG_IRQ_DOMAIN=y | ||
CONFIG_IRQ_FORCED_THREADING=y | ||
CONFIG_IRQ_MIPS_CPU=y | ||
CONFIG_IRQ_WORK=y | ||
CONFIG_LEDS_GPIO=y | ||
# CONFIG_LEDS_RESET is not set | ||
CONFIG_LIBFDT=y | ||
CONFIG_LOCK_DEBUGGING_SUPPORT=y | ||
CONFIG_MDIO_BITBANG=y | ||
CONFIG_MDIO_BUS=y | ||
CONFIG_MDIO_DEVICE=y | ||
CONFIG_MDIO_DEVRES=y | ||
CONFIG_MDIO_GPIO=y | ||
CONFIG_MEMFD_CREATE=y | ||
# CONFIG_MFD_RB4XX_CPLD is not set | ||
CONFIG_MFD_SYSCON=y | ||
CONFIG_MIGRATION=y | ||
CONFIG_MIPS=y | ||
CONFIG_MIPS_ASID_BITS=8 | ||
CONFIG_MIPS_ASID_SHIFT=0 | ||
CONFIG_MIPS_CLOCK_VSYSCALL=y | ||
# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set | ||
# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set | ||
CONFIG_MIPS_CMDLINE_FROM_DTB=y | ||
CONFIG_MIPS_EBPF_JIT=y | ||
CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
CONFIG_MIPS_LD_CAN_LINK_VDSO=y | ||
# CONFIG_MIPS_NO_APPENDED_DTB is not set | ||
CONFIG_MIPS_RAW_APPENDED_DTB=y | ||
CONFIG_MIPS_SPRAM=y | ||
CONFIG_MODULES_USE_ELF_REL=y | ||
CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
CONFIG_MTD_CFI_GEOMETRY=y | ||
# CONFIG_MTD_CFI_I2 is not set | ||
# CONFIG_MTD_CFI_INTELEXT is not set | ||
CONFIG_MTD_CMDLINE_PARTS=y | ||
# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set | ||
# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set | ||
CONFIG_MTD_PARSER_CYBERTAN=y | ||
# CONFIG_MTD_PARSER_TPLINK_SAFELOADER is not set | ||
CONFIG_MTD_PHYSMAP=y | ||
CONFIG_MTD_SPI_NOR=y | ||
CONFIG_MTD_SPLIT_ELF_FW=y | ||
CONFIG_MTD_SPLIT_LZMA_FW=y | ||
CONFIG_MTD_SPLIT_SEAMA_FW=y | ||
CONFIG_MTD_SPLIT_TPLINK_FW=y | ||
CONFIG_MTD_SPLIT_UIMAGE_FW=y | ||
CONFIG_MTD_SPLIT_WRGG_FW=y | ||
CONFIG_MTD_VIRT_CONCAT=y | ||
CONFIG_NEED_DMA_MAP_STATE=y | ||
CONFIG_NEED_PER_CPU_KM=y | ||
CONFIG_NET_SELFTESTS=y | ||
CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y | ||
CONFIG_NVMEM=y | ||
CONFIG_OF=y | ||
CONFIG_OF_ADDRESS=y | ||
CONFIG_OF_EARLY_FLATTREE=y | ||
CONFIG_OF_FLATTREE=y | ||
CONFIG_OF_GPIO=y | ||
CONFIG_OF_IRQ=y | ||
CONFIG_OF_KOBJ=y | ||
CONFIG_OF_MDIO=y | ||
CONFIG_PCI=y | ||
CONFIG_PCI_AR71XX=y | ||
CONFIG_PCI_AR724X=y | ||
CONFIG_PCI_DISABLE_COMMON_QUIRKS=y | ||
CONFIG_PCI_DOMAINS=y | ||
CONFIG_PCI_DRIVERS_LEGACY=y | ||
CONFIG_PERF_USE_VMALLOC=y | ||
CONFIG_PGTABLE_LEVELS=2 | ||
CONFIG_PHYLIB=y | ||
# CONFIG_PHY_AR7100_USB is not set | ||
# CONFIG_PHY_AR7200_USB is not set | ||
# CONFIG_PHY_ATH79_USB is not set | ||
CONFIG_PINCTRL=y | ||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y | ||
CONFIG_RATIONAL=y | ||
CONFIG_REGMAP=y | ||
CONFIG_REGMAP_MMIO=y | ||
CONFIG_REGULATOR=y | ||
CONFIG_RESET_ATH79=y | ||
CONFIG_RESET_CONTROLLER=y | ||
CONFIG_SERIAL_8250_NR_UARTS=1 | ||
CONFIG_SERIAL_8250_RUNTIME_UARTS=1 | ||
CONFIG_SERIAL_AR933X=y | ||
CONFIG_SERIAL_AR933X_CONSOLE=y | ||
CONFIG_SERIAL_AR933X_NR_UARTS=2 | ||
CONFIG_SERIAL_MCTRL_GPIO=y | ||
CONFIG_SERIAL_OF_PLATFORM=y | ||
CONFIG_SPI=y | ||
CONFIG_SPI_AR934X=y | ||
CONFIG_SPI_ATH79=y | ||
CONFIG_SPI_BITBANG=y | ||
CONFIG_SPI_GPIO=y | ||
CONFIG_SPI_MASTER=y | ||
CONFIG_SPI_MEM=y | ||
# CONFIG_SPI_RB4XX is not set | ||
CONFIG_SRCU=y | ||
CONFIG_SWCONFIG=y | ||
CONFIG_SWCONFIG_LEDS=y | ||
CONFIG_SWPHY=y | ||
CONFIG_SYSCTL_EXCEPTION_TRACE=y | ||
CONFIG_SYS_HAS_CPU_MIPS32_R2=y | ||
CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | ||
CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | ||
CONFIG_SYS_SUPPORTS_MIPS16=y | ||
CONFIG_SYS_SUPPORTS_ZBOOT=y | ||
CONFIG_SYS_SUPPORTS_ZBOOT_UART_PROM=y | ||
CONFIG_TARGET_ISA_REV=2 | ||
CONFIG_TICK_CPU_ACCOUNTING=y | ||
CONFIG_TINY_SRCU=y | ||
CONFIG_USB_SUPPORT=y | ||
CONFIG_USE_OF=y |
27 changes: 27 additions & 0 deletions
27
target/linux/ath79/patches-6.1/010-v5.17-spi-ar934x-fix-transfer-and-word-delays.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
From c70282457c380db7deb57c81a6894debc8f88efa Mon Sep 17 00:00:00 2001 | ||
From: Oskari Lemmela <[email protected]> | ||
Date: Wed, 22 Dec 2021 07:59:58 +0200 | ||
Subject: [PATCH] spi: ar934x: fix transfer and word delays | ||
|
||
Add missing delay between transferred messages and words. | ||
|
||
Signed-off-by: Oskari Lemmela <[email protected]> | ||
Link: https://lore.kernel.org/r/[email protected] | ||
Signed-off-by: Mark Brown <[email protected]> | ||
--- | ||
drivers/spi/spi-ar934x.c | 2 ++ | ||
1 file changed, 2 insertions(+) | ||
|
||
--- a/drivers/spi/spi-ar934x.c | ||
+++ b/drivers/spi/spi-ar934x.c | ||
@@ -137,8 +137,10 @@ static int ar934x_spi_transfer_one_messa | ||
reg >>= 8; | ||
} | ||
} | ||
+ spi_delay_exec(&t->word_delay, t); | ||
} | ||
m->actual_length += t->len; | ||
+ spi_transfer_delay_exec(t); | ||
} | ||
|
||
msg_done: |
62 changes: 62 additions & 0 deletions
62
target/linux/ath79/patches-6.1/011-v5.17-spi-ar934x-fix-transfer-size.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
From ebe33e5a98dcf14a9630845f3f10c193584ac054 Mon Sep 17 00:00:00 2001 | ||
From: Oskari Lemmela <[email protected]> | ||
Date: Wed, 22 Dec 2021 07:59:57 +0200 | ||
Subject: [PATCH] spi: ar934x: fix transfer size | ||
|
||
If bits_per_word is configured, transfer only word amount | ||
of data per iteration. | ||
|
||
Signed-off-by: Oskari Lemmela <[email protected]> | ||
Link: https://lore.kernel.org/r/[email protected] | ||
Signed-off-by: Mark Brown <[email protected]> | ||
--- | ||
drivers/spi/spi-ar934x.c | 16 +++++++++++----- | ||
1 file changed, 11 insertions(+), 5 deletions(-) | ||
|
||
--- a/drivers/spi/spi-ar934x.c | ||
+++ b/drivers/spi/spi-ar934x.c | ||
@@ -82,7 +82,7 @@ static int ar934x_spi_transfer_one_messa | ||
struct spi_device *spi = m->spi; | ||
unsigned long trx_done, trx_cur; | ||
int stat = 0; | ||
- u8 term = 0; | ||
+ u8 bpw, term = 0; | ||
int div, i; | ||
u32 reg; | ||
const u8 *tx_buf; | ||
@@ -90,6 +90,11 @@ static int ar934x_spi_transfer_one_messa | ||
|
||
m->actual_length = 0; | ||
list_for_each_entry(t, &m->transfers, transfer_list) { | ||
+ if (t->bits_per_word >= 8 && t->bits_per_word < 32) | ||
+ bpw = t->bits_per_word >> 3; | ||
+ else | ||
+ bpw = 4; | ||
+ | ||
if (t->speed_hz) | ||
div = ar934x_spi_clk_div(sp, t->speed_hz); | ||
else | ||
@@ -105,10 +110,10 @@ static int ar934x_spi_transfer_one_messa | ||
iowrite32(reg, sp->base + AR934X_SPI_REG_CTRL); | ||
iowrite32(0, sp->base + AR934X_SPI_DATAOUT); | ||
|
||
- for (trx_done = 0; trx_done < t->len; trx_done += 4) { | ||
+ for (trx_done = 0; trx_done < t->len; trx_done += bpw) { | ||
trx_cur = t->len - trx_done; | ||
- if (trx_cur > 4) | ||
- trx_cur = 4; | ||
+ if (trx_cur > bpw) | ||
+ trx_cur = bpw; | ||
else if (list_is_last(&t->transfer_list, &m->transfers)) | ||
term = 1; | ||
|
||
@@ -193,7 +198,8 @@ static int ar934x_spi_probe(struct platf | ||
ctlr->mode_bits = SPI_LSB_FIRST; | ||
ctlr->setup = ar934x_spi_setup; | ||
ctlr->transfer_one_message = ar934x_spi_transfer_one_message; | ||
- ctlr->bits_per_word_mask = SPI_BPW_MASK(8); | ||
+ ctlr->bits_per_word_mask = SPI_BPW_MASK(32) | SPI_BPW_MASK(24) | | ||
+ SPI_BPW_MASK(16) | SPI_BPW_MASK(8); | ||
ctlr->dev.of_node = pdev->dev.of_node; | ||
ctlr->num_chipselect = 3; | ||
|
68 changes: 68 additions & 0 deletions
68
target/linux/ath79/patches-6.1/020-v5.18-spi-ath79-Implement-the-spi_mem-interface.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
From 8d8cdb4a6ccee5b62cc0dc64651c3946364514dc Mon Sep 17 00:00:00 2001 | ||
From: Luiz Angelo Daros de Luca <[email protected]> | ||
Date: Mon, 10 Feb 2020 16:11:27 -0300 | ||
Subject: [PATCH] spi: ath79: Implement the spi_mem interface | ||
|
||
Signed-off-by: Luiz Angelo Daros de Luca <[email protected]> | ||
--- | ||
drivers/spi/spi-ath79.c | 35 +++++++++++++++++++++++++++++++++++ | ||
1 file changed, 35 insertions(+) | ||
|
||
--- a/drivers/spi/spi-ath79.c | ||
+++ b/drivers/spi/spi-ath79.c | ||
@@ -15,6 +15,7 @@ | ||
#include <linux/platform_device.h> | ||
#include <linux/io.h> | ||
#include <linux/spi/spi.h> | ||
+#include <linux/spi/spi-mem.h> | ||
#include <linux/spi/spi_bitbang.h> | ||
#include <linux/bitops.h> | ||
#include <linux/clk.h> | ||
@@ -133,6 +134,39 @@ static u32 ath79_spi_txrx_mode0(struct s | ||
return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS); | ||
} | ||
|
||
+static int ath79_exec_mem_op(struct spi_mem *mem, | ||
+ const struct spi_mem_op *op) | ||
+{ | ||
+ struct ath79_spi *sp = ath79_spidev_to_sp(mem->spi); | ||
+ | ||
+ /* Ensures that reading is performed on device connected | ||
+ to hardware cs0 */ | ||
+ if (mem->spi->chip_select || mem->spi->cs_gpiod) | ||
+ return -ENOTSUPP; | ||
+ | ||
+ /* Only use for fast-read op. */ | ||
+ if (op->cmd.opcode != 0x0b || op->data.dir != SPI_MEM_DATA_IN || | ||
+ op->addr.nbytes != 3 || op->dummy.nbytes != 1) | ||
+ return -ENOTSUPP; | ||
+ | ||
+ /* disable GPIO mode */ | ||
+ ath79_spi_wr(sp, AR71XX_SPI_REG_FS, 0); | ||
+ | ||
+ memcpy_fromio(op->data.buf.in, sp->base + op->addr.val, op->data.nbytes); | ||
+ | ||
+ /* enable GPIO mode */ | ||
+ ath79_spi_wr(sp, AR71XX_SPI_REG_FS, AR71XX_SPI_FS_GPIO); | ||
+ | ||
+ /* restore IOC register */ | ||
+ ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base); | ||
+ | ||
+ return 0; | ||
+} | ||
+ | ||
+static const struct spi_controller_mem_ops ath79_mem_ops = { | ||
+ .exec_op = ath79_exec_mem_op, | ||
+}; | ||
+ | ||
static int ath79_spi_probe(struct platform_device *pdev) | ||
{ | ||
struct spi_master *master; | ||
@@ -165,6 +199,7 @@ static int ath79_spi_probe(struct platfo | ||
ret = PTR_ERR(sp->base); | ||
goto err_put_master; | ||
} | ||
+ master->mem_ops = &ath79_mem_ops; | ||
|
||
sp->clk = devm_clk_get(&pdev->dev, "ahb"); | ||
if (IS_ERR(sp->clk)) { |
Oops, something went wrong.