Add pinmux and enable newly added drivers:
- MMC (SDIO)
- QSPI flash
- NAND flash
- USB controller
- GPIO
- Ethernet (designware)
- A5PSW ethernet switch
- MIIC media converter

Signed-off-by: Ralph Siemsen <[email protected]>
---
 arch/arm/dts/r9a06g032-rzn1-snarc.dts | 390 ++++++++++++++++++++++++++++++++++
 1 file changed, 390 insertions(+)

diff --git a/arch/arm/dts/r9a06g032-rzn1-snarc.dts 
b/arch/arm/dts/r9a06g032-rzn1-snarc.dts
index 7de8ee15ef3..c05dc3346ff 100644
--- a/arch/arm/dts/r9a06g032-rzn1-snarc.dts
+++ b/arch/arm/dts/r9a06g032-rzn1-snarc.dts
@@ -7,6 +7,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/rzn1-pinctrl.h>
 #include "r9a06g032.dtsi"
 
@@ -73,9 +74,262 @@
        };
 };
 
+&gpio0 {
+       pinctrl-0 = <&pins_gpio0>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&gpio1 {
+       pinctrl-0 = <&pins_gpio1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&gpio2 {
+       pinctrl-0 = <&pins_gpio2>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&gmac2 {
+       status = "okay";
+
+       phy-connection-type = "rgmii-id";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       fixed-link {
+               full-duplex;
+               speed = <1000>;
+       };
+};
+
+&eth_miic {
+       status = "okay";
+};
+
+&mii_conv1 {
+       status = "okay";
+};
+
+&mii_conv2 {
+       status = "okay";
+};
+
+&mii_conv3 {
+       status = "okay";
+};
+
+&mii_conv4 {
+       status = "okay";
+};
+
+&mii_conv5 {
+       status = "okay";
+};
+
+&switch {
+       pinctrl-0 = <&pins_eth3>, <&pins_eth4>, <&pins_mdio1>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       phy-reset-gpios = <&gpio2a 26 GPIO_ACTIVE_LOW>;
+       phy-reset-duration = <15>;
+
+       dsa,member = <0 0>;
+
+       syscon = <&plat_regs>;
+
+       mdio {
+               clock-frequency = <2500000>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               switch0phy4: ethernet-phy@4 {
+                       reg = <4>;
+               };
+
+               switch0phy5: ethernet-phy@5 {
+                       reg = <5>;
+               };
+       };
+};
+
+&switch_port0 {
+       label = "end0";
+       phy-mode = "rgmii-id";
+       phy-handle = <&switch0phy5>;
+       status = "okay";
+};
+
+&switch_port1 {
+       label = "end1";
+       phy-mode = "rgmii-id";
+       phy-handle = <&switch0phy4>;
+       status = "okay";
+};
+
+&switch_port4 {
+       /* Upstream to GMAC2 */
+       status = "okay";
+};
+
 &pinctrl {
        status = "okay";
 
+       pins_eth3: pins_eth3 {
+               pinmux = <
+                       RZN1_PINMUX(36, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_TXCLK */
+                       RZN1_PINMUX(37, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_TXD[0] */
+                       RZN1_PINMUX(38, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_TXD[1] */
+                       RZN1_PINMUX(39, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_TXD[2] */
+                       RZN1_PINMUX(40, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_TXD[3] */
+                       RZN1_PINMUX(41, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_TXEN */
+                       RZN1_PINMUX(42, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_RXCLK */
+                       RZN1_PINMUX(43, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_RXD[0] */
+                       RZN1_PINMUX(44, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_RXD[1] */
+                       RZN1_PINMUX(45, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_RXD[2] */
+                       RZN1_PINMUX(46, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_RXD[3] */
+                       RZN1_PINMUX(47, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH3_RXDV */
+               >;
+               bias-disable;
+               drive-strength = <6>;
+       };
+
+       pins_eth4: pins_eth4 {
+               pinmux = <
+                       RZN1_PINMUX(48, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_TXCLK */
+                       RZN1_PINMUX(49, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_TXD[0] */
+                       RZN1_PINMUX(50, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_TXD[1] */
+                       RZN1_PINMUX(51, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_TXD[2] */
+                       RZN1_PINMUX(52, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_TXD[3] */
+                       RZN1_PINMUX(53, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_TXEN */
+                       RZN1_PINMUX(54, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_RXCLK */
+                       RZN1_PINMUX(55, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_RXD[0] */
+                       RZN1_PINMUX(56, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_RXD[1] */
+                       RZN1_PINMUX(57, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_RXD[2] */
+                       RZN1_PINMUX(58, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_RXD[3] */
+                       RZN1_PINMUX(59, RZN1_FUNC_CLK_ETH_MII_RGMII_RMII)       
/* ETH4_RXDV */
+               >;
+               bias-disable;
+               drive-strength = <6>;
+       };
+
+       pins_gpio0: pins_gpio0 {
+               pinmux = <
+                       RZN1_PINMUX(13, RZN1_FUNC_GPIO) /* GPIO0B[7] */
+                       RZN1_PINMUX(14, RZN1_FUNC_GPIO) /* GPIO0B[8] */
+                       RZN1_PINMUX(15, RZN1_FUNC_GPIO) /* GPIO0A[6] */
+                       RZN1_PINMUX(16, RZN1_FUNC_GPIO) /* GPIO0A[7] */
+                       RZN1_PINMUX(17, RZN1_FUNC_GPIO) /* GPIO0B[9] */
+                       RZN1_PINMUX(18, RZN1_FUNC_GPIO) /* GPIO0B[10] */
+                       RZN1_PINMUX(22, RZN1_FUNC_GPIO) /* GPIO0A[9] */
+                       RZN1_PINMUX(23, RZN1_FUNC_GPIO) /* GPIO0B[13] */
+               >;
+               drive-strength = <6>;
+               bias-disable;
+
+               pins_gpio0_pullup {
+                       pinmux = <
+                               RZN1_PINMUX(25, RZN1_FUNC_GPIO) /* GPIO0B[14] - 
A70CI_EN_N */
+                               RZN1_PINMUX(26, RZN1_FUNC_GPIO) /* GPIO0B[15] - 
A71CH_EN_N */
+                               RZN1_PINMUX(27, RZN1_FUNC_GPIO) /* GPIO0A[11] - 
TRUST_M_EN_N */
+                               RZN1_PINMUX(28, RZN1_FUNC_GPIO) /* GPIO0A[12] - 
TRUST_X_EN_N */
+                               RZN1_PINMUX(32, RZN1_FUNC_GPIO) /* GPIO0B[19] - 
STMA100_EN_N*/
+                       >;
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+
+       };
+
+       pins_gpio1: pins_gpio1 {
+               pinmux = <
+                       RZN1_PINMUX(108, RZN1_FUNC_GPIO)        /* GPIO1A[18] - 
for SPI1_SS_N[0] */
+                       RZN1_PINMUX(109, RZN1_FUNC_GPIO)        /* GPIO1A[19] - 
for SPI0_SS_N[1] */
+                       RZN1_PINMUX(110, RZN1_FUNC_GPIO)        /* GPIO1A[20] - 
for SPI0_SS_N[2] */
+                       RZN1_PINMUX(114, RZN1_FUNC_GPIO)        /* GPIO1A[24] - 
for SPI0_SS_N[0] */
+               >;
+       };
+
+       pins_gpio2: pins_gpio2 {
+               pinmux = <
+                       RZN1_PINMUX(147, RZN1_FUNC_GPIO)        /* Eth4 IRQ 
(GPIO2A[25]) */
+                       RZN1_PINMUX(148, RZN1_FUNC_GPIO)        /* Touch IRQ 
(GPIO2A[26]) */
+                       RZN1_PINMUX(149, RZN1_FUNC_GPIO)        /* Eth5 IRQ 
(GPIO2A[27]) */
+               >;
+       };
+
+       pins_mdio1: pins_mdio1 {
+               pinmux = <
+                       RZN1_PINMUX(152, RZN1_FUNC_ETH_MDIO)   /* MDIO1_MDC */
+                       RZN1_PINMUX(153, RZN1_FUNC_ETH_MDIO)   /* MDIO1_MDIO */
+                       RZN1_PINMUX(171, RZN1_FUNC_MDIO1_SWITCH)    /* 
MDIO1_MUX_SWITCH */
+               >;
+       };
+
+       pins_nand: pins_nand {
+               pinmux = <
+                       RZN1_PINMUX(80, RZN1_FUNC_CLK_ETH_NAND) /* NAND_ALE */
+                       RZN1_PINMUX(81, RZN1_FUNC_CLK_ETH_NAND) /* NAND_CLE */
+                       RZN1_PINMUX(82, RZN1_FUNC_CLK_ETH_NAND) /* NAND_WE_N */
+                       RZN1_PINMUX(83, RZN1_FUNC_CLK_ETH_NAND) /* NAND_RE_N */
+                       RZN1_PINMUX(84, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[0] */
+                       RZN1_PINMUX(85, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[1] */
+                       RZN1_PINMUX(86, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[2] */
+                       RZN1_PINMUX(87, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[3] */
+                       RZN1_PINMUX(88, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[4] */
+                       RZN1_PINMUX(89, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[5] */
+                       RZN1_PINMUX(90, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[6] */
+                       RZN1_PINMUX(91, RZN1_FUNC_CLK_ETH_NAND) /* NAND_IO[7] */
+                       RZN1_PINMUX(92, RZN1_FUNC_CLK_ETH_NAND) /* NAND_CE_N[0] 
*/
+                       RZN1_PINMUX(93, RZN1_FUNC_CLK_ETH_NAND) /* NAND_WP_N[0] 
*/
+                       RZN1_PINMUX(94, RZN1_FUNC_CLK_ETH_NAND) /* 
NAND_RYBY_N[0] */
+               >;
+       };
+
+       pins_qspi0: pins_qspi0 {
+               pinmux = <
+                       RZN1_PINMUX(74, RZN1_FUNC_QSPI)        /* QSPI0_CS_N[0] 
*/
+                       RZN1_PINMUX(75, RZN1_FUNC_QSPI)        /* QSPI0_IO[3] */
+                       RZN1_PINMUX(76, RZN1_FUNC_QSPI)        /* QSPI0_IO[2] */
+                       RZN1_PINMUX(77, RZN1_FUNC_QSPI)        /* QSPI0_IO[1] */
+                       RZN1_PINMUX(78, RZN1_FUNC_QSPI)        /* QSPI0_IO[0] */
+                       RZN1_PINMUX(79, RZN1_FUNC_QSPI)        /* QSPI0_CLK */
+               >;
+               bias-disable;
+       };
+
+       pins_sdio1: pins_sdio1 {
+               pinmux = <
+                       RZN1_PINMUX(95, RZN1_FUNC_SDIO)         /* SDIO0_CMD */
+                       RZN1_PINMUX(97, RZN1_FUNC_SDIO)         /* SDIO0_IO[0] 
*/
+                       RZN1_PINMUX(98, RZN1_FUNC_SDIO)         /* SDIO0_IO[1] 
*/
+                       RZN1_PINMUX(99, RZN1_FUNC_SDIO)         /* SDIO0_IO[2] 
*/
+                       RZN1_PINMUX(100, RZN1_FUNC_SDIO)        /* SDIO0_IO[3] 
*/
+               >;
+
+               pins_sdio1_clk: pins_sdio1_clk {
+                       pinmux = <
+                               RZN1_PINMUX(96, RZN1_FUNC_SDIO) /* SDIO0_CLK */
+                       >;
+                       drive-strength = <12>;
+               };
+
+               pins_sdio1_cd_wp: pins_sdio1_cd_wp {
+                       pinmux = <
+                               RZN1_PINMUX(101, RZN1_FUNC_SDIO_E)      /* 
SDIO0_CD_N */
+                               RZN1_PINMUX(102, RZN1_FUNC_SDIO_E)      /* 
SDIO0_WP */
+                       >;
+                       bias-pull-down;
+               };
+       };
+
        pins_uart0: pins_uart0 {
                pinmux = <
                        RZN1_PINMUX(103, RZN1_FUNC_UART0_I)     /* UART0_TXD */
@@ -83,6 +337,142 @@
                        >;
                bias-disable;
        };
+
+       pins_usb: pins_usb {
+               pins_usb_pdown {
+                       pinmux = <
+                               RZN1_PINMUX(119, RZN1_FUNC_USB) /* USB_PPON[1] 
*/
+                               RZN1_PINMUX(121, RZN1_FUNC_USB) /* USB_PPON[2] 
*/
+                       >;
+                       drive-strength = <4>;
+                       bias-pull-down;
+               };
+
+               pins_usb_pup {
+                       pinmux = <
+                               RZN1_PINMUX(120, RZN1_FUNC_USB) /* USB_OC[1] */
+                               RZN1_PINMUX(122, RZN1_FUNC_USB) /* USB_OC[2] */
+                       >;
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+};
+
+&nand_controller {
+       pinctrl-0 = <&pins_nand>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       oob-reserved = <8>;
+       nand@0 {
+               label = "nand";
+               reg = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       /* 512MB */
+                       label = "nand:ubi0";
+                       reg = <0x0000000 0>;
+               };
+       };
+};
+
+&qspi0 {
+       pinctrl-0 = <&pins_qspi0>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <62500000>;
+               spi-cpha;
+               spi-cpol;
+               spi-rx-bus-width = <4>;
+
+               partition@0 {
+                       /* 256KB */
+                       label = "qspi0:spl";
+                       reg = <0x00000000 0x00040000>;
+               };
+               partition@1 {
+                       /* 256KB */
+                       label = "qspi0:unused_mtd3";
+                       reg = <0x00040000 0x00040000>;
+               };
+               partition@2 {
+                       /* 256KB */
+                       label = "qspi0:configcms";
+                       reg = <0x00080000 0x00040000>;
+               };
+               partition@3 {
+                       /* 256KB */
+                       label = "qspi0:unused_mtd5";
+                       reg = <0x000C0000 0x00040000>;
+               };
+               partition@4{
+                       /* 256KB */
+                       label = "qspi0:env";
+                       reg = <0x00100000 0x00040000>;
+               };
+               partition@5 {
+                       /* 1MB */
+                       label = "qspi0:unused_mtd7";
+                       reg = <0x00140000 0x00100000>;
+               };
+               partition@6 {
+                       /* 1MB */
+                       label = "qspi0:uboot0fit";
+                       reg = <0x00240000 0x00100000>;
+               };
+               partition@7 {
+                       /* 1MB */
+                       label = "qspi0:uboot1fit";
+                       reg = <0x00340000 0x00100000>;
+               };
+               partition@8 {
+                       /* 1MB */
+                       label = "qspi0:tosfit0";
+                       reg = <0x00440000 0x00100000>;
+               };
+               partition@9 {
+                       /* 1MB */
+                       label = "qspi0:tosfit1";
+                       reg = <0x00540000 0x00100000>;
+               };
+               partition@10 {
+                       /* 1MB */
+                       label = "qspi0:cm3fit0";
+                       reg = <0x00640000 0x00100000>;
+               };
+               partition@11 {
+                       /* 1MB */
+                       label = "qspi0:cm3fit1";
+                       reg = <0x00740000 0x00100000>;
+               };
+               partition@12 {
+                       /* Remaining */
+                       label = "qspi0:data";
+                       reg = <0x00840000 0>;
+               };
+       };
+};
+
+&sdio1 {
+       pinctrl-0 = <&pins_sdio1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&udc {
+       pinctrl-0 = <&pins_usb>;
+       pinctrl-names = "default";
+       status = "okay";
 };
 
 &uart0 {

-- 
2.55.0

Reply via email to