* [PATCHv4 0/5] Support for Marvell switches with integrated CPUs @ 2017-01-13 9:12 Chris Packham 2017-01-13 9:12 ` [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC Chris Packham 2017-01-26 15:17 ` [PATCHv4 0/5] Support for Marvell switches with integrated CPUs Gregory CLEMENT 0 siblings, 2 replies; 12+ messages in thread From: Chris Packham @ 2017-01-13 9:12 UTC (permalink / raw) To: linux-arm-kernel Cc: Chris Packham, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Linus Walleij, Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Russell King, Geert Uytterhoeven, Chris Brand, Florian Fainelli, Arnd Bergmann, Thierry Reding, Sudeep Holla, Juri Lelli, Thomas Petazzoni <thomas. The 98DX3236, 98DX3336 and 98DX4251 are a set of switch ASICs with integrated CPUs. They CPU block is common within these product lines and (as far as I can tell/have been told) is based on the Armada XP. There are a few differences due to the fact they have to squeeze the CPU into the same package as the switch. This series is starting to settle down now. The only major change is in "arm: mvebu: support for SMP on 98DX3336 SoC" the other changes are generally cosmetic or collecting acks. Chris Packham (4): clk: mvebu: support for 98DX3236 SoC Changes in v2: - Update devicetree binding documentation for new compatible string Changes in v3: - Add 98dx3236 support to mvebu/clk-corediv.c rather than creating a new driver. - Document mv98dx3236-corediv-clock binding Changes in v4: - None arm: mvebu: support for SMP on 98DX3336 SoC Changes in v2: - Document new enable-method value - Correct some references from 98DX4521 to 98DX3236 Changes in v3: - Simplify mv98dx3236_resume_init by using of_io_request_and_map() Changes in v4: - integrate changes into platsmp.c instead of new init call - avoid duplicated code. - fix error return - Collect ack from Rob arm: mvebu: Add device tree for 98DX3236 SoCs Changes in v2: - Update devicetree binding documentation to reflect that 98DX3336 and 984251 are supersets of 98DX3236. - disable crypto block - disable sdio for 98DX3236, enable for 98DX4251 Changes in v3: - fix typo 4521 -> 4251 - document prestera bindings - rework corediv-clock binding - add label to packet processor node - add new compatible string for DFX server Changes in v4: - Collect ack from Rob arm: mvebu: Add device tree for db-dxbc2 and db-xc3-24g4xg boards Kalyan Kinthada (1): pinctrl: mvebu: pinctrl driver for 98DX3236 SoC Changes in v2: - include sdio support for the 98DX4251 Changes in v3: - None Changes in v4: - Correct some discrepencies between binding and driver. - Collect acks from Rob and Sebastian Documentation/devicetree/bindings/arm/cpus.txt | 1 + .../bindings/arm/marvell/98dx3236-resume-ctrl.txt | 18 ++ .../devicetree/bindings/arm/marvell/98dx3236.txt | 23 ++ .../bindings/clock/mvebu-corediv-clock.txt | 1 + .../devicetree/bindings/clock/mvebu-cpu-clock.txt | 1 + .../devicetree/bindings/net/marvell,prestera.txt | 50 ++++ .../pinctrl/marvell,armada-98dx3236-pinctrl.txt | 46 ++++ arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 254 +++++++++++++++++++++ arch/arm/boot/dts/armada-xp-98dx3336.dtsi | 76 ++++++ arch/arm/boot/dts/armada-xp-98dx4251.dtsi | 90 ++++++++ arch/arm/boot/dts/db-dxbc2.dts | 159 +++++++++++++ arch/arm/boot/dts/db-xc3-24g4xg.dts | 155 +++++++++++++ arch/arm/mach-mvebu/platsmp.c | 86 +++++++ drivers/clk/mvebu/armada-xp.c | 42 ++++ drivers/clk/mvebu/clk-corediv.c | 23 ++ drivers/clk/mvebu/clk-cpu.c | 31 ++- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 156 +++++++++++++ 17 files changed, 1210 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/marvell/98dx3236-resume-ctrl.txt create mode 100644 Documentation/devicetree/bindings/arm/marvell/98dx3236.txt create mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt create mode 100644 arch/arm/boot/dts/armada-xp-98dx3236.dtsi create mode 100644 arch/arm/boot/dts/armada-xp-98dx3336.dtsi create mode 100644 arch/arm/boot/dts/armada-xp-98dx4251.dtsi create mode 100644 arch/arm/boot/dts/db-dxbc2.dts create mode 100644 arch/arm/boot/dts/db-xc3-24g4xg.dts inter-diff to v3: diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt index d4e6ecdfc853..b5bd23992fdf 100644 --- a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt @@ -28,10 +28,10 @@ mpp13 13 gpio, intr(out), dev(ad15) mpp14 14 gpio, i2c0(sck) mpp15 15 gpio, i2c0(sda) mpp16 16 gpio, dev(oe) -mpp17 17 gpio, dev(clk) +mpp17 17 gpio, dev(clkout) mpp18 18 gpio, uart1(txd) mpp19 19 gpio, uart1(rxd), dev(rb) -mpp20 20 gpio, dev(we) +mpp20 20 gpio, dev(we0) mpp21 21 gpio, dev(ad0) mpp22 22 gpio, dev(ad1) mpp23 23 gpio, dev(ad2) diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile index 2a2dd8324fb8..6c6497e80a7b 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile @@ -7,7 +7,6 @@ obj-$(CONFIG_MACH_MVEBU_ANY) += system-controller.o mvebu-soc-id.o ifeq ($(CONFIG_MACH_MVEBU_V7),y) obj-y += cpu-reset.o board-v7.o coherency.o coherency_ll.o pmsu.o pmsu_ll.o -obj-y += pmsu-98dx3236.o obj-$(CONFIG_PM) += pm.o pm-board.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o platsmp-a9.o headsmp-a9.o diff --git a/arch/arm/mach-mvebu/common.h b/arch/arm/mach-mvebu/common.h index 099dabf23461..6b775492cfad 100644 --- a/arch/arm/mach-mvebu/common.h +++ b/arch/arm/mach-mvebu/common.h @@ -27,5 +27,4 @@ void __iomem *mvebu_get_scu_base(void); int mvebu_pm_suspend_init(void (*board_pm_enter)(void __iomem *sdram_reg, u32 srcmd)); -void mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr); #endif diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c index 3c9ab9a008ad..59be3ca0464f 100644 --- a/arch/arm/mach-mvebu/platsmp.c +++ b/arch/arm/mach-mvebu/platsmp.c @@ -182,12 +182,57 @@ const struct smp_operations armada_xp_smp_ops __initconst = { #endif }; +CPU_METHOD_OF_DECLARE(armada_xp_smp, "marvell,armada-xp-smp", + &armada_xp_smp_ops); + +struct resume_controller { + u32 resume_control; + u32 resume_boot_addr; +}; + +static const struct resume_controller mv98dx3336_resume_controller = { + .resume_control = 0x08, + .resume_boot_addr = 0x04, +}; + +static const struct of_device_id of_mv98dx3236_resume_table[] = { + { + .compatible = "marvell,98dx3336-resume-ctrl", + .data = (void *)&mv98dx3336_resume_controller, + }, + { /* end of list */ }, +}; + +static int mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr) +{ + const struct of_device_id *match; + struct device_node *np; + void __iomem *base; + struct resume_controller *rc; + + WARN_ON(hw_cpu != 1); + + np = of_find_matching_node_and_match(NULL, of_mv98dx3236_resume_table, + &match); + if (!np) + return -ENODEV; + + base = of_io_request_and_map(np, 0, of_node_full_name(np)); + rc = (struct resume_controller *)match->data; + of_node_put(np); + if (IS_ERR(base)) + return PTR_ERR(base); + + writel(0, base + rc->resume_control); + writel(virt_to_phys(boot_addr), base + rc->resume_boot_addr); + + return 0; +} + static int mv98dx3236_boot_secondary(unsigned int cpu, struct task_struct *idle) { int ret, hw_cpu; - pr_info("Booting CPU %d\n", cpu); - hw_cpu = cpu_logical_map(cpu); set_secondary_cpu_clock(hw_cpu); mv98dx3236_resume_set_cpu_boot_addr(hw_cpu, @@ -212,7 +257,7 @@ static int mv98dx3236_boot_secondary(unsigned int cpu, struct task_struct *idle) return 0; } -struct smp_operations mv98dx3236_smp_ops __initdata = { +static const struct smp_operations mv98dx3236_smp_ops __initconst = { .smp_init_cpus = armada_xp_smp_init_cpus, .smp_prepare_cpus = armada_xp_smp_prepare_cpus, .smp_boot_secondary = mv98dx3236_boot_secondary, @@ -223,7 +268,5 @@ struct smp_operations mv98dx3236_smp_ops __initdata = { #endif }; -CPU_METHOD_OF_DECLARE(armada_xp_smp, "marvell,armada-xp-smp", - &armada_xp_smp_ops); CPU_METHOD_OF_DECLARE(mv98dx3236_smp, "marvell,98dx3236-smp", &mv98dx3236_smp_ops); diff --git a/arch/arm/mach-mvebu/pmsu-98dx3236.c b/arch/arm/mach-mvebu/pmsu-98dx3236.c deleted file mode 100644 index 1052674dd439..000000000000 --- a/arch/arm/mach-mvebu/pmsu-98dx3236.c +++ /dev/null @@ -1,52 +0,0 @@ -/** - * CPU resume support for 98DX3236 internal CPU (a.k.a. MSYS). - */ - -#define pr_fmt(fmt) "mv98dx3236-resume: " fmt - -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/of_address.h> -#include <linux/io.h> -#include "common.h" - -static void __iomem *mv98dx3236_resume_base; -#define MV98DX3236_CPU_RESUME_CTRL_OFFSET 0x08 -#define MV98DX3236_CPU_RESUME_ADDR_OFFSET 0x04 - -static const struct of_device_id of_mv98dx3236_resume_table[] = { - {.compatible = "marvell,98dx3336-resume-ctrl",}, - { /* end of list */ }, -}; - -void mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr) -{ - WARN_ON(hw_cpu != 1); - - writel(0, mv98dx3236_resume_base + MV98DX3236_CPU_RESUME_CTRL_OFFSET); - writel(virt_to_phys(boot_addr), mv98dx3236_resume_base + - MV98DX3236_CPU_RESUME_ADDR_OFFSET); -} - -static int __init mv98dx3236_resume_init(void) -{ - struct device_node *np; - void __iomem *base; - - np = of_find_matching_node(NULL, of_mv98dx3236_resume_table); - if (!np) - return 0; - - base = of_io_request_and_map(np, 0, of_node_full_name(np)); - if (IS_ERR(base)) { - pr_err("unable to map registers\n"); - of_node_put(np); - return PTR_ERR(mv98dx3236_resume_base); - } - - mv98dx3236_resume_base = base; - of_node_put(np); - return 0; -} - -early_initcall(mv98dx3236_resume_init); diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c index 554eeae8cd21..9601d662c7f5 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c @@ -374,8 +374,8 @@ static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { MPP_VAR_FUNCTION(0x2, "spi0", "miso", V_98DX3236_PLUS), MPP_VAR_FUNCTION(0x4, "dev", "ad9", V_98DX3236_PLUS)), MPP_MODE(2, - MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), - MPP_VAR_FUNCTION(0x2, "spi0", "csk", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "spi0", "sck", V_98DX3236_PLUS), MPP_VAR_FUNCTION(0x4, "dev", "ad10", V_98DX3236_PLUS)), MPP_MODE(3, MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), @@ -390,7 +390,7 @@ static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), MPP_VAR_FUNCTION(0x1, "pex", "rsto", V_98DX3236_PLUS), MPP_VAR_FUNCTION(0x2, "sd0", "cmd", V_98DX4251), - MPP_VAR_FUNCTION(0x4, "dev", "bootcs0", V_98DX3236_PLUS)), + MPP_VAR_FUNCTION(0x4, "dev", "bootcs", V_98DX3236_PLUS)), MPP_MODE(6, MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), MPP_VAR_FUNCTION(0x2, "sd0", "clk", V_98DX4251), @@ -442,7 +442,8 @@ static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { MPP_VAR_FUNCTION(0x3, "uart1", "txd", V_98DX3236_PLUS)), MPP_MODE(19, MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), - MPP_VAR_FUNCTION(0x3, "uart1", "rxd", V_98DX3236_PLUS)), + MPP_VAR_FUNCTION(0x3, "uart1", "rxd", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "rb", V_98DX3236_PLUS)), MPP_MODE(20, MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), MPP_VAR_FUNCTION(0x4, "dev", "we0", V_98DX3236_PLUS)), @@ -548,7 +549,7 @@ static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = { }; static struct pinctrl_gpio_range mv98dx3236_mpp_gpio_ranges[] = { - MPP_GPIO_RANGE(0, 0, 0, 32), + MPP_GPIO_RANGE(0, 0, 0, 32), }; static int armada_xp_pinctrl_suspend(struct platform_device *pdev, -- 2.11.0.24.ge6920cf ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-13 9:12 [PATCHv4 0/5] Support for Marvell switches with integrated CPUs Chris Packham @ 2017-01-13 9:12 ` Chris Packham 2017-01-13 9:54 ` Sebastian Hesselbarth [not found] ` <20170113091222.7132-4-chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> 2017-01-26 15:17 ` [PATCHv4 0/5] Support for Marvell switches with integrated CPUs Gregory CLEMENT 1 sibling, 2 replies; 12+ messages in thread From: Chris Packham @ 2017-01-13 9:12 UTC (permalink / raw) To: linux-arm-kernel Cc: Mark Rutland, Thomas Petazzoni, linux-gpio, Linus Walleij, linux-kernel, Rob Herring, Kalyan Kinthada, devicetree, Chris Packham, Laxman Dewangan, Sebastian Hesselbarth From: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> This pinctrl driver supports the 98DX3236, 98DX3336 and 98DX4251 SoCs from Marvell. Signed-off-by: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> --- Notes: Changes in v2: - include sdio support for the 98DX4251 Changes in v3: - None Changes in v4: - Correct some discrepencies between binding and driver. - Collect acks from Rob and Sebastian .../pinctrl/marvell,armada-98dx3236-pinctrl.txt | 46 ++++++ drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 156 +++++++++++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt new file mode 100644 index 000000000000..b5bd23992fdf --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt @@ -0,0 +1,46 @@ +* Marvell 98dx3236 pinctrl driver for mpp + +Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding +part and usage + +Required properties: +- compatible: "marvell,98dx3236-pinctrl" or "marvell,98dx4251-pinctrl" +- reg: register specifier of MPP registers + +This driver supports all 98dx3236, 98dx3336 and 98dx4251 variants + +name pins functions +================================================================================ +mpp0 0 gpio, spi0(mosi), dev(ad8) +mpp1 1 gpio, spi0(miso), dev(ad9) +mpp2 2 gpio, spi0(sck), dev(ad10) +mpp3 3 gpio, spi0(cs0), dev(ad11) +mpp4 4 gpio, spi0(cs1), smi(mdc), dev(cs0) +mpp5 5 gpio, pex(rsto), sd0(cmd), dev(bootcs) +mpp6 6 gpio, sd0(clk), dev(a2) +mpp7 7 gpio, sd0(d0), dev(ale0) +mpp8 8 gpio, sd0(d1), dev(ale1) +mpp9 9 gpio, sd0(d2), dev(ready0) +mpp10 10 gpio, sd0(d3), dev(ad12) +mpp11 11 gpio, uart1(rxd), uart0(cts), dev(ad13) +mpp12 12 gpio, uart1(txd), uart0(rts), dev(ad14) +mpp13 13 gpio, intr(out), dev(ad15) +mpp14 14 gpio, i2c0(sck) +mpp15 15 gpio, i2c0(sda) +mpp16 16 gpio, dev(oe) +mpp17 17 gpio, dev(clkout) +mpp18 18 gpio, uart1(txd) +mpp19 19 gpio, uart1(rxd), dev(rb) +mpp20 20 gpio, dev(we0) +mpp21 21 gpio, dev(ad0) +mpp22 22 gpio, dev(ad1) +mpp23 23 gpio, dev(ad2) +mpp24 24 gpio, dev(ad3) +mpp25 25 gpio, dev(ad4) +mpp26 26 gpio, dev(ad5) +mpp27 27 gpio, dev(ad6) +mpp28 28 gpio, dev(ad7) +mpp29 29 gpio, dev(a0) +mpp30 30 gpio, dev(a1) +mpp31 31 gpio, slv_smi(mdc), smi(mdc), dev(we1) +mpp32 32 gpio, slv_smi(mdio), smi(mdio), dev(cs1) diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c index e4ea71a9d985..9601d662c7f5 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c @@ -49,6 +49,10 @@ enum armada_xp_variant { V_MV78460 = BIT(2), V_MV78230_PLUS = (V_MV78230 | V_MV78260 | V_MV78460), V_MV78260_PLUS = (V_MV78260 | V_MV78460), + V_98DX3236 = BIT(3), + V_98DX3336 = BIT(4), + V_98DX4251 = BIT(5), + V_98DX3236_PLUS = (V_98DX3236 | V_98DX3336 | V_98DX4251), }; static struct mvebu_mpp_mode armada_xp_mpp_modes[] = { @@ -360,6 +364,131 @@ static struct mvebu_mpp_mode armada_xp_mpp_modes[] = { MPP_VAR_FUNCTION(0x1, "dev", "ad31", V_MV78260_PLUS)), }; +static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { + MPP_MODE(0, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "spi0", "mosi", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad8", V_98DX3236_PLUS)), + MPP_MODE(1, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "spi0", "miso", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad9", V_98DX3236_PLUS)), + MPP_MODE(2, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "spi0", "sck", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad10", V_98DX3236_PLUS)), + MPP_MODE(3, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "spi0", "cs0", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad11", V_98DX3236_PLUS)), + MPP_MODE(4, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "spi0", "cs1", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "smi", "mdc", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "cs0", V_98DX3236_PLUS)), + MPP_MODE(5, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "pex", "rsto", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "sd0", "cmd", V_98DX4251), + MPP_VAR_FUNCTION(0x4, "dev", "bootcs", V_98DX3236_PLUS)), + MPP_MODE(6, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "sd0", "clk", V_98DX4251), + MPP_VAR_FUNCTION(0x4, "dev", "a2", V_98DX3236_PLUS)), + MPP_MODE(7, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "sd0", "d0", V_98DX4251), + MPP_VAR_FUNCTION(0x4, "dev", "ale0", V_98DX3236_PLUS)), + MPP_MODE(8, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "sd0", "d1", V_98DX4251), + MPP_VAR_FUNCTION(0x4, "dev", "ale1", V_98DX3236_PLUS)), + MPP_MODE(9, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "sd0", "d2", V_98DX4251), + MPP_VAR_FUNCTION(0x4, "dev", "ready0", V_98DX3236_PLUS)), + MPP_MODE(10, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "sd0", "d3", V_98DX4251), + MPP_VAR_FUNCTION(0x4, "dev", "ad12", V_98DX3236_PLUS)), + MPP_MODE(11, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "uart1", "rxd", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "uart0", "cts", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad13", V_98DX3236_PLUS)), + MPP_MODE(12, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x2, "uart1", "txd", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "uart0", "rts", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad14", V_98DX3236_PLUS)), + MPP_MODE(13, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "intr", "out", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "ad15", V_98DX3236_PLUS)), + MPP_MODE(14, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "i2c0", "sck", V_98DX3236_PLUS)), + MPP_MODE(15, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "i2c0", "sda", V_98DX3236_PLUS)), + MPP_MODE(16, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "oe", V_98DX3236_PLUS)), + MPP_MODE(17, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "clkout", V_98DX3236_PLUS)), + MPP_MODE(18, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "uart1", "txd", V_98DX3236_PLUS)), + MPP_MODE(19, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "uart1", "rxd", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "rb", V_98DX3236_PLUS)), + MPP_MODE(20, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "we0", V_98DX3236_PLUS)), + MPP_MODE(21, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad0", V_98DX3236_PLUS)), + MPP_MODE(22, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad1", V_98DX3236_PLUS)), + MPP_MODE(23, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad2", V_98DX3236_PLUS)), + MPP_MODE(24, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad3", V_98DX3236_PLUS)), + MPP_MODE(25, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad4", V_98DX3236_PLUS)), + MPP_MODE(26, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad5", V_98DX3236_PLUS)), + MPP_MODE(27, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad6", V_98DX3236_PLUS)), + MPP_MODE(28, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "ad7", V_98DX3236_PLUS)), + MPP_MODE(29, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "a0", V_98DX3236_PLUS)), + MPP_MODE(30, + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "dev", "a1", V_98DX3236_PLUS)), + MPP_MODE(31, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "slv_smi", "mdc", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "smi", "mdc", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "we1", V_98DX3236_PLUS)), + MPP_MODE(32, + MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x1, "slv_smi", "mdio", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x3, "smi", "mdio", V_98DX3236_PLUS), + MPP_VAR_FUNCTION(0x4, "dev", "cs1", V_98DX3236_PLUS)), +}; + static struct mvebu_pinctrl_soc_info armada_xp_pinctrl_info; static const struct of_device_id armada_xp_pinctrl_of_match[] = { @@ -375,6 +504,14 @@ static const struct of_device_id armada_xp_pinctrl_of_match[] = { .compatible = "marvell,mv78460-pinctrl", .data = (void *) V_MV78460, }, + { + .compatible = "marvell,98dx3236-pinctrl", + .data = (void *) V_98DX3236, + }, + { + .compatible = "marvell,98dx4251-pinctrl", + .data = (void *) V_98DX4251, + }, { }, }; @@ -407,6 +544,14 @@ static struct pinctrl_gpio_range mv78460_mpp_gpio_ranges[] = { MPP_GPIO_RANGE(2, 64, 64, 3), }; +static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = { + MPP_FUNC_CTRL(0, 32, NULL, armada_xp_mpp_ctrl), +}; + +static struct pinctrl_gpio_range mv98dx3236_mpp_gpio_ranges[] = { + MPP_GPIO_RANGE(0, 0, 0, 32), +}; + static int armada_xp_pinctrl_suspend(struct platform_device *pdev, pm_message_t state) { @@ -488,6 +633,17 @@ static int armada_xp_pinctrl_probe(struct platform_device *pdev) soc->gpioranges = mv78460_mpp_gpio_ranges; soc->ngpioranges = ARRAY_SIZE(mv78460_mpp_gpio_ranges); break; + case V_98DX3236: + case V_98DX3336: + case V_98DX4251: + /* fall-through */ + soc->controls = mv98dx3236_mpp_controls; + soc->ncontrols = ARRAY_SIZE(mv98dx3236_mpp_controls); + soc->modes = mv98dx3236_mpp_modes; + soc->nmodes = mv98dx3236_mpp_controls[0].npins; + soc->gpioranges = mv98dx3236_mpp_gpio_ranges; + soc->ngpioranges = ARRAY_SIZE(mv98dx3236_mpp_gpio_ranges); + break; } nregs = DIV_ROUND_UP(soc->nmodes, MVEBU_MPPS_PER_REG); -- 2.11.0.24.ge6920cf ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-13 9:12 ` [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC Chris Packham @ 2017-01-13 9:54 ` Sebastian Hesselbarth 2017-01-14 7:50 ` Chris Packham [not found] ` <20170113091222.7132-4-chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> 1 sibling, 1 reply; 12+ messages in thread From: Sebastian Hesselbarth @ 2017-01-13 9:54 UTC (permalink / raw) To: Chris Packham, linux-arm-kernel Cc: Mark Rutland, Thomas Petazzoni, linux-gpio, Linus Walleij, linux-kernel, Kalyan Kinthada, devicetree, Rob Herring, Laxman Dewangan On 13.01.2017 10:12, Chris Packham wrote: > From: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> > > This pinctrl driver supports the 98DX3236, 98DX3336 and 98DX4251 SoCs > from Marvell. > > Signed-off-by: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > Acked-by: Rob Herring <robh@kernel.org> > Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> > --- > > Notes: > Changes in v2: > - include sdio support for the 98DX4251 > Changes in v3: > - None > Changes in v4: > - Correct some discrepencies between binding and driver. Well, unfortunately I still see differences between the "gpio" in the binding and "gpo" in the driver. Please go back to that list I sent you yesterday and fix them all. [...] > diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt > new file mode 100644 > index 000000000000..b5bd23992fdf > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt > @@ -0,0 +1,46 @@ [...] > +mpp6 6 gpio, sd0(clk), dev(a2) e.g. this is "gpio" ... [...] > diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c > index e4ea71a9d985..9601d662c7f5 100644 > --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c > +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c > @@ -49,6 +49,10 @@ enum armada_xp_variant { [...] > + MPP_MODE(6, > + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), ... but here it is "gpo". Sebastian ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-13 9:54 ` Sebastian Hesselbarth @ 2017-01-14 7:50 ` Chris Packham 2017-01-19 21:12 ` Chris Packham 0 siblings, 1 reply; 12+ messages in thread From: Chris Packham @ 2017-01-14 7:50 UTC (permalink / raw) To: Sebastian Hesselbarth, linux-arm-kernel@lists.infradead.org Cc: Kalyan Kinthada, Linus Walleij, Rob Herring, Mark Rutland, Thomas Petazzoni, Laxman Dewangan, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org On 13/01/17 22:54, Sebastian Hesselbarth wrote: > On 13.01.2017 10:12, Chris Packham wrote: >> From: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> >> >> This pinctrl driver supports the 98DX3236, 98DX3336 and 98DX4251 SoCs >> from Marvell. >> >> Signed-off-by: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> >> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> >> Acked-by: Rob Herring <robh@kernel.org> >> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> >> --- >> >> Notes: >> Changes in v2: >> - include sdio support for the 98DX4251 >> Changes in v3: >> - None >> Changes in v4: >> - Correct some discrepencies between binding and driver. > > Well, unfortunately I still see differences between the "gpio" in > the binding and "gpo" in the driver. > > Please go back to that list I sent you yesterday and fix them all. > I think you may have missed my initial reply [1]. Or I have missed your response to it. Long story short "gpo" is intentional because some of those pins can't be used as inputs. But if you still want me to change it I will. [1] - https://lkml.org/lkml/2017/1/12/117 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-14 7:50 ` Chris Packham @ 2017-01-19 21:12 ` Chris Packham [not found] ` <66c205acea6046978bf17e6d8fc1959f-5g7mGxlPNYb6GjIOKuZY+ItlCAj8ZROq@public.gmane.org> 0 siblings, 1 reply; 12+ messages in thread From: Chris Packham @ 2017-01-19 21:12 UTC (permalink / raw) To: Sebastian Hesselbarth, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: Kalyan Kinthada, Linus Walleij, Rob Herring, Mark Rutland, Thomas Petazzoni, Laxman Dewangan, linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 14/01/17 20:50, Chris Packham wrote: > On 13/01/17 22:54, Sebastian Hesselbarth wrote: >> On 13.01.2017 10:12, Chris Packham wrote: >>> From: Kalyan Kinthada <kalyan.kinthada-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >>> >>> This pinctrl driver supports the 98DX3236, 98DX3336 and 98DX4251 SoCs >>> from Marvell. >>> >>> Signed-off-by: Kalyan Kinthada <kalyan.kinthada-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >>> Signed-off-by: Chris Packham <chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >>> Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >>> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>> --- >>> >>> Notes: >>> Changes in v2: >>> - include sdio support for the 98DX4251 >>> Changes in v3: >>> - None >>> Changes in v4: >>> - Correct some discrepencies between binding and driver. >> >> Well, unfortunately I still see differences between the "gpio" in >> the binding and "gpo" in the driver. >> >> Please go back to that list I sent you yesterday and fix them all. >> > > I think you may have missed my initial reply [1]. Or I have missed your > response to it. Long story short "gpo" is intentional because some of > those pins can't be used as inputs. But if you still want me to change > it I will. > > [1] - https://lkml.org/lkml/2017/1/12/117 > Hi Sebastian, Did you get a chance to consider this. Do you still want me to change gpo -> gpio given the information above? -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <66c205acea6046978bf17e6d8fc1959f-5g7mGxlPNYb6GjIOKuZY+ItlCAj8ZROq@public.gmane.org>]
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC [not found] ` <66c205acea6046978bf17e6d8fc1959f-5g7mGxlPNYb6GjIOKuZY+ItlCAj8ZROq@public.gmane.org> @ 2017-01-19 23:19 ` Sebastian Hesselbarth 2017-01-19 23:36 ` Chris Packham 0 siblings, 1 reply; 12+ messages in thread From: Sebastian Hesselbarth @ 2017-01-19 23:19 UTC (permalink / raw) To: Chris Packham, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: Kalyan Kinthada, Linus Walleij, Rob Herring, Mark Rutland, Thomas Petazzoni, Laxman Dewangan, linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 19.01.2017 22:12, Chris Packham wrote: > On 14/01/17 20:50, Chris Packham wrote: >> On 13/01/17 22:54, Sebastian Hesselbarth wrote: >>> On 13.01.2017 10:12, Chris Packham wrote: >>>> From: Kalyan Kinthada <kalyan.kinthada-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >>>> >>>> This pinctrl driver supports the 98DX3236, 98DX3336 and 98DX4251 SoCs >>>> from Marvell. >>>> >>>> Signed-off-by: Kalyan Kinthada <kalyan.kinthada-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >>>> Signed-off-by: Chris Packham <chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >>>> Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >>>> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>>> --- >>>> >>>> Notes: >>>> Changes in v2: >>>> - include sdio support for the 98DX4251 >>>> Changes in v3: >>>> - None >>>> Changes in v4: >>>> - Correct some discrepencies between binding and driver. >>> >>> Well, unfortunately I still see differences between the "gpio" in >>> the binding and "gpo" in the driver. >>> >>> Please go back to that list I sent you yesterday and fix them all. >>> >> >> I think you may have missed my initial reply [1]. Or I have missed your >> response to it. Long story short "gpo" is intentional because some of >> those pins can't be used as inputs. But if you still want me to change >> it I will. >> >> [1] - https://lkml.org/lkml/2017/1/12/117 >> > > Did you get a chance to consider this. Do you still want me to change > gpo -> gpio given the information above? Chris, sorry if I wasn't clear enough. I don't want you to change every gpo into gpio. All I was referring to is the _difference_ between driver implementation and device tree binding - and soley resolve that. So, for the gpo's I see that the binding doc still says "gpio" for the available functions where the driver expects "gpo". e.g. the binding has this: mpp6 6 gpio, sd0(clk), dev(a2) if you change it to mpp6 6 gpo, sd0(clk), dev(a2) both binding and driver are the same, right? I do understand that the hardware is gp-output only and you correctly reflected that in the pinctrl driver - but the binding doc does not reflect that for those mpps in the list. Did I make it clearer now or am I still missing the point? Sebastian -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-19 23:19 ` Sebastian Hesselbarth @ 2017-01-19 23:36 ` Chris Packham 0 siblings, 0 replies; 12+ messages in thread From: Chris Packham @ 2017-01-19 23:36 UTC (permalink / raw) To: Sebastian Hesselbarth, linux-arm-kernel@lists.infradead.org Cc: Mark Rutland, Thomas Petazzoni, linux-gpio@vger.kernel.org, Linus Walleij, linux-kernel@vger.kernel.org, Kalyan Kinthada, devicetree@vger.kernel.org, Rob Herring, Laxman Dewangan On 20/01/17 12:19, Sebastian Hesselbarth wrote: > On 19.01.2017 22:12, Chris Packham wrote: >> On 14/01/17 20:50, Chris Packham wrote: >>> On 13/01/17 22:54, Sebastian Hesselbarth wrote: >>>> On 13.01.2017 10:12, Chris Packham wrote: >>>>> From: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> >>>>> >>>>> This pinctrl driver supports the 98DX3236, 98DX3336 and 98DX4251 SoCs >>>>> from Marvell. >>>>> >>>>> Signed-off-by: Kalyan Kinthada <kalyan.kinthada@alliedtelesis.co.nz> >>>>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> >>>>> Acked-by: Rob Herring <robh@kernel.org> >>>>> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> >>>>> --- >>>>> >>>>> Notes: >>>>> Changes in v2: >>>>> - include sdio support for the 98DX4251 >>>>> Changes in v3: >>>>> - None >>>>> Changes in v4: >>>>> - Correct some discrepencies between binding and driver. >>>> >>>> Well, unfortunately I still see differences between the "gpio" in >>>> the binding and "gpo" in the driver. >>>> >>>> Please go back to that list I sent you yesterday and fix them all. >>>> >>> >>> I think you may have missed my initial reply [1]. Or I have missed your >>> response to it. Long story short "gpo" is intentional because some of >>> those pins can't be used as inputs. But if you still want me to change >>> it I will. >>> >>> [1] - https://lkml.org/lkml/2017/1/12/117 >>> >> >> Did you get a chance to consider this. Do you still want me to change >> gpo -> gpio given the information above? > > Chris, > > sorry if I wasn't clear enough. I don't want you to change every gpo > into gpio. All I was referring to is the _difference_ between driver > implementation and device tree binding - and soley resolve that. > > So, for the gpo's I see that the binding doc still says "gpio" for the > available functions where the driver expects "gpo". > > e.g. the binding has this: > > mpp6 6 gpio, sd0(clk), dev(a2) > > if you change it to > > mpp6 6 gpo, sd0(clk), dev(a2) > > both binding and driver are the same, right? > > I do understand that the hardware is gp-output only and you correctly > reflected that in the pinctrl driver - but the binding doc does not > reflect that for those mpps in the list. > Ah OK thanks for clearing up my confusion. I'll make sure the binding and the driver are consistent when I submit v5 (probably next week). ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <20170113091222.7132-4-chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org>]
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC [not found] ` <20170113091222.7132-4-chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> @ 2017-01-19 10:02 ` Russell King - ARM Linux 2017-01-19 21:10 ` Chris Packham 0 siblings, 1 reply; 12+ messages in thread From: Russell King - ARM Linux @ 2017-01-19 10:02 UTC (permalink / raw) To: Chris Packham Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Mark Rutland, Thomas Petazzoni, linux-gpio-u79uwXL29TY76Z2rM5mHXA, Linus Walleij, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Kalyan Kinthada, devicetree-u79uwXL29TY76Z2rM5mHXA, Laxman Dewangan, Sebastian Hesselbarth On Fri, Jan 13, 2017 at 10:12:18PM +1300, Chris Packham wrote: > +static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = { > + MPP_FUNC_CTRL(0, 32, NULL, armada_xp_mpp_ctrl), > +}; As Linus has taken my mvebu pinctrl series, this will need to be changed to "mvebu_mmio_mpp_ctrl" rather than "armada_xp_mpp_ctrl" when it's merged. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-19 10:02 ` Russell King - ARM Linux @ 2017-01-19 21:10 ` Chris Packham 2017-01-23 8:18 ` Chris Packham 0 siblings, 1 reply; 12+ messages in thread From: Chris Packham @ 2017-01-19 21:10 UTC (permalink / raw) To: Russell King - ARM Linux Cc: linux-arm-kernel@lists.infradead.org, Mark Rutland, Thomas Petazzoni, linux-gpio@vger.kernel.org, Linus Walleij, linux-kernel@vger.kernel.org, Rob Herring, Kalyan Kinthada, devicetree@vger.kernel.org, Laxman Dewangan, Sebastian Hesselbarth On 19/01/17 23:03, Russell King - ARM Linux wrote: > On Fri, Jan 13, 2017 at 10:12:18PM +1300, Chris Packham wrote: >> +static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = { >> + MPP_FUNC_CTRL(0, 32, NULL, armada_xp_mpp_ctrl), >> +}; > > As Linus has taken my mvebu pinctrl series, this will need to be > changed to "mvebu_mmio_mpp_ctrl" rather than "armada_xp_mpp_ctrl" > when it's merged. > OK I was thinking about rebasing my series so maybe it's time. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-19 21:10 ` Chris Packham @ 2017-01-23 8:18 ` Chris Packham 2017-01-26 14:11 ` Linus Walleij 0 siblings, 1 reply; 12+ messages in thread From: Chris Packham @ 2017-01-23 8:18 UTC (permalink / raw) To: Russell King - ARM Linux Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Mark Rutland, Thomas Petazzoni, linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Linus Walleij, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Herring, Kalyan Kinthada, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Laxman Dewangan, Sebastian Hesselbarth On 20/01/17 10:10, Chris Packham wrote: > On 19/01/17 23:03, Russell King - ARM Linux wrote: >> On Fri, Jan 13, 2017 at 10:12:18PM +1300, Chris Packham wrote: >>> +static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = { >>> + MPP_FUNC_CTRL(0, 32, NULL, armada_xp_mpp_ctrl), >>> +}; >> >> As Linus has taken my mvebu pinctrl series, this will need to be >> changed to "mvebu_mmio_mpp_ctrl" rather than "armada_xp_mpp_ctrl" >> when it's merged. >> > > OK I was thinking about rebasing my series so maybe it's time. > I noticed the mvebu pinctrl series isn't in Linus's (Torvalds) tree. Is this on the cards for v4.10 or is it waiting for the next merge window? In other words should I send v5 or my series now or wait for this to be merged so I can rebase on top of it? -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC 2017-01-23 8:18 ` Chris Packham @ 2017-01-26 14:11 ` Linus Walleij 0 siblings, 0 replies; 12+ messages in thread From: Linus Walleij @ 2017-01-26 14:11 UTC (permalink / raw) To: Chris Packham Cc: Russell King - ARM Linux, linux-arm-kernel@lists.infradead.org, Mark Rutland, Thomas Petazzoni, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring, Kalyan Kinthada, devicetree@vger.kernel.org, Laxman Dewangan, Sebastian Hesselbarth On Mon, Jan 23, 2017 at 9:18 AM, Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote: > I noticed the mvebu pinctrl series isn't in Linus's (Torvalds) tree. Is > this on the cards for v4.10 or is it waiting for the next merge window? Next merge window. > In other words should I send v5 or my series now or wait for this to be > merged so I can rebase on top of it? Rebase it on my devel branch in the pin control tree: git clone git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git cd linux-pinctrl git checkout -b devel origin/devel [git am .. / git pull old-branch] Yours, Linus Walleij ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv4 0/5] Support for Marvell switches with integrated CPUs 2017-01-13 9:12 [PATCHv4 0/5] Support for Marvell switches with integrated CPUs Chris Packham 2017-01-13 9:12 ` [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC Chris Packham @ 2017-01-26 15:17 ` Gregory CLEMENT 1 sibling, 0 replies; 12+ messages in thread From: Gregory CLEMENT @ 2017-01-26 15:17 UTC (permalink / raw) To: Chris Packham Cc: linux-arm-kernel, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Linus Walleij, Jason Cooper, Andrew Lunn, Sebastian Hesselbarth, Russell King, Geert Uytterhoeven, Chris Brand, Florian Fainelli, Arnd Bergmann, Thierry Reding, Sudeep Holla, Juri Lelli, Thomas Petazzoni, Laxman Dewangan Hi Chris, On ven., janv. 13 2017, Chris Packham <chris.packham@alliedtelesis.co.nz> wrote: > The 98DX3236, 98DX3336 and 98DX4251 are a set of switch ASICs with > integrated CPUs. They CPU block is common within these product lines and > (as far as I can tell/have been told) is based on the Armada XP. There > are a few differences due to the fact they have to squeeze the CPU into > the same package as the switch. > > This series is starting to settle down now. The only major change is in > "arm: mvebu: support for SMP on 98DX3336 SoC" the other changes are > generally cosmetic or collecting acks. > > Chris Packham (4): > clk: mvebu: support for 98DX3236 SoC > Changes in v2: > - Update devicetree binding documentation for new compatible string > Changes in v3: > - Add 98dx3236 support to mvebu/clk-corediv.c rather than creating a new > driver. > - Document mv98dx3236-corediv-clock binding > Changes in v4: > - None > arm: mvebu: support for SMP on 98DX3336 SoC > Changes in v2: > - Document new enable-method value > - Correct some references from 98DX4521 to 98DX3236 > Changes in v3: > - Simplify mv98dx3236_resume_init by using of_io_request_and_map() > Changes in v4: > - integrate changes into platsmp.c instead of new init call > - avoid duplicated code. > - fix error return > - Collect ack from Rob > arm: mvebu: Add device tree for 98DX3236 SoCs > Changes in v2: > - Update devicetree binding documentation to reflect that 98DX3336 and > 984251 are supersets of 98DX3236. > - disable crypto block > - disable sdio for 98DX3236, enable for 98DX4251 > Changes in v3: > - fix typo 4521 -> 4251 > - document prestera bindings > - rework corediv-clock binding > - add label to packet processor node > - add new compatible string for DFX server > Changes in v4: > - Collect ack from Rob > arm: mvebu: Add device tree for db-dxbc2 and db-xc3-24g4xg boards > I made some comments on device tree patches, but on the v3 instead on the v4. However the comments still apply as the patches didn't change between v3 and v4. Gregory > Kalyan Kinthada (1): > pinctrl: mvebu: pinctrl driver for 98DX3236 SoC > Changes in v2: > - include sdio support for the 98DX4251 > Changes in v3: > - None > Changes in v4: > - Correct some discrepencies between binding and driver. > - Collect acks from Rob and Sebastian > > Documentation/devicetree/bindings/arm/cpus.txt | 1 + > .../bindings/arm/marvell/98dx3236-resume-ctrl.txt | 18 ++ > .../devicetree/bindings/arm/marvell/98dx3236.txt | 23 ++ > .../bindings/clock/mvebu-corediv-clock.txt | 1 + > .../devicetree/bindings/clock/mvebu-cpu-clock.txt | 1 + > .../devicetree/bindings/net/marvell,prestera.txt | 50 ++++ > .../pinctrl/marvell,armada-98dx3236-pinctrl.txt | 46 ++++ > arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 254 +++++++++++++++++++++ > arch/arm/boot/dts/armada-xp-98dx3336.dtsi | 76 ++++++ > arch/arm/boot/dts/armada-xp-98dx4251.dtsi | 90 ++++++++ > arch/arm/boot/dts/db-dxbc2.dts | 159 +++++++++++++ > arch/arm/boot/dts/db-xc3-24g4xg.dts | 155 +++++++++++++ > arch/arm/mach-mvebu/platsmp.c | 86 +++++++ > drivers/clk/mvebu/armada-xp.c | 42 ++++ > drivers/clk/mvebu/clk-corediv.c | 23 ++ > drivers/clk/mvebu/clk-cpu.c | 31 ++- > drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 156 +++++++++++++ > 17 files changed, 1210 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/arm/marvell/98dx3236-resume-ctrl.txt > create mode 100644 Documentation/devicetree/bindings/arm/marvell/98dx3236.txt > create mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.txt > create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt > create mode 100644 arch/arm/boot/dts/armada-xp-98dx3236.dtsi > create mode 100644 arch/arm/boot/dts/armada-xp-98dx3336.dtsi > create mode 100644 arch/arm/boot/dts/armada-xp-98dx4251.dtsi > create mode 100644 arch/arm/boot/dts/db-dxbc2.dts > create mode 100644 arch/arm/boot/dts/db-xc3-24g4xg.dts > > inter-diff to v3: > > diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt > index d4e6ecdfc853..b5bd23992fdf 100644 > --- a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt > +++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt > @@ -28,10 +28,10 @@ mpp13 13 gpio, intr(out), dev(ad15) > mpp14 14 gpio, i2c0(sck) > mpp15 15 gpio, i2c0(sda) > mpp16 16 gpio, dev(oe) > -mpp17 17 gpio, dev(clk) > +mpp17 17 gpio, dev(clkout) > mpp18 18 gpio, uart1(txd) > mpp19 19 gpio, uart1(rxd), dev(rb) > -mpp20 20 gpio, dev(we) > +mpp20 20 gpio, dev(we0) > mpp21 21 gpio, dev(ad0) > mpp22 22 gpio, dev(ad1) > mpp23 23 gpio, dev(ad2) > diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile > index 2a2dd8324fb8..6c6497e80a7b 100644 > --- a/arch/arm/mach-mvebu/Makefile > +++ b/arch/arm/mach-mvebu/Makefile > @@ -7,7 +7,6 @@ obj-$(CONFIG_MACH_MVEBU_ANY) += system-controller.o mvebu-soc-id.o > > ifeq ($(CONFIG_MACH_MVEBU_V7),y) > obj-y += cpu-reset.o board-v7.o coherency.o coherency_ll.o pmsu.o pmsu_ll.o > -obj-y += pmsu-98dx3236.o > > obj-$(CONFIG_PM) += pm.o pm-board.o > obj-$(CONFIG_SMP) += platsmp.o headsmp.o platsmp-a9.o headsmp-a9.o > diff --git a/arch/arm/mach-mvebu/common.h b/arch/arm/mach-mvebu/common.h > index 099dabf23461..6b775492cfad 100644 > --- a/arch/arm/mach-mvebu/common.h > +++ b/arch/arm/mach-mvebu/common.h > @@ -27,5 +27,4 @@ void __iomem *mvebu_get_scu_base(void); > > int mvebu_pm_suspend_init(void (*board_pm_enter)(void __iomem *sdram_reg, > u32 srcmd)); > -void mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr); > #endif > diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c > index 3c9ab9a008ad..59be3ca0464f 100644 > --- a/arch/arm/mach-mvebu/platsmp.c > +++ b/arch/arm/mach-mvebu/platsmp.c > @@ -182,12 +182,57 @@ const struct smp_operations armada_xp_smp_ops __initconst = { > #endif > }; > > +CPU_METHOD_OF_DECLARE(armada_xp_smp, "marvell,armada-xp-smp", > + &armada_xp_smp_ops); > + > +struct resume_controller { > + u32 resume_control; > + u32 resume_boot_addr; > +}; > + > +static const struct resume_controller mv98dx3336_resume_controller = { > + .resume_control = 0x08, > + .resume_boot_addr = 0x04, > +}; > + > +static const struct of_device_id of_mv98dx3236_resume_table[] = { > + { > + .compatible = "marvell,98dx3336-resume-ctrl", > + .data = (void *)&mv98dx3336_resume_controller, > + }, > + { /* end of list */ }, > +}; > + > +static int mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr) > +{ > + const struct of_device_id *match; > + struct device_node *np; > + void __iomem *base; > + struct resume_controller *rc; > + > + WARN_ON(hw_cpu != 1); > + > + np = of_find_matching_node_and_match(NULL, of_mv98dx3236_resume_table, > + &match); > + if (!np) > + return -ENODEV; > + > + base = of_io_request_and_map(np, 0, of_node_full_name(np)); > + rc = (struct resume_controller *)match->data; > + of_node_put(np); > + if (IS_ERR(base)) > + return PTR_ERR(base); > + > + writel(0, base + rc->resume_control); > + writel(virt_to_phys(boot_addr), base + rc->resume_boot_addr); > + > + return 0; > +} > + > static int mv98dx3236_boot_secondary(unsigned int cpu, struct task_struct *idle) > { > int ret, hw_cpu; > > - pr_info("Booting CPU %d\n", cpu); > - > hw_cpu = cpu_logical_map(cpu); > set_secondary_cpu_clock(hw_cpu); > mv98dx3236_resume_set_cpu_boot_addr(hw_cpu, > @@ -212,7 +257,7 @@ static int mv98dx3236_boot_secondary(unsigned int cpu, struct task_struct *idle) > return 0; > } > > -struct smp_operations mv98dx3236_smp_ops __initdata = { > +static const struct smp_operations mv98dx3236_smp_ops __initconst = { > .smp_init_cpus = armada_xp_smp_init_cpus, > .smp_prepare_cpus = armada_xp_smp_prepare_cpus, > .smp_boot_secondary = mv98dx3236_boot_secondary, > @@ -223,7 +268,5 @@ struct smp_operations mv98dx3236_smp_ops __initdata = { > #endif > }; > > -CPU_METHOD_OF_DECLARE(armada_xp_smp, "marvell,armada-xp-smp", > - &armada_xp_smp_ops); > CPU_METHOD_OF_DECLARE(mv98dx3236_smp, "marvell,98dx3236-smp", > &mv98dx3236_smp_ops); > diff --git a/arch/arm/mach-mvebu/pmsu-98dx3236.c b/arch/arm/mach-mvebu/pmsu-98dx3236.c > deleted file mode 100644 > index 1052674dd439..000000000000 > --- a/arch/arm/mach-mvebu/pmsu-98dx3236.c > +++ /dev/null > @@ -1,52 +0,0 @@ > -/** > - * CPU resume support for 98DX3236 internal CPU (a.k.a. MSYS). > - */ > - > -#define pr_fmt(fmt) "mv98dx3236-resume: " fmt > - > -#include <linux/kernel.h> > -#include <linux/init.h> > -#include <linux/of_address.h> > -#include <linux/io.h> > -#include "common.h" > - > -static void __iomem *mv98dx3236_resume_base; > -#define MV98DX3236_CPU_RESUME_CTRL_OFFSET 0x08 > -#define MV98DX3236_CPU_RESUME_ADDR_OFFSET 0x04 > - > -static const struct of_device_id of_mv98dx3236_resume_table[] = { > - {.compatible = "marvell,98dx3336-resume-ctrl",}, > - { /* end of list */ }, > -}; > - > -void mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr) > -{ > - WARN_ON(hw_cpu != 1); > - > - writel(0, mv98dx3236_resume_base + MV98DX3236_CPU_RESUME_CTRL_OFFSET); > - writel(virt_to_phys(boot_addr), mv98dx3236_resume_base + > - MV98DX3236_CPU_RESUME_ADDR_OFFSET); > -} > - > -static int __init mv98dx3236_resume_init(void) > -{ > - struct device_node *np; > - void __iomem *base; > - > - np = of_find_matching_node(NULL, of_mv98dx3236_resume_table); > - if (!np) > - return 0; > - > - base = of_io_request_and_map(np, 0, of_node_full_name(np)); > - if (IS_ERR(base)) { > - pr_err("unable to map registers\n"); > - of_node_put(np); > - return PTR_ERR(mv98dx3236_resume_base); > - } > - > - mv98dx3236_resume_base = base; > - of_node_put(np); > - return 0; > -} > - > -early_initcall(mv98dx3236_resume_init); > diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c > index 554eeae8cd21..9601d662c7f5 100644 > --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c > +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c > @@ -374,8 +374,8 @@ static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { > MPP_VAR_FUNCTION(0x2, "spi0", "miso", V_98DX3236_PLUS), > MPP_VAR_FUNCTION(0x4, "dev", "ad9", V_98DX3236_PLUS)), > MPP_MODE(2, > - MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), > - MPP_VAR_FUNCTION(0x2, "spi0", "csk", V_98DX3236_PLUS), > + MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), > + MPP_VAR_FUNCTION(0x2, "spi0", "sck", V_98DX3236_PLUS), > MPP_VAR_FUNCTION(0x4, "dev", "ad10", V_98DX3236_PLUS)), > MPP_MODE(3, > MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), > @@ -390,7 +390,7 @@ static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { > MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), > MPP_VAR_FUNCTION(0x1, "pex", "rsto", V_98DX3236_PLUS), > MPP_VAR_FUNCTION(0x2, "sd0", "cmd", V_98DX4251), > - MPP_VAR_FUNCTION(0x4, "dev", "bootcs0", V_98DX3236_PLUS)), > + MPP_VAR_FUNCTION(0x4, "dev", "bootcs", V_98DX3236_PLUS)), > MPP_MODE(6, > MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), > MPP_VAR_FUNCTION(0x2, "sd0", "clk", V_98DX4251), > @@ -442,7 +442,8 @@ static struct mvebu_mpp_mode mv98dx3236_mpp_modes[] = { > MPP_VAR_FUNCTION(0x3, "uart1", "txd", V_98DX3236_PLUS)), > MPP_MODE(19, > MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_98DX3236_PLUS), > - MPP_VAR_FUNCTION(0x3, "uart1", "rxd", V_98DX3236_PLUS)), > + MPP_VAR_FUNCTION(0x3, "uart1", "rxd", V_98DX3236_PLUS), > + MPP_VAR_FUNCTION(0x4, "dev", "rb", V_98DX3236_PLUS)), > MPP_MODE(20, > MPP_VAR_FUNCTION(0x0, "gpo", NULL, V_98DX3236_PLUS), > MPP_VAR_FUNCTION(0x4, "dev", "we0", V_98DX3236_PLUS)), > @@ -548,7 +549,7 @@ static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = { > }; > > static struct pinctrl_gpio_range mv98dx3236_mpp_gpio_ranges[] = { > - MPP_GPIO_RANGE(0, 0, 0, 32), > + MPP_GPIO_RANGE(0, 0, 0, 32), > }; > > static int armada_xp_pinctrl_suspend(struct platform_device *pdev, > -- > 2.11.0.24.ge6920cf > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-01-26 15:17 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-01-13 9:12 [PATCHv4 0/5] Support for Marvell switches with integrated CPUs Chris Packham 2017-01-13 9:12 ` [PATCHv4 3/5] pinctrl: mvebu: pinctrl driver for 98DX3236 SoC Chris Packham 2017-01-13 9:54 ` Sebastian Hesselbarth 2017-01-14 7:50 ` Chris Packham 2017-01-19 21:12 ` Chris Packham [not found] ` <66c205acea6046978bf17e6d8fc1959f-5g7mGxlPNYb6GjIOKuZY+ItlCAj8ZROq@public.gmane.org> 2017-01-19 23:19 ` Sebastian Hesselbarth 2017-01-19 23:36 ` Chris Packham [not found] ` <20170113091222.7132-4-chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> 2017-01-19 10:02 ` Russell King - ARM Linux 2017-01-19 21:10 ` Chris Packham 2017-01-23 8:18 ` Chris Packham 2017-01-26 14:11 ` Linus Walleij 2017-01-26 15:17 ` [PATCHv4 0/5] Support for Marvell switches with integrated CPUs Gregory CLEMENT
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).