Commit a2a12d3a authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'korina-next'



Thomas Bogendoerfer says:

====================
net: Korina improvements

While converting Mikrotik RB532 support to use device tree I stumbled
over the korina ethernet driver, which used way too many MIPS specific
hacks. This series cleans this all up and adds support for device tree.

Changes in v6:
 - remove korina from resource names and adapt DT binding to it
 - removed superfluous braces around of_get_mac_address

Changes in v5:
  - fixed email address in binding document, which prevented sending it

Changes in v4:
  - improve error returns in mdio_read further
  - added clock name and improved clk handling
  - fixed binding errors

Changes in v3:
  - use readl_poll_timeout_atomic in mdio_wait
  - return -ETIMEDOUT, if mdio_wait failed
  - added DT binding and changed name to idt,3243x-emac
  - fixed usage of of_get_mac_address for net-next

Changes in v2:
  - added device tree support to get rid of idt_cpu_freq
  - fixed compile test on 64bit archs
  - fixed descriptor current address handling by storing/using mapped
    dma addresses (dma controller modifies current address)
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 96521683 d1a2c231
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/idt,3243x-emac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: IDT 79rc3243x Ethernet controller

description: Ethernet controller integrated into IDT 79RC3243x family SoCs

maintainers:
  - Thomas Bogendoerfer <tsbogend@alpha.franken.de>

allOf:
  - $ref: ethernet-controller.yaml#

properties:
  compatible:
    const: idt,3243x-emac

  reg:
    maxItems: 3

  reg-names:
    items:
      - const: emac
      - const: dma_rx
      - const: dma_tx

  interrupts:
    items:
      - description: RX interrupt
      - description: TX interrupt

  interrupt-names:
    items:
      - const: rx
      - const: tx

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: mdioclk

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-names

additionalProperties: false

examples:
  - |

    ethernet@60000 {
        compatible = "idt,3243x-emac";

        reg = <0x60000 0x10000>,
              <0x40000 0x14>,
              <0x40014 0x14>;
        reg-names = "emac", "dma_rx", "dma_tx";

        interrupt-parent = <&rcpic3>;
        interrupts = <0>, <1>;
        interrupt-names = "rx", "tx";

        clocks = <&iclk>;
        clock-names = "mdioclk";
    };
+8 −17
Original line number Diff line number Diff line
@@ -58,37 +58,27 @@ EXPORT_SYMBOL(get_latch_u5);

static struct resource korina_dev0_res[] = {
	{
		.name = "korina_regs",
		.name = "emac",
		.start = ETH0_BASE_ADDR,
		.end = ETH0_BASE_ADDR + sizeof(struct eth_regs),
		.flags = IORESOURCE_MEM,
	 }, {
		.name = "korina_rx",
		.name = "rx",
		.start = ETH0_DMA_RX_IRQ,
		.end = ETH0_DMA_RX_IRQ,
		.flags = IORESOURCE_IRQ
	}, {
		.name = "korina_tx",
		.name = "tx",
		.start = ETH0_DMA_TX_IRQ,
		.end = ETH0_DMA_TX_IRQ,
		.flags = IORESOURCE_IRQ
	}, {
		.name = "korina_ovr",
		.start = ETH0_RX_OVR_IRQ,
		.end = ETH0_RX_OVR_IRQ,
		.flags = IORESOURCE_IRQ
	}, {
		.name = "korina_und",
		.start = ETH0_TX_UND_IRQ,
		.end = ETH0_TX_UND_IRQ,
		.flags = IORESOURCE_IRQ
	}, {
		.name = "korina_dma_rx",
		.name = "dma_rx",
		.start = ETH0_RX_DMA_ADDR,
		.end = ETH0_RX_DMA_ADDR + DMA_CHAN_OFFSET - 1,
		.flags = IORESOURCE_MEM,
	 }, {
		.name = "korina_dma_tx",
		.name = "dma_tx",
		.start = ETH0_TX_DMA_ADDR,
		.end = ETH0_TX_DMA_ADDR + DMA_CHAN_OFFSET - 1,
		.flags = IORESOURCE_MEM,
@@ -105,6 +95,9 @@ static struct platform_device korina_dev0 = {
	.name = "korina",
	.resource = korina_dev0_res,
	.num_resources = ARRAY_SIZE(korina_dev0_res),
	.dev = {
		.platform_data = &korina_dev0_data.mac,
	}
};

static struct resource cf_slot0_res[] = {
@@ -299,8 +292,6 @@ static int __init plat_setup_devices(void)
	/* set the uart clock to the current cpu frequency */
	rb532_uart_res[0].uartclk = idt_cpu_freq;

	dev_set_drvdata(&korina_dev0.dev, &korina_dev0_data);

	gpiod_add_lookup_table(&cf_slot0_gpio_table);
	return platform_add_devices(rb532_devs, ARRAY_SIZE(rb532_devs));
}
+2 −1
Original line number Diff line number Diff line
@@ -99,7 +99,8 @@ config JME

config KORINA
	tristate "Korina (IDT RC32434) Ethernet support"
	depends on MIKROTIK_RB532
	depends on MIKROTIK_RB532 || COMPILE_TEST
	select MII
	help
	  If you have a Mikrotik RouterBoard 500 or IDT RC32434
	  based system say Y. Otherwise say N.
+432 −171

File changed.

Preview size limit exceeded, changes collapsed.