From 41054628c45e300e3174f6a0b1a33f30ccb6b591 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Sun, 4 Dec 2022 20:02:28 +0100 Subject: [PATCH 1/5] ARM: dts: gemini: Push down flash address/size cells The platforms not defining any OF partions complain like this: ../arch/arm/boot/dts/gemini.dtsi:19.25-28.5: Warning (avoid_unnecessary_addr_size): /soc/flash@30000000: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property Get rid of this by only defining the address-cells and size-cells where it is actually used by OF partitions. Link: https://lore.kernel.org/r/20221204190230.3345590-1-linus.walleij@linaro.org Signed-off-by: Linus Walleij --- arch/arm/boot/dts/gemini-dlink-dns-313.dts | 2 ++ arch/arm/boot/dts/gemini-wbd111.dts | 2 ++ arch/arm/boot/dts/gemini-wbd222.dts | 2 ++ arch/arm/boot/dts/gemini.dtsi | 2 -- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts index eba1c94ed7f7..fbbea139defc 100644 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts @@ -164,6 +164,8 @@ compatible = "cortina,gemini-flash", "jedec-flash"; status = "okay"; reg = <0x30000000 0x00080000>; + #address-cells = <1>; + #size-cells = <1>; /* * This "RedBoot" is the Storlink derivative. diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts index de3c4416b0fb..bfb7fdd589ae 100644 --- a/arch/arm/boot/dts/gemini-wbd111.dts +++ b/arch/arm/boot/dts/gemini-wbd111.dts @@ -86,6 +86,8 @@ status = "okay"; /* 8MB of flash */ reg = <0x30000000 0x00800000>; + #address-cells = <1>; + #size-cells = <1>; partition@0 { label = "RedBoot"; diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts index e5ceaadbcc1a..82a08e359198 100644 --- a/arch/arm/boot/dts/gemini-wbd222.dts +++ b/arch/arm/boot/dts/gemini-wbd222.dts @@ -90,6 +90,8 @@ status = "okay"; /* 8MB of flash */ reg = <0x30000000 0x00800000>; + #address-cells = <1>; + #size-cells = <1>; partition@0 { label = "RedBoot"; diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi index e836bd0818d4..3ed04d2f394c 100644 --- a/arch/arm/boot/dts/gemini.dtsi +++ b/arch/arm/boot/dts/gemini.dtsi @@ -22,8 +22,6 @@ pinctrl-names = "default"; pinctrl-0 = <&pflash_default_pins>; bank-width = <2>; - #address-cells = <1>; - #size-cells = <1>; status = "disabled"; }; From 747749045e4b50b51582f6ee24e9abacadccfad0 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Sun, 4 Dec 2022 20:02:29 +0100 Subject: [PATCH 2/5] ARM: dts: gemini: wbd111: Use RedBoot partion parser This is clearly a RedBoot partitioned device with 0x20000 sized erase blocks. Link: https://lore.kernel.org/r/20221204190230.3345590-2-linus.walleij@linaro.org Signed-off-by: Linus Walleij --- arch/arm/boot/dts/gemini-wbd111.dts | 33 ++++------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts index bfb7fdd589ae..3c88c59ab481 100644 --- a/arch/arm/boot/dts/gemini-wbd111.dts +++ b/arch/arm/boot/dts/gemini-wbd111.dts @@ -86,36 +86,11 @@ status = "okay"; /* 8MB of flash */ reg = <0x30000000 0x00800000>; - #address-cells = <1>; - #size-cells = <1>; - partition@0 { - label = "RedBoot"; - reg = <0x00000000 0x00020000>; - read-only; - }; - partition@20000 { - label = "kernel"; - reg = <0x00020000 0x00100000>; - }; - partition@120000 { - label = "rootfs"; - reg = <0x00120000 0x006a0000>; - }; - partition@7c0000 { - label = "VCTL"; - reg = <0x007c0000 0x00010000>; - read-only; - }; - partition@7d0000 { - label = "cfg"; - reg = <0x007d0000 0x00010000>; - read-only; - }; - partition@7e0000 { - label = "FIS"; - reg = <0x007e0000 0x00010000>; - read-only; + partitions { + compatible = "redboot-fis"; + /* Eraseblock at 0x7e0000 */ + fis-index-block = <0x3f>; }; }; From e6c7d0ad2a916b0d8e95e0625d6f337ce0a02979 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Sun, 4 Dec 2022 20:02:30 +0100 Subject: [PATCH 3/5] ARM: dts: gemini: wbd222: Use RedBoot partion parser This is clearly a RedBoot partitioned device with 0x20000 sized erase blocks. Link: https://lore.kernel.org/r/20221204190230.3345590-3-linus.walleij@linaro.org Signed-off-by: Linus Walleij --- arch/arm/boot/dts/gemini-wbd222.dts | 33 ++++------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts index 82a08e359198..ff72bbc4db3e 100644 --- a/arch/arm/boot/dts/gemini-wbd222.dts +++ b/arch/arm/boot/dts/gemini-wbd222.dts @@ -90,36 +90,11 @@ status = "okay"; /* 8MB of flash */ reg = <0x30000000 0x00800000>; - #address-cells = <1>; - #size-cells = <1>; - partition@0 { - label = "RedBoot"; - reg = <0x00000000 0x00020000>; - read-only; - }; - partition@20000 { - label = "kernel"; - reg = <0x00020000 0x00100000>; - }; - partition@120000 { - label = "rootfs"; - reg = <0x00120000 0x006a0000>; - }; - partition@7c0000 { - label = "VCTL"; - reg = <0x007c0000 0x00010000>; - read-only; - }; - partition@7d0000 { - label = "cfg"; - reg = <0x007d0000 0x00010000>; - read-only; - }; - partition@7e0000 { - label = "FIS"; - reg = <0x007e0000 0x00010000>; - read-only; + partitions { + compatible = "redboot-fis"; + /* Eraseblock at 0x7e0000 */ + fis-index-block = <0x3f>; }; }; From b041c9d038f7defe20cfbdfeeb1b80f855394bfc Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Mon, 23 Jan 2023 08:39:15 +0100 Subject: [PATCH 4/5] ARM: dts: gemini: Fix USB block version The FOTG version in the Gemini is the FOTG200, fix this up. Signed-off-by: Linus Walleij Link: https://lore.kernel.org/r/20230123073916.2350839-1-linus.walleij@linaro.org --- arch/arm/boot/dts/gemini.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi index 3ed04d2f394c..966b193c05ad 100644 --- a/arch/arm/boot/dts/gemini.dtsi +++ b/arch/arm/boot/dts/gemini.dtsi @@ -439,7 +439,7 @@ }; usb0: usb@68000000 { - compatible = "cortina,gemini-usb", "faraday,fotg210"; + compatible = "cortina,gemini-usb", "faraday,fotg200"; reg = <0x68000000 0x1000>; interrupts = <10 IRQ_TYPE_LEVEL_HIGH>; resets = <&syscon GEMINI_RESET_USB0>; @@ -460,7 +460,7 @@ }; usb1: usb@69000000 { - compatible = "cortina,gemini-usb", "faraday,fotg210"; + compatible = "cortina,gemini-usb", "faraday,fotg200"; reg = <0x69000000 0x1000>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; resets = <&syscon GEMINI_RESET_USB1>; From 776e8ee7a3cb8a6a15067ca4b287ac4a3640ea87 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Mon, 23 Jan 2023 08:39:16 +0100 Subject: [PATCH 5/5] ARM: dts: gemini: Enable DNS313 FOTG210 as periph Add the GPIO-based VBUS phy, and enable the FOTG210 USB1 block for use as peripheral. Signed-off-by: Linus Walleij Link: https://lore.kernel.org/r/20230123073916.2350839-2-linus.walleij@linaro.org --- arch/arm/boot/dts/gemini-dlink-dns-313.dts | 17 +++++++++++++++++ arch/arm/boot/dts/gemini.dtsi | 2 ++ 2 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts index fbbea139defc..138c47e1ac1b 100644 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts @@ -80,6 +80,15 @@ #cooling-cells = <2>; }; + /* + * This is the type B USB connector on the device, + * a GPIO-controlled USB VBUS detect + */ + usb1_phy: phy { + compatible = "gpio-usb-b-connector", "usb-b-connector"; + #phy-cells = <0>; + vbus-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; + }; /* Global Mixed-Mode Technology G751 mounted on GPIO I2C */ i2c { @@ -302,5 +311,13 @@ ide@63000000 { status = "okay"; }; + + usb@69000000 { + status = "okay"; + dr_mode = "peripheral"; + usb-phy = <&usb1_phy>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_default_pins>; + }; }; }; diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi index 966b193c05ad..befe322bd7de 100644 --- a/arch/arm/boot/dts/gemini.dtsi +++ b/arch/arm/boot/dts/gemini.dtsi @@ -455,6 +455,8 @@ */ pinctrl-names = "default"; pinctrl-0 = <&usb_default_pins>; + /* Default to host mode */ + dr_mode = "host"; syscon = <&syscon>; status = "disabled"; };