ARM: dts: mvebu: A37x/XP/38x/39x: Move SPI controller nodes into 'soc' node
This patch moves all Armada 370/XP/38x/39x SPI controller nodes from the 'internal-regs' node down into the 'soc' node. This is in preparation to enable the usage of the SPI direct access mode. A follow-up patch will add the static MBus mappings for the SPI devices into the 'reg' property of the SPI controller DT node. By moving these SPI controller nodes, this patch also makes use of the labels rather than keeping the tree structure. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gregory CLEMENT <gregory.clement@free-electrons.com> Cc: Andrew Lunn <andrew@lunn.ch> Cc: Jason Cooper <jason@lakedaemon.net> Cc: Mark Brown <broonie@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
This commit is contained in:
parent
1113603e39
commit
0160a4b689
|
@ -155,20 +155,6 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
pinctrl-0 = <&spi0_pins2>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "mx25l25635e", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <50000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nand@d0000 {
|
nand@d0000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
num-cs = <1>;
|
num-cs = <1>;
|
||||||
|
@ -274,3 +260,18 @@
|
||||||
compatible = "linux,spdif-dir";
|
compatible = "linux,spdif-dir";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
pinctrl-0 = <&spi0_pins2>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "mx25l25635e", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -68,26 +68,6 @@
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&spi0_pins2>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
/* MX25L8006E */
|
|
||||||
compatible = "mxicy,mx25l8005", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <50000000>;
|
|
||||||
|
|
||||||
partition@0 {
|
|
||||||
label = "u-boot";
|
|
||||||
reg = <0x0 0x100000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
usb@50000 {
|
usb@50000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -176,3 +156,23 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&spi0_pins2>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
/* MX25L8006E */
|
||||||
|
compatible = "mxicy,mx25l8005", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "u-boot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -87,62 +87,6 @@
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "micron,n25q064", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <20000000>;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Warning!
|
|
||||||
*
|
|
||||||
* Synology u-boot uses its compiled-in environment
|
|
||||||
* and it seems Synology did not care to change u-boot
|
|
||||||
* default configuration in order to allow saving a
|
|
||||||
* modified environment at a sensible location. So,
|
|
||||||
* if you do a 'saveenv' under u-boot, your modified
|
|
||||||
* environment will be saved at 1MB after the start
|
|
||||||
* of the flash, i.e. in the middle of the uImage.
|
|
||||||
* For that reason, it is strongly advised not to
|
|
||||||
* change the default environment, unless you know
|
|
||||||
* what you are doing.
|
|
||||||
*/
|
|
||||||
partition@00000000 { /* u-boot */
|
|
||||||
label = "RedBoot";
|
|
||||||
reg = <0x00000000 0x000c0000>; /* 768KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@000c0000 { /* uImage */
|
|
||||||
label = "zImage";
|
|
||||||
reg = <0x000c0000 0x002d0000>; /* 2880KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@00390000 { /* uInitramfs */
|
|
||||||
label = "rd.gz";
|
|
||||||
reg = <0x00390000 0x00440000>; /* 4250KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@007d0000 { /* MAC address and serial number */
|
|
||||||
label = "vendor";
|
|
||||||
reg = <0x007d0000 0x00010000>; /* 64KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@007e0000 {
|
|
||||||
label = "RedBoot config";
|
|
||||||
reg = <0x007e0000 0x00010000>; /* 64KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@007f0000 {
|
|
||||||
label = "FIS directory";
|
|
||||||
reg = <0x007f0000 0x00010000>; /* 64KB */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
compatible = "marvell,mv64xxx-i2c";
|
compatible = "marvell,mv64xxx-i2c";
|
||||||
pinctrl-0 = <&i2c0_pins>;
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
|
@ -347,3 +291,59 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "micron,n25q064", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <20000000>;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warning!
|
||||||
|
*
|
||||||
|
* Synology u-boot uses its compiled-in environment
|
||||||
|
* and it seems Synology did not care to change u-boot
|
||||||
|
* default configuration in order to allow saving a
|
||||||
|
* modified environment at a sensible location. So,
|
||||||
|
* if you do a 'saveenv' under u-boot, your modified
|
||||||
|
* environment will be saved at 1MB after the start
|
||||||
|
* of the flash, i.e. in the middle of the uImage.
|
||||||
|
* For that reason, it is strongly advised not to
|
||||||
|
* change the default environment, unless you know
|
||||||
|
* what you are doing.
|
||||||
|
*/
|
||||||
|
partition@00000000 { /* u-boot */
|
||||||
|
label = "RedBoot";
|
||||||
|
reg = <0x00000000 0x000c0000>; /* 768KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@000c0000 { /* uImage */
|
||||||
|
label = "zImage";
|
||||||
|
reg = <0x000c0000 0x002d0000>; /* 2880KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@00390000 { /* uInitramfs */
|
||||||
|
label = "rd.gz";
|
||||||
|
reg = <0x00390000 0x00440000>; /* 4250KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@007d0000 { /* MAC address and serial number */
|
||||||
|
label = "vendor";
|
||||||
|
reg = <0x007d0000 0x00010000>; /* 64KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@007e0000 {
|
||||||
|
label = "RedBoot config";
|
||||||
|
reg = <0x007e0000 0x00010000>; /* 64KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@007f0000 {
|
||||||
|
label = "FIS directory";
|
||||||
|
reg = <0x007f0000 0x00010000>; /* 64KB */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -148,26 +148,6 @@
|
||||||
interrupts = <50>;
|
interrupts = <50>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
reg = <0x10600 0x28>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cell-index = <0>;
|
|
||||||
interrupts = <30>;
|
|
||||||
clocks = <&coreclk 0>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1: spi@10680 {
|
|
||||||
reg = <0x10680 0x28>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cell-index = <1>;
|
|
||||||
interrupts = <92>;
|
|
||||||
clocks = <&coreclk 0>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0: i2c@11000 {
|
i2c0: i2c@11000 {
|
||||||
compatible = "marvell,mv64xxx-i2c";
|
compatible = "marvell,mv64xxx-i2c";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -320,6 +300,26 @@
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spi0: spi@10600 {
|
||||||
|
reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x28>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <0>;
|
||||||
|
interrupts = <30>;
|
||||||
|
clocks = <&coreclk 0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
spi1: spi@10680 {
|
||||||
|
reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x28>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <1>;
|
||||||
|
interrupts = <92>;
|
||||||
|
clocks = <&coreclk 0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
clocks {
|
clocks {
|
||||||
|
|
|
@ -134,24 +134,6 @@
|
||||||
wt-override;
|
wt-override;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Default SPI pinctrl setting, can be overwritten on
|
|
||||||
* board level if a different configuration is used.
|
|
||||||
*/
|
|
||||||
spi0: spi@10600 {
|
|
||||||
compatible = "marvell,armada-370-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
pinctrl-0 = <&spi0_pins1>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1: spi@10680 {
|
|
||||||
compatible = "marvell,armada-370-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
pinctrl-0 = <&spi1_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0: i2c@11000 {
|
i2c0: i2c@11000 {
|
||||||
reg = <0x11000 0x20>;
|
reg = <0x11000 0x20>;
|
||||||
};
|
};
|
||||||
|
@ -447,3 +429,19 @@
|
||||||
marvell,function = "ge1";
|
marvell,function = "ge1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default SPI pinctrl setting, can be overwritten on
|
||||||
|
* board level if a different configuration is used.
|
||||||
|
*/
|
||||||
|
&spi0 {
|
||||||
|
compatible = "marvell,armada-370-spi", "marvell,orion-spi";
|
||||||
|
pinctrl-0 = <&spi0_pins1>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
compatible = "marvell,armada-370-spi", "marvell,orion-spi";
|
||||||
|
pinctrl-0 = <&spi1_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
|
@ -65,20 +65,6 @@
|
||||||
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
spi1: spi@10680 {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&spi1_pins>;
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "st,m25p128", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <54000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0: i2c@11000 {
|
i2c0: i2c@11000 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c0_pins>;
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
|
@ -239,3 +225,17 @@
|
||||||
gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&spi1_pins>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "st,m25p128", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <54000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -62,11 +62,6 @@
|
||||||
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
|
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
|
|
||||||
spi@10600 {
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c0_pins>;
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
|
@ -332,3 +327,7 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
|
@ -315,30 +315,6 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi@10680 {
|
|
||||||
/*
|
|
||||||
* We don't seem to have the W25Q32 on the
|
|
||||||
* A1 Rev 2.0 boards, so disable SPI.
|
|
||||||
* CS0: W25Q32 (doesn't appear to be present)
|
|
||||||
* CS1:
|
|
||||||
* CS2: mikrobus
|
|
||||||
*/
|
|
||||||
pinctrl-0 = <&spi1_pins
|
|
||||||
&clearfog_spi1_cs_pins
|
|
||||||
&mikro_spi_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
compatible = "w25q32", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <3000000>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
usb@58000 {
|
usb@58000 {
|
||||||
/* CON3, nearest power. */
|
/* CON3, nearest power. */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -444,3 +420,27 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
/*
|
||||||
|
* We don't seem to have the W25Q32 on the
|
||||||
|
* A1 Rev 2.0 boards, so disable SPI.
|
||||||
|
* CS0: W25Q32 (doesn't appear to be present)
|
||||||
|
* CS1:
|
||||||
|
* CS2: mikrobus
|
||||||
|
*/
|
||||||
|
pinctrl-0 = <&spi1_pins
|
||||||
|
&clearfog_spi1_cs_pins
|
||||||
|
&mikro_spi_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
compatible = "w25q32", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <3000000>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -70,18 +70,6 @@
|
||||||
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "w25q32", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <108000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
clock-frequency = <100000>;
|
clock-frequency = <100000>;
|
||||||
|
@ -201,3 +189,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "w25q32", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <108000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -64,21 +64,6 @@
|
||||||
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
spi@10600 {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&spi0_pins>;
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "st,m25p128", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <50000000>;
|
|
||||||
m25p,fast-read;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c0_pins>;
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
|
@ -433,3 +418,18 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&spi0_pins>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "st,m25p128", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
m25p,fast-read;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -70,18 +70,6 @@
|
||||||
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
|
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "st,m25p128", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <108000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
clock-frequency = <100000>;
|
clock-frequency = <100000>;
|
||||||
|
@ -142,3 +130,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "st,m25p128", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <108000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -170,30 +170,6 @@
|
||||||
<0xc100 0x100>;
|
<0xc100 0x100>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
compatible = "marvell,armada-380-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
reg = <0x10600 0x50>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cell-index = <0>;
|
|
||||||
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&coreclk 0>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1: spi@10680 {
|
|
||||||
compatible = "marvell,armada-380-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
reg = <0x10680 0x50>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cell-index = <1>;
|
|
||||||
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&coreclk 0>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0: i2c@11000 {
|
i2c0: i2c@11000 {
|
||||||
compatible = "marvell,mv64xxx-i2c";
|
compatible = "marvell,mv64xxx-i2c";
|
||||||
reg = <0x11000 0x20>;
|
reg = <0x11000 0x20>;
|
||||||
|
@ -649,6 +625,30 @@
|
||||||
no-memory-wc;
|
no-memory-wc;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spi0: spi@10600 {
|
||||||
|
compatible = "marvell,armada-380-spi",
|
||||||
|
"marvell,orion-spi";
|
||||||
|
reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x50>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <0>;
|
||||||
|
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&coreclk 0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
spi1: spi@10680 {
|
||||||
|
compatible = "marvell,armada-380-spi",
|
||||||
|
"marvell,orion-spi";
|
||||||
|
reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x50>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <1>;
|
||||||
|
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&coreclk 0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
clocks {
|
clocks {
|
||||||
|
|
|
@ -65,30 +65,6 @@
|
||||||
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
|
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
spi@10680 {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&spi1_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
compatible = "n25q128a13", "jedec,spi-nor";
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <108000000>;
|
|
||||||
|
|
||||||
partition@0 {
|
|
||||||
label = "U-Boot";
|
|
||||||
reg = <0 0x400000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@400000 {
|
|
||||||
label = "Filesystem";
|
|
||||||
reg = <0x400000 0x1000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
pinctrl-0 = <&i2c0_pins>;
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
@ -151,3 +127,27 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&spi1_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
compatible = "n25q128a13", "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <108000000>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "U-Boot";
|
||||||
|
reg = <0 0x400000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@400000 {
|
||||||
|
label = "Filesystem";
|
||||||
|
reg = <0x400000 0x1000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -131,30 +131,6 @@
|
||||||
<0xc100 0x100>;
|
<0xc100 0x100>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
compatible = "marvell,armada-390-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
reg = <0x10600 0x50>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cell-index = <0>;
|
|
||||||
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&coreclk 0>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1: spi@10680 {
|
|
||||||
compatible = "marvell,armada-390-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
reg = <0x10680 0x50>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cell-index = <1>;
|
|
||||||
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&coreclk 0>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0: i2c@11000 {
|
i2c0: i2c@11000 {
|
||||||
compatible = "marvell,mv64xxx-i2c";
|
compatible = "marvell,mv64xxx-i2c";
|
||||||
reg = <0x11000 0x20>;
|
reg = <0x11000 0x20>;
|
||||||
|
@ -501,6 +477,30 @@
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spi0: spi@10600 {
|
||||||
|
compatible = "marvell,armada-390-spi",
|
||||||
|
"marvell,orion-spi";
|
||||||
|
reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x50>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <0>;
|
||||||
|
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&coreclk 0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
spi1: spi@10680 {
|
||||||
|
compatible = "marvell,armada-390-spi",
|
||||||
|
"marvell,orion-spi";
|
||||||
|
reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x50>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <1>;
|
||||||
|
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&coreclk 0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
clocks {
|
clocks {
|
||||||
|
|
|
@ -135,18 +135,6 @@
|
||||||
phy = <&phy1>;
|
phy = <&phy1>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "n25q128a13", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <108000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -179,3 +167,15 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "n25q128a13", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <108000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -231,18 +231,6 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "m25p64", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <20000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nand@d0000 {
|
nand@d0000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
num-cs = <1>;
|
num-cs = <1>;
|
||||||
|
@ -277,3 +265,15 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "m25p64", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <20000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -232,18 +232,6 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "n25q128a13", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <108000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
bm@c0000 {
|
bm@c0000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -262,3 +250,15 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "n25q128a13", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <108000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -279,18 +279,6 @@
|
||||||
reg = <0x180000 0x780000>; /* 7.5MB */
|
reg = <0x180000 0x780000>; /* 7.5MB */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "everspin,mr25h256";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <40000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -398,3 +386,15 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "everspin,mr25h256";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <40000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -110,62 +110,6 @@
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "micron,n25q064", "jedec,spi-nor";
|
|
||||||
reg = <0>; /* Chip select 0 */
|
|
||||||
spi-max-frequency = <20000000>;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Warning!
|
|
||||||
*
|
|
||||||
* Synology u-boot uses its compiled-in environment
|
|
||||||
* and it seems Synology did not care to change u-boot
|
|
||||||
* default configuration in order to allow saving a
|
|
||||||
* modified environment at a sensible location. So,
|
|
||||||
* if you do a 'saveenv' under u-boot, your modified
|
|
||||||
* environment will be saved at 1MB after the start
|
|
||||||
* of the flash, i.e. in the middle of the uImage.
|
|
||||||
* For that reason, it is strongly advised not to
|
|
||||||
* change the default environment, unless you know
|
|
||||||
* what you are doing.
|
|
||||||
*/
|
|
||||||
partition@00000000 { /* u-boot */
|
|
||||||
label = "RedBoot";
|
|
||||||
reg = <0x00000000 0x000d0000>; /* 832KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@000c0000 { /* uImage */
|
|
||||||
label = "zImage";
|
|
||||||
reg = <0x000d0000 0x002d0000>; /* 2880KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@003a0000 { /* uInitramfs */
|
|
||||||
label = "rd.gz";
|
|
||||||
reg = <0x003a0000 0x00430000>; /* 4250KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@007d0000 { /* MAC address and serial number */
|
|
||||||
label = "vendor";
|
|
||||||
reg = <0x007d0000 0x00010000>; /* 64KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@007e0000 {
|
|
||||||
label = "RedBoot config";
|
|
||||||
reg = <0x007e0000 0x00010000>; /* 64KB */
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@007f0000 {
|
|
||||||
label = "FIS directory";
|
|
||||||
reg = <0x007f0000 0x00010000>; /* 64KB */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c@11000 {
|
i2c@11000 {
|
||||||
clock-frequency = <400000>;
|
clock-frequency = <400000>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -362,3 +306,59 @@
|
||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "micron,n25q064", "jedec,spi-nor";
|
||||||
|
reg = <0>; /* Chip select 0 */
|
||||||
|
spi-max-frequency = <20000000>;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warning!
|
||||||
|
*
|
||||||
|
* Synology u-boot uses its compiled-in environment
|
||||||
|
* and it seems Synology did not care to change u-boot
|
||||||
|
* default configuration in order to allow saving a
|
||||||
|
* modified environment at a sensible location. So,
|
||||||
|
* if you do a 'saveenv' under u-boot, your modified
|
||||||
|
* environment will be saved at 1MB after the start
|
||||||
|
* of the flash, i.e. in the middle of the uImage.
|
||||||
|
* For that reason, it is strongly advised not to
|
||||||
|
* change the default environment, unless you know
|
||||||
|
* what you are doing.
|
||||||
|
*/
|
||||||
|
partition@00000000 { /* u-boot */
|
||||||
|
label = "RedBoot";
|
||||||
|
reg = <0x00000000 0x000d0000>; /* 832KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@000c0000 { /* uImage */
|
||||||
|
label = "zImage";
|
||||||
|
reg = <0x000d0000 0x002d0000>; /* 2880KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@003a0000 { /* uInitramfs */
|
||||||
|
label = "rd.gz";
|
||||||
|
reg = <0x003a0000 0x00430000>; /* 4250KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@007d0000 { /* MAC address and serial number */
|
||||||
|
label = "vendor";
|
||||||
|
reg = <0x007d0000 0x00010000>; /* 64KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@007e0000 {
|
||||||
|
label = "RedBoot config";
|
||||||
|
reg = <0x007e0000 0x00010000>; /* 64KB */
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@007f0000 {
|
||||||
|
label = "FIS directory";
|
||||||
|
reg = <0x007f0000 0x00010000>; /* 64KB */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
|
@ -84,21 +84,6 @@
|
||||||
wt-override;
|
wt-override;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0: spi@10600 {
|
|
||||||
compatible = "marvell,armada-xp-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
pinctrl-0 = <&spi0_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1: spi@10680 {
|
|
||||||
compatible = "marvell,armada-xp-spi",
|
|
||||||
"marvell,orion-spi";
|
|
||||||
pinctrl-0 = <&spi1_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
i2c0: i2c@11000 {
|
i2c0: i2c@11000 {
|
||||||
compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
|
compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
|
||||||
reg = <0x11000 0x100>;
|
reg = <0x11000 0x100>;
|
||||||
|
@ -380,3 +365,15 @@
|
||||||
marvell,function = "uart3";
|
marvell,function = "uart3";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
|
||||||
|
pinctrl-0 = <&spi0_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
|
||||||
|
pinctrl-0 = <&spi1_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in a new issue