Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: mvebu: add Armada 375 support to the system-controller driver

The system controller block in the Armada 375 has different register
offsets for the system reset and other related functions. Therefore,
this commit introduces the new "armada-375-system-controller"
compatible string to identify the Armada 375 variant of the system
controller.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>

authored by

Thomas Petazzoni and committed by
Jason Cooper
df863de1 798ec443

+14 -3
+2 -1
Documentation/devicetree/bindings/arm/mvebu-system-controller.txt
··· 1 1 MVEBU System Controller 2 2 ----------------------- 3 - MVEBU (Marvell SOCs: Armada 370/XP, Dove, mv78xx0, Kirkwood, Orion5x) 3 + MVEBU (Marvell SOCs: Armada 370/375/XP, Dove, mv78xx0, Kirkwood, Orion5x) 4 4 5 5 Required properties: 6 6 7 7 - compatible: one of: 8 8 - "marvell,orion-system-controller" 9 9 - "marvell,armada-370-xp-system-controller" 10 + - "marvell,armada-375-system-controller" 10 11 - reg: Should contain system controller registers location and length. 11 12 12 13 Example:
+12 -2
arch/arm/mach-mvebu/system-controller.c
··· 1 1 /* 2 - * System controller support for Armada 370 and XP platforms. 2 + * System controller support for Armada 370, 375 and XP platforms. 3 3 * 4 4 * Copyright (C) 2012 Marvell 5 5 * ··· 11 11 * License version 2. This program is licensed "as is" without any 12 12 * warranty of any kind, whether express or implied. 13 13 * 14 - * The Armada 370 and Armada XP SoCs both have a range of 14 + * The Armada 370, 375 and Armada XP SoCs have a range of 15 15 * miscellaneous registers, that do not belong to a particular device, 16 16 * but rather provide system-level features. This basic 17 17 * system-controller driver provides a device tree binding for those ··· 47 47 .system_soft_reset = 0x1, 48 48 }; 49 49 50 + static const struct mvebu_system_controller armada_375_system_controller = { 51 + .rstoutn_mask_offset = 0x54, 52 + .system_soft_reset_offset = 0x58, 53 + .rstoutn_mask_reset_out_en = 0x1, 54 + .system_soft_reset = 0x1, 55 + }; 56 + 50 57 static const struct mvebu_system_controller orion_system_controller = { 51 58 .rstoutn_mask_offset = 0x108, 52 59 .system_soft_reset_offset = 0x10c, ··· 68 61 }, { 69 62 .compatible = "marvell,armada-370-xp-system-controller", 70 63 .data = (void *) &armada_370_xp_system_controller, 64 + }, { 65 + .compatible = "marvell,armada-375-system-controller", 66 + .data = (void *) &armada_375_system_controller, 71 67 }, 72 68 { /* end of list */ }, 73 69 };