drivers/phy: Add Marvell SerDes / PHY drivers used on Armada 7K/8K
Subsystems (7)
PATCH 1/9 drivers/phy: Add Marvell SerDes / PHY drivers used on Armada 7K/8K
This version is based on the Marvell U-Boot version with this patch applied as latest patch:
Git ID 7f408573: "fix: comphy: cp110: add comphy initialization for usb device mode" from 2016-07-05.
--- drivers/phy/marvell/Makefile | 1 + drivers/phy/marvell/comphy.h | 18 +- drivers/phy/marvell/comphy_core.c | 3 + drivers/phy/marvell/comphy_cp110.c | 1726 ++++++++++++++++++++++++++++++++++++ drivers/phy/marvell/comphy_hpipe.h | 38 + drivers/phy/marvell/sata.h | 30 + drivers/phy/marvell/utmi_phy.h | 90 ++ 7 files changed, 1904 insertions(+), 2 deletions(-) create mode 100644 drivers/phy/marvell/comphy_cp110.c create mode 100644 drivers/phy/marvell/sata.h create mode 100644 drivers/phy/marvell/utmi_phy.h
drivers/phy/marvell/Makefile +1 -0
@@ -5,3 +5,4 @@ obj-$(CONFIG_MVEBU_COMPHY_SUPPORT) += comphy_core.o obj-$(CONFIG_MVEBU_COMPHY_SUPPORT) += comphy_mux.o obj-$(CONFIG_ARMADA_3700) += comphy_a3700.o +obj-$(CONFIG_ARMADA_8K) += comphy_cp110.o
drivers/phy/marvell/comphy.h +16 -2
@@ -60,6 +60,9 @@#define COMMON_PHY_SD_CTRL1_RXAUI0_MASK \ (0x1 << COMMON_PHY_SD_CTRL1_RXAUI0_OFFSET) +/* ToDo: Get this address via DT */ +#define MVEBU_CP0_REGS_BASE 0xF2000000UL +#define DFX_DEV_GEN_CTRL12 (MVEBU_CP0_REGS_BASE + 0x400280)#define DFX_DEV_GEN_PCIE_CLK_SRC_OFFSET 7#define DFX_DEV_GEN_PCIE_CLK_SRC_MASK \
@@ -117,10 +120,21 @@ static inline int comphy_a3700_init(struct chip_serdes_phy_config *ptr_chip_cfg, return -1; }#endif -int comphy_ap806_init (struct chip_serdes_phy_config *ptr_chip_cfg, -struct comphy_map *serdes_map); + +#ifdef CONFIG_ARMADA_8K int comphy_cp110_init (struct chip_serdes_phy_config *ptr_chip_cfg,struct comphy_map *serdes_map); +#else +static inline int comphy_cp110_init (struct chip_serdes_phy_config *ptr_chip_cfg, +struct comphy_map *serdes_map) +{ +/* +* This function should never be called in this configuration, so +* lets return an error here. +*/ +return -1 ; +} +#endif void comphy_dedicated_phys_init (void );
drivers/phy/marvell/comphy_core.c +3 -0
@@ -139,6 +139,9 @@ static int comphy_probe(struct udevice *dev)if (of_device_is_compatible (dev,"marvell,comphy-armada-3700" )) chip_cfg->ptr_comphy_chip_init = comphy_a3700_init; +if (of_device_is_compatible (dev,"marvell,comphy-cp110" )) + chip_cfg->ptr_comphy_chip_init = comphy_cp110_init; +/* * Bail out if no chip_init function is defined, e.g. no * compatible node is found
drivers/phy/marvell/comphy_cp110.c new file +1726 -0
1,726 lines not on this page · raw message
drivers/phy/marvell/comphy_hpipe.h +38 -0
@@ -78,6 +78,14 @@#define HPIPE_KVCO_CALIB_CTRL_MAX_PLL_MASK \ (0x1 << HPIPE_KVCO_CALIB_CTRL_MAX_PLL_OFFSET) +#define HPIPE_CAL_REG1_REG 0xc +#define HPIPE_CAL_REG_1_EXT_TXIMP_OFFSET 10 +#define HPIPE_CAL_REG_1_EXT_TXIMP_MASK \ + (0x1f << HPIPE_CAL_REG_1_EXT_TXIMP_OFFSET) +#define HPIPE_CAL_REG_1_EXT_TXIMP_EN_OFFSET 15 +#define HPIPE_CAL_REG_1_EXT_TXIMP_EN_MASK \ + (0x1 << HPIPE_CAL_REG_1_EXT_TXIMP_EN_OFFSET) +#define HPIPE_SQUELCH_FFE_SETTING_REG 0x018#define HPIPE_DFE_REG0 0x01C
@@ -94,6 +102,9 @@ (0x1 << HPIPE_DFE_F3_F5_DFE_CTRL_OFFSET)#define HPIPE_G1_SET_0_REG 0x034 +#define HPIPE_G1_SET_0_G1_TX_AMP_OFFSET 1 +#define HPIPE_G1_SET_0_G1_TX_AMP_MASK \ + (0x1f << HPIPE_G1_SET_0_G1_TX_AMP_OFFSET)#define HPIPE_G1_SET_0_G1_TX_EMPH1_OFFSET 7#define HPIPE_G1_SET_0_G1_TX_EMPH1_MASK \ (0xf << HPIPE_G1_SET_0_G1_TX_EMPH1_OFFSET)
@@ -145,6 +156,14 @@#define HPIPE_ISOLATE_MODE_GEN_TX_MASK \ (0xf << HPIPE_ISOLATE_MODE_GEN_TX_OFFSET) +#define HPIPE_G1_SET_2_REG 0xf4 +#define HPIPE_G1_SET_2_G1_TX_EMPH0_OFFSET 0 +#define HPIPE_G1_SET_2_G1_TX_EMPH0_MASK \ + (0xf << HPIPE_G1_SET_2_G1_TX_EMPH0_OFFSET) +#define HPIPE_G1_SET_2_G1_TX_EMPH0_EN_OFFSET 4 +#define HPIPE_G1_SET_2_G1_TX_EMPH0_EN_MASK \ + (0x1 << HPIPE_G1_SET_2_G1_TX_EMPH0_MASK) +#define HPIPE_VTHIMPCAL_CTRL_REG 0x104#define HPIPE_PCIE_REG0 0x120
@@ -164,6 +183,9 @@#define HPIPE_MISC_CLK100M_125M_OFFSET 4#define HPIPE_MISC_CLK100M_125M_MASK \ (0x1 << HPIPE_MISC_CLK100M_125M_OFFSET) +#define HPIPE_MISC_ICP_FORCE_OFFSET 5 +#define HPIPE_MISC_ICP_FORCE_MASK \ + (0x1 << HPIPE_MISC_ICP_FORCE_OFFSET)#define HPIPE_MISC_TXDCLK_2X_OFFSET 6#define HPIPE_MISC_TXDCLK_2X_MASK \ (0x1 << HPIPE_MISC_TXDCLK_2X_OFFSET)
@@ -197,6 +219,14 @@#define HPIPE_SMAPLER_MASK \ (0x1 << HPIPE_SMAPLER_OFFSET) +#define HPIPE_TX_REG1_REG 0x174 +#define HPIPE_TX_REG1_TX_EMPH_RES_OFFSET 5 +#define HPIPE_TX_REG1_TX_EMPH_RES_MASK \ + (0x3 << HPIPE_TX_REG1_TX_EMPH_RES_OFFSET) +#define HPIPE_TX_REG1_SLC_EN_OFFSET 10 +#define HPIPE_TX_REG1_SLC_EN_MASK \ + (0x3f << HPIPE_TX_REG1_SLC_EN_OFFSET) +#define HPIPE_PWR_CTR_DTL_REG 0x184#define HPIPE_PWR_CTR_DTL_FLOOP_EN_OFFSET 2#define HPIPE_PWR_CTR_DTL_FLOOP_EN_MASK \
@@ -262,6 +292,9 @@ (0x1 << HPIPE_TX_SWEEP_PRESET_EN_OFFSET)#define HPIPE_G1_SETTINGS_3_REG 0x440 +#define HPIPE_G1_SETTINGS_3_G1_FBCK_SEL_OFFSET 9 +#define HPIPE_G1_SETTINGS_3_G1_FBCK_SEL_MASK \ + (0x1 << HPIPE_G1_SETTINGS_3_G1_FBCK_SEL_OFFSET)#define HPIPE_G1_SETTINGS_4_REG 0x444#define HPIPE_G1_SETTINGS_4_G1_DFE_RES_OFFSET 8
@@ -289,6 +322,11 @@#define HPIPE_DFE_CTRL_28_PIPE4_MASK \ (0x1 << HPIPE_DFE_CTRL_28_PIPE4_OFFSET) +#define HPIPE_G1_SETTING_5_REG 0x538 +#define HPIPE_G1_SETTING_5_G1_ICP_OFFSET 0 +#define HPIPE_G1_SETTING_5_G1_ICP_MASK \ + (0xf << HPIPE_G1_SETTING_5_G1_ICP_OFFSET) +#define HPIPE_LANE_CONFIG0_REG 0x600#define HPIPE_LANE_CONFIG0_TXDEEMPH0_OFFSET 0#define HPIPE_LANE_CONFIG0_TXDEEMPH0_MASK \
drivers/phy/marvell/sata.h new file +30 -0
@@ -0,0 +1,30 @@ +/* +* Copyright (C) 2015-2016 Marvell International Ltd. +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef _SATA_H_ +#define _SATA_H_ + +/* SATA3 Unit address */ +#define SATA3_VENDOR_ADDRESS 0xA0 +#define SATA3_VENDOR_ADDR_OFSSET 0 +#define SATA3_VENDOR_ADDR_MASK (0xFFFFFFFF << SATA3_VENDOR_ADDR_OFSSET) +#define SATA3_VENDOR_DATA 0xA4 + +#define SATA_CONTROL_REG 0x0 +#define SATA3_CTRL_SATA0_PD_OFFSET 6 +#define SATA3_CTRL_SATA0_PD_MASK (1 << SATA3_CTRL_SATA0_PD_OFFSET) +#define SATA3_CTRL_SATA1_PD_OFFSET 14 +#define SATA3_CTRL_SATA1_PD_MASK (1 << SATA3_CTRL_SATA1_PD_OFFSET) +#define SATA3_CTRL_SATA1_ENABLE_OFFSET 22 +#define SATA3_CTRL_SATA1_ENABLE_MASK (1 << SATA3_CTRL_SATA1_ENABLE_OFFSET) +#define SATA3_CTRL_SATA_SSU_OFFSET 23 +#define SATA3_CTRL_SATA_SSU_MASK (1 << SATA3_CTRL_SATA_SSU_OFFSET) + +#define SATA_MBUS_SIZE_SELECT_REG 0x4 +#define SATA_MBUS_REGRET_EN_OFFSET 7 +#define SATA_MBUS_REGRET_EN_MASK (0x1 << SATA_MBUS_REGRET_EN_OFFSET) + +#endif /* _SATA_H_ */
drivers/phy/marvell/utmi_phy.h new file +90 -0
90 lines not on this page · raw message
Signature · 1 line
2.9.3
PATCH 2/9 usb: xhci-mvebu: Add Armada 8K to compatiblity list
To enable this driver on Armada 7K/8K this patch adds the compatibility property to the list.
--- drivers/usb/host/xhci-mvebu.c | 1 + 1 file changed, 1 insertion(+)
drivers/usb/host/xhci-mvebu.c +1 -0
@@ -79,6 +79,7 @@ static int xhci_usb_ofdata_to_platdata(struct udevice *dev)static const struct udevice_id xhci_usb_ids[] = { { .compatible ="marvell,armada3700-xhci" }, + { .compatible ="marvell,armada-8k-xhci" }, { } };
Signature · 1 line
2.9.3
PATCH 3/9 ahci: Make ahci_port_base() non-static to enable overwrite
In reply to Stefan RoeseTo allow a board- / platform-specific ahci_port_base() function, this patch removes "static inline" and adds __weak to this function. This will be used by the upcoming Armada 7K/8K SATA / AHCI support, which unfortunately needs a different port base address calculation.
--- drivers/block/ahci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/block/ahci.c +1 -1
@@ -45,7 +45,7 @@ u16 *ataid[AHCI_MAX_PORTS];#define WAIT_MS_FLUSH 5000#define WAIT_MS_LINKUP 200 -static inline void __iomem *ahci_port_base (void __iomem *base,u32 port) +__weak void __iomem *ahci_port_base (void __iomem *base,u32 port) {return base +0x100 + (port *0x80 ); }
Signature · 1 line
2.9.3
PATCH 4/9 arm64: mvebu: Armada 7K/8K: Add Armada 7K/8K dts files
In reply to Stefan RoeseThis patch integrates the Armada 7K/8K dts files from the latest submission on the linux-arm-kernel mailing list.
--- arch/arm/dts/Makefile | 1 + arch/arm/dts/armada-7040-db.dts | 148 ++++++++++++++++++++++ arch/arm/dts/armada-7040.dtsi | 55 ++++++++ arch/arm/dts/armada-ap806-quad.dtsi | 82 ++++++++++++ arch/arm/dts/armada-ap806.dtsi | 229 ++++++++++++++++++++++++++++++++++ arch/arm/dts/armada-cp110-master.dtsi | 228 +++++++++++++++++++++++++++++++++ 6 files changed, 743 insertions(+) create mode 100644 arch/arm/dts/armada-7040-db.dts create mode 100644 arch/arm/dts/armada-7040.dtsi create mode 100644 arch/arm/dts/armada-ap806-quad.dtsi create mode 100644 arch/arm/dts/armada-ap806.dtsi create mode 100644 arch/arm/dts/armada-cp110-master.dtsi
arch/arm/dts/Makefile +1 -0
@@ -71,6 +71,7 @@ dtb-$(CONFIG_ARCH_MVEBU) += \ armada-375-db.dtb \ armada-388-clearfog.dtb \ armada-388-gp.dtb \ + armada-7040-db.dtb \ armada-xp-gp.dtb \ armada-xp-maxbcm.dtb \ armada-xp-synology-ds414.dtb \
arch/arm/dts/armada-7040-db.dts new file +148 -0
148 lines not on this page · raw message
arch/arm/dts/armada-7040.dtsi new file +55 -0
55 lines not on this page · raw message
arch/arm/dts/armada-ap806-quad.dtsi new file +82 -0
82 lines not on this page · raw message
arch/arm/dts/armada-ap806.dtsi new file +229 -0
229 lines not on this page · raw message
arch/arm/dts/armada-cp110-master.dtsi new file +228 -0
228 lines not on this page · raw message
Signature · 1 line
2.9.3
PATCH 5/9 arm64: mvebu: Add basic support for the Marvell Armada 7K/8K SoC
In reply to Stefan RoeseCompared to the Armada 3700, the Armada 7K and 8K are much more on the high-end side: they use a dual Cortex-A72 or a quad Cortex-A72, as opposed to the Cortex-A53 for the Armada 3700.
The Armada 7K and 8K also use a fairly unique architecture, internally they are composed of several components:
- One AP (Application Processor), which contains the processor itself and a few core hardware blocks. The AP used in the Armada 7K and 8K is called AP806, and is available in two configurations:
dual Cortex-A72 and quad Cortex-A72.
- One or two CP (Communication Processor), which contain most of the I/O interfaces (SATA, PCIe, Ethernet, etc.). The 7K family chips have one CP, while the 8K family chips integrate two CPs, providing two times the number of I/O interfaces available in the CP.
The CP used in the 7K and 8K is called CP110.
All in all, this gives the following combinations:
- Armada 7020, which is a dual Cortex-A72 with one CP
- Armada 7040, which is a quad Cortex-A72 with one CP
- Armada 8020, which is a dual Cortex-A72 with two CPs
- Armada 8040, which is a quad Cortex-A72 with two CPs
This patch adds basic support for this ARMv8 based SoC into U-Boot. Future patches will integrate other device drivers and board support, starting with the Marvell DB-88F7040 development board.
---
arch/arm/Kconfig | 2 +-
arch/arm/mach-mvebu/Kconfig | 7 +-
arch/arm/mach-mvebu/Makefile | 3 +
arch/arm/mach-mvebu/arm64-common.c | 124 ++++++++++++++++++++++++++++
arch/arm/mach-mvebu/armada3700/Makefile | 1 -
arch/arm/mach-mvebu/armada3700/cpu.c | 107 ------------------------
arch/arm/mach-mvebu/armada8k/Makefile | 7 ++
arch/arm/mach-mvebu/armada8k/cpu.c | 64 ++++++++++++++
arch/arm/mach-mvebu/include/mach/soc.h | 2 +
arch/arm/mach-mvebu/{armada3700 => }/sata.c | 9 ++
10 files changed, 216 insertions(+), 110 deletions(-)
create mode 100644 arch/arm/mach-mvebu/arm64-common.c
create mode 100644 arch/arm/mach-mvebu/armada8k/Makefile
create mode 100644 arch/arm/mach-mvebu/armada8k/cpu.c
rename arch/arm/mach-mvebu/{armada3700 => }/sata.c (77%)arch/arm/Kconfig +1 -1
@@ -164,7 +164,7 @@ config KIRKWOOD select CPU_ARM926EJS config ARCH_MVEBU - bool "Marvell MVEBU family (Armada XP/375/38x)" + bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)" select OF_CONTROL select OF_SEPARATE select DM
arch/arm/mach-mvebu/Kconfig +6 -1
@@ -31,6 +31,11 @@ config ARMADA_3700 bool select ARM64 +# Armada 7K and 8K are very similar - use only one Kconfig symbol for both +config ARMADA_8K + bool + select ARM64 + # Armada XP/38x SoC types... config MV78230 bool
@@ -49,7 +54,7 @@ config DB_88F6820_GP select ARMADA_38X choice - prompt "Marvell MVEBU (Armada XP/375/38x/3700) board select" + prompt "Armada XP/375/38x/3700/7K/8K board select" optional config TARGET_CLEARFOG
arch/arm/mach-mvebu/Makefile +3 -0
@@ -7,6 +7,9 @@ ifdef CONFIG_ARM64 obj-$(CONFIG_ARMADA_3700) += armada3700/ +obj-$(CONFIG_ARMADA_8K) += armada8k/ +obj-y += arm64-common.o +obj-y += sata.o else # CONFIG_ARM64
arch/arm/mach-mvebu/arm64-common.c new file +124 -0
124 lines not on this page · raw message
arch/arm/mach-mvebu/armada3700/Makefile +0 -1
@@ -5,4 +5,3 @@ # obj-y = cpu.o -obj-y += sata.o
arch/arm/mach-mvebu/armada3700/cpu.c +0 -107
116 lines not on this page · raw message
arch/arm/mach-mvebu/armada8k/Makefile new file +7 -0
@@ -0,0 +1,7 @@ +# +# Copyright (C) 2016 Stefan Roese <[email protected]> +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y = cpu.o
arch/arm/mach-mvebu/armada8k/cpu.c new file +64 -0
64 lines not on this page · raw message
arch/arm/mach-mvebu/include/mach/soc.h +2 -0
@@ -46,6 +46,8 @@* required for the Linux kernel. */ #define SOC_REGS_PHY_BASE 0xd0000000 +#elif defined(CONFIG_ARMADA_8K ) +#define SOC_REGS_PHY_BASE 0xf0000000#else #define SOC_REGS_PHY_BASE 0xf1000000#endif
arch/arm/mach-mvebu/sata.c renamed from arch/arm/mach-mvebu/armada3700/sata.c +9 -0
@@ -19,6 +19,14 @@ __weak int board_ahci_enable(void)return 0 ; } +#ifdef CONFIG_ARMADA_8K +/* CP110 has different AHCI port addresses */ +void __iomem *ahci_port_base (void __iomem *base,u32 port) +{ +return base +0x10000 + (port *0x10000 ); +} +#endif +static int mvebu_ahci_probe (struct udevice *dev) {/*
@@ -34,6 +42,7 @@ static int mvebu_ahci_probe(struct udevice *dev)static const struct udevice_id mvebu_ahci_ids[] = { { .compatible ="marvell,armada-3700-ahci" }, + { .compatible ="marvell,armada-8k-ahci" }, { } };
Signature · 1 line
2.9.3
PATCH 6/9 arm64: mvebu: Add Armada 7K db-88f7040 development board support
In reply to Stefan RoeseThis patch adds basic support for the Marvell Armada 7K DB-88F7040 development board. Supported are the following interfaces:
- UART
- SPI (incl. SPI NOR)
- I2C
- USB
- SATA / AHCI
Support for other interfaces will follow.
--- arch/arm/mach-mvebu/Kconfig | 7 ++ board/Marvell/mvebu_db-88f7040/MAINTAINERS | 6 ++ board/Marvell/mvebu_db-88f7040/Makefile | 7 ++ board/Marvell/mvebu_db-88f7040/board.c | 152 +++++++++++++++++++++++++++++ configs/mvebu_db-88f7040_defconfig | 47 +++++++++ include/configs/mvebu_db-88f7040.h | 133 +++++++++++++++++++++++++ 6 files changed, 352 insertions(+) create mode 100644 board/Marvell/mvebu_db-88f7040/MAINTAINERS create mode 100644 board/Marvell/mvebu_db-88f7040/Makefile create mode 100644 board/Marvell/mvebu_db-88f7040/board.c create mode 100644 configs/mvebu_db-88f7040_defconfig create mode 100644 include/configs/mvebu_db-88f7040.h
arch/arm/mach-mvebu/Kconfig +7 -0
@@ -73,6 +73,10 @@ config TARGET_DB_88F6820_GP bool "Support DB-88F6820-GP" select DB_88F6820_GP +config TARGET_MVEBU_DB_88F7040 + bool "Support DB-88F7040 Armada 7040" + select ARMADA_8K + config TARGET_DB_MV784MP_GP bool "Support db-mv784mp-gp" select MV78460
@@ -96,6 +100,7 @@ config SYS_BOARD default "mvebu_db-88f3720" if TARGET_MVEBU_DB_88F3720 default "db-88f6720" if TARGET_DB_88F6720 default "db-88f6820-gp" if TARGET_DB_88F6820_GP + default "mvebu_db-88f7040" if TARGET_MVEBU_DB_88F7040 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP default "ds414" if TARGET_DS414 default "maxbcm" if TARGET_MAXBCM
@@ -106,6 +111,7 @@ config SYS_CONFIG_NAME default "mvebu_db-88f3720" if TARGET_MVEBU_DB_88F3720 default "db-88f6720" if TARGET_DB_88F6720 default "db-88f6820-gp" if TARGET_DB_88F6820_GP + default "mvebu_db-88f7040" if TARGET_MVEBU_DB_88F7040 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP default "ds414" if TARGET_DS414 default "maxbcm" if TARGET_MAXBCM
@@ -116,6 +122,7 @@ config SYS_VENDOR default "Marvell" if TARGET_MVEBU_DB_88F3720 default "Marvell" if TARGET_DB_88F6720 default "Marvell" if TARGET_DB_88F6820_GP + default "Marvell" if TARGET_MVEBU_DB_88F7040 default "solidrun" if TARGET_CLEARFOG default "Synology" if TARGET_DS414
board/Marvell/mvebu_db-88f7040/MAINTAINERS new file +6 -0
@@ -0,0 +1,6 @@ +MVEBU_DB_88F7040 BOARD +M: Stefan Roese <[email protected]> +S: Maintained +F: board/Marvell/mvebu_db-88f7040/ +F: include/configs/mvebu_db-88f7040.h +F: configs/mvebu_db-88f7040_defconfig
board/Marvell/mvebu_db-88f7040/Makefile new file +7 -0
@@ -0,0 +1,7 @@ +# +# Copyright (C) 2016 Stefan Roese <[email protected]> +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := board.o
board/Marvell/mvebu_db-88f7040/board.c new file +152 -0
152 lines not on this page · raw message
configs/mvebu_db-88f7040_defconfig new file +47 -0
47 lines not on this page · raw message
include/configs/mvebu_db-88f7040.h new file +133 -0
133 lines not on this page · raw message
Signature · 1 line
2.9.3
PATCH 7/9 arm64: mvebu: armada-ap806.dtsi: Add clock-frequency to UART DT node
In reply to Stefan RoeseThe clock frequency needs to be provided in the DT. Otherwise the driver won't start in U-Boot.
--- arch/arm/dts/armada-ap806.dtsi | 1 + 1 file changed, 1 insertion(+)
arch/arm/dts/armada-ap806.dtsi +1 -0
@@ -202,6 +202,7 @@ reg-io-width = <1>; clocks = <&ap_syscon 3>; status = "disabled"; + clock-frequency = <200000000>; }; uart1: serial at 512100 {
Signature · 1 line
2.9.3
PATCH 8/9 arm64: mvebu: Armada 7K/8K: Add COMPHY device tree nodes
In reply to Stefan RoeseThis patch adds the COMPHY device tree nodes that are still missing to the Armada 7K/8K dts files.
--- arch/arm/dts/armada-7040-db.dts | 40 +++++++++++++++++++++++++++++++++++ arch/arm/dts/armada-cp110-master.dtsi | 28 ++++++++++++++++++++++++ 2 files changed, 68 insertions(+)
arch/arm/dts/armada-7040-db.dts +40 -0
@@ -146,3 +146,43 @@ &cpm_usb3_1 { status = "okay"; }; + +&comphy_cp110 { + phy0 { + phy-type = <PHY_TYPE_SGMII2>; + phy-speed = <PHY_SPEED_3_125G>; + }; + + phy1 { + phy-type = <PHY_TYPE_USB3_HOST0>; + phy-speed = <PHY_SPEED_5G>; + }; + + phy2 { + phy-type = <PHY_TYPE_SGMII0>; + phy-speed = <PHY_SPEED_1_25G>; + }; + + phy3 { + phy-type = <PHY_TYPE_SATA1>; + phy-speed = <PHY_SPEED_5G>; + }; + + phy4 { + phy-type = <PHY_TYPE_USB3_HOST1>; + phy-speed = <PHY_SPEED_5G>; + }; + + phy5 { + phy-type = <PHY_TYPE_PEX2>; + phy-speed = <PHY_SPEED_5G>; + }; +}; + +&utmi0 { + status = "okay"; +}; + +&utmi1 { + status = "okay"; +};
arch/arm/dts/armada-cp110-master.dtsi +28 -0
@@ -44,6 +44,8 @@ * Device Tree file for Marvell Armada CP110 Master. */ +#include <dt-bindings/comphy/comphy_data.h> + / { cp110-master { #address-cells = <2>;
@@ -146,6 +148,32 @@ clocks = <&cpm_syscon0 1 21>; status = "disabled"; }; + + comphy_cp110: comphy at 441000 { + compatible = "marvell,mvebu-comphy", "marvell,comphy-cp110"; + reg = <0x441000 0x8>, + <0x120000 0x8>; + mux-bitcount = <4>; + max-lanes = <6>; + }; + + utmi0: utmi at 580000 { + compatible = "marvell,mvebu-utmi-2.6.0"; + reg = <0x580000 0x1000>, /* utmi-unit */ + <0x440420 0x4>, /* usb-cfg */ + <0x440440 0x4>; /* utmi-cfg */ + utmi-port = <UTMI_PHY_TO_USB_HOST0>; + status = "disabled"; + }; + + utmi1: utmi at 581000 { + compatible = "marvell,mvebu-utmi-2.6.0"; + reg = <0x581000 0x1000>, /* utmi-unit */ + <0x440420 0x4>, /* usb-cfg */ + <0x440444 0x4>; /* utmi-cfg */ + utmi-port = <UTMI_PHY_TO_USB_HOST1>; + status = "disabled"; + }; }; cpm_pcie0: pcie at f2600000 {
Signature · 1 line
2.9.3
PATCH 9/9 arm64: mvebu: armada-7040-db.dts: Add I2C and SPI aliases
In reply to Stefan RoeseAdd I2C and SPI aliases to enable usage in U-Boot.
--- arch/arm/dts/armada-7040-db.dts | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm/dts/armada-7040-db.dts +5 -0
@@ -55,6 +55,11 @@ stdout-path = "serial0:115200n8"; }; + aliases { + i2c0 = &cpm_i2c0; + spi0 = &cpm_spi1; + }; + memory at 00000000 { device_type = "memory"; reg = <0x0 0x0 0x0 0x80000000>;
Signature · 1 line
2.9.3