Merge tag 'mips_4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS updates from Paul Burton: - kexec support for the generic MIPS platform when running on a CPU including the MIPS Coherence Manager & related hardware. - Improvements to the definition of memory barriers used around MMIO accesses, and fixes in their use. - Switch to CONFIG_NO_BOOTMEM from Mike Rapoport, finally dropping reliance on the old bootmem code. - A number of fixes & improvements for Loongson 3 systems. - DT & config updates for the Microsemi Ocelot platform. - Workaround to enable USB power on the Netgear WNDR3400v3. - Various cleanups & fixes. * tag 'mips_4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (51 commits) MIPS: Cleanup DSP ASE detection MIPS: dts: Change upper case to lower case MIPS: generic: Add Network, SPI and I2C to ocelot_defconfig MIPS: Loongson-3: Fix BRIDGE irq delivery problem MIPS: Loongson-3: Fix CPU UART irq delivery problem MIPS: Remove unused PREF, PREFE & PREFX macros MIPS: lib: Use kernel_pref & user_pref in memcpy() MIPS: Remove unused CAT macro MIPS: Add kernel_pref & user_pref helpers MIPS: Remove unused TTABLE macro MIPS: Remove unused PIC macros MIPS: Remove unused MOVN & MOVZ macros MIPS: Provide actually relaxed MMIO accessors MIPS: Enforce strong ordering for MMIO accessors MIPS: Correct `mmiowb' barrier for `wbflush' platforms MIPS: Define MMIO ordering barriers MIPS: mscc: add PCB120 to the ocelot fitImage MIPS: mscc: add DT for Ocelot PCB120 MIPS: memset: Limit excessive `noreorder' assembly mode use MIPS: memset: Fix CPU_DADDI_WORKAROUNDS `small_fixup' regression ...
This commit is contained in:
@@ -10,12 +10,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
biu@1F800000 {
|
||||
biu@1f800000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "lantiq,biu", "simple-bus";
|
||||
reg = <0x1F800000 0x800000>;
|
||||
ranges = <0x0 0x1F800000 0x7FFFFF>;
|
||||
reg = <0x1f800000 0x800000>;
|
||||
ranges = <0x0 0x1f800000 0x7fffff>;
|
||||
|
||||
icu0: icu@80200 {
|
||||
#interrupt-cells = <1>;
|
||||
@@ -24,18 +24,18 @@
|
||||
reg = <0x80200 0x120>;
|
||||
};
|
||||
|
||||
watchdog@803F0 {
|
||||
watchdog@803f0 {
|
||||
compatible = "lantiq,wdt";
|
||||
reg = <0x803F0 0x10>;
|
||||
reg = <0x803f0 0x10>;
|
||||
};
|
||||
};
|
||||
|
||||
sram@1F000000 {
|
||||
sram@1f000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "lantiq,sram";
|
||||
reg = <0x1F000000 0x800000>;
|
||||
ranges = <0x0 0x1F000000 0x7FFFFF>;
|
||||
reg = <0x1f000000 0x800000>;
|
||||
ranges = <0x0 0x1f000000 0x7fffff>;
|
||||
|
||||
eiu0: eiu@101000 {
|
||||
#interrupt-cells = <1>;
|
||||
@@ -66,41 +66,41 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "lantiq,fpi", "simple-bus";
|
||||
ranges = <0x0 0x10000000 0xEEFFFFF>;
|
||||
reg = <0x10000000 0xEF00000>;
|
||||
ranges = <0x0 0x10000000 0xeefffff>;
|
||||
reg = <0x10000000 0xef00000>;
|
||||
|
||||
gptu@E100A00 {
|
||||
gptu@e100a00 {
|
||||
compatible = "lantiq,gptu-xway";
|
||||
reg = <0xE100A00 0x100>;
|
||||
reg = <0xe100a00 0x100>;
|
||||
};
|
||||
|
||||
serial@E100C00 {
|
||||
serial@e100c00 {
|
||||
compatible = "lantiq,asc";
|
||||
reg = <0xE100C00 0x400>;
|
||||
reg = <0xe100c00 0x400>;
|
||||
interrupt-parent = <&icu0>;
|
||||
interrupts = <112 113 114>;
|
||||
};
|
||||
|
||||
dma0: dma@E104100 {
|
||||
dma0: dma@e104100 {
|
||||
compatible = "lantiq,dma-xway";
|
||||
reg = <0xE104100 0x800>;
|
||||
reg = <0xe104100 0x800>;
|
||||
};
|
||||
|
||||
ebu0: ebu@E105300 {
|
||||
ebu0: ebu@e105300 {
|
||||
compatible = "lantiq,ebu-xway";
|
||||
reg = <0xE105300 0x100>;
|
||||
reg = <0xe105300 0x100>;
|
||||
};
|
||||
|
||||
pci0: pci@E105400 {
|
||||
pci0: pci@e105400 {
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "lantiq,pci-xway";
|
||||
bus-range = <0x0 0x0>;
|
||||
ranges = <0x2000000 0 0x8000000 0x8000000 0 0x2000000 /* pci memory */
|
||||
0x1000000 0 0x00000000 0xAE00000 0 0x200000>; /* io space */
|
||||
0x1000000 0 0x00000000 0xae00000 0 0x200000>; /* io space */
|
||||
reg = <0x7000000 0x8000 /* config space */
|
||||
0xE105400 0x400>; /* pci bridge */
|
||||
0xe105400 0x400>; /* pci bridge */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -52,14 +52,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
gpio: pinmux@E100B10 {
|
||||
gpio: pinmux@e100b10 {
|
||||
compatible = "lantiq,danube-pinctrl";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
reg = <0xE100B10 0xA0>;
|
||||
reg = <0xe100b10 0xa0>;
|
||||
|
||||
state_default: pinmux {
|
||||
stp {
|
||||
@@ -82,26 +82,26 @@
|
||||
};
|
||||
};
|
||||
|
||||
etop@E180000 {
|
||||
etop@e180000 {
|
||||
compatible = "lantiq,etop-xway";
|
||||
reg = <0xE180000 0x40000>;
|
||||
reg = <0xe180000 0x40000>;
|
||||
interrupt-parent = <&icu0>;
|
||||
interrupts = <73 78>;
|
||||
phy-mode = "rmii";
|
||||
mac-address = [ 00 11 22 33 44 55 ];
|
||||
};
|
||||
|
||||
stp0: stp@E100BB0 {
|
||||
stp0: stp@e100bb0 {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "lantiq,gpio-stp-xway";
|
||||
gpio-controller;
|
||||
reg = <0xE100BB0 0x40>;
|
||||
reg = <0xe100bb0 0x40>;
|
||||
|
||||
lantiq,shadow = <0xfff>;
|
||||
lantiq,groups = <0x3>;
|
||||
};
|
||||
|
||||
pci@E105400 {
|
||||
pci@e105400 {
|
||||
lantiq,bus-clock = <33333333>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
dtb-$(CONFIG_MSCC_OCELOT) += ocelot_pcb123.dtb
|
||||
dtb-$(CONFIG_MSCC_OCELOT) += ocelot_pcb123.dtb ocelot_pcb120.dtb
|
||||
|
||||
obj-$(CONFIG_BUILTIN_DTB) += $(addsuffix .o, $(dtb-y))
|
||||
|
||||
@@ -78,6 +78,19 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c: i2c@100400 {
|
||||
compatible = "mscc,ocelot-i2c", "snps,designware-i2c";
|
||||
pinctrl-0 = <&i2c_pins>;
|
||||
pinctrl-names = "default";
|
||||
reg = <0x100400 0x100>, <0x198 0x8>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupts = <8>;
|
||||
clocks = <&ahb_clk>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@100800 {
|
||||
pinctrl-0 = <&uart2_pins>;
|
||||
pinctrl-names = "default";
|
||||
@@ -182,6 +195,11 @@
|
||||
interrupts = <13>;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
i2c_pins: i2c-pins {
|
||||
pins = "GPIO_16", "GPIO_17";
|
||||
function = "twi";
|
||||
};
|
||||
|
||||
uart_pins: uart-pins {
|
||||
pins = "GPIO_6", "GPIO_7";
|
||||
function = "uart";
|
||||
@@ -196,6 +214,7 @@
|
||||
pins = "GPIO_14", "GPIO_15";
|
||||
function = "miim1";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
mdio0: mdio@107009c {
|
||||
|
||||
107
arch/mips/boot/dts/mscc/ocelot_pcb120.dts
Normal file
107
arch/mips/boot/dts/mscc/ocelot_pcb120.dts
Normal file
@@ -0,0 +1,107 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/* Copyright (c) 2017 Microsemi Corporation */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/phy/phy-ocelot-serdes.h>
|
||||
#include "ocelot.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mscc,ocelot-pcb120", "mscc,ocelot";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0e000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
phy_int_pins: phy_int_pins {
|
||||
pins = "GPIO_4";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio1 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&miim1>, <&phy_int_pins>;
|
||||
|
||||
phy7: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gpio>;
|
||||
};
|
||||
phy6: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gpio>;
|
||||
};
|
||||
phy5: ethernet-phy@2 {
|
||||
reg = <2>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gpio>;
|
||||
};
|
||||
phy4: ethernet-phy@3 {
|
||||
reg = <3>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gpio>;
|
||||
};
|
||||
};
|
||||
|
||||
&port0 {
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
&port1 {
|
||||
phy-handle = <&phy1>;
|
||||
};
|
||||
|
||||
&port2 {
|
||||
phy-handle = <&phy2>;
|
||||
};
|
||||
|
||||
&port3 {
|
||||
phy-handle = <&phy3>;
|
||||
};
|
||||
|
||||
&port4 {
|
||||
phy-handle = <&phy7>;
|
||||
phy-mode = "sgmii";
|
||||
phys = <&serdes 4 SERDES1G(2)>;
|
||||
};
|
||||
|
||||
&port5 {
|
||||
phy-handle = <&phy4>;
|
||||
phy-mode = "sgmii";
|
||||
phys = <&serdes 5 SERDES1G(5)>;
|
||||
};
|
||||
|
||||
&port6 {
|
||||
phy-handle = <&phy6>;
|
||||
phy-mode = "sgmii";
|
||||
phys = <&serdes 6 SERDES1G(3)>;
|
||||
};
|
||||
|
||||
&port9 {
|
||||
phy-handle = <&phy5>;
|
||||
phy-mode = "sgmii";
|
||||
phys = <&serdes 9 SERDES1G(4)>;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -36,6 +36,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c {
|
||||
clock-frequency = <100000>;
|
||||
i2c-sda-hold-time-ns = <300>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user