armada-38x-solidrun-microsom.dtsi 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2. /*
  3. * Device Tree file for SolidRun Armada 38x Microsom
  4. *
  5. * Copyright (C) 2015 Russell King
  6. */
  7. #include <dt-bindings/input/input.h>
  8. #include <dt-bindings/gpio/gpio.h>
  9. / {
  10. memory {
  11. device_type = "memory";
  12. reg = <0x00000000 0x10000000>; /* 256 MB */
  13. };
  14. soc {
  15. ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
  16. MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
  17. MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
  18. MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
  19. MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
  20. internal-regs {
  21. rtc@a3800 {
  22. /*
  23. * If the rtc doesn't work, run "date reset"
  24. * twice in u-boot.
  25. */
  26. status = "okay";
  27. };
  28. };
  29. };
  30. };
  31. &bm {
  32. status = "okay";
  33. };
  34. &bm_bppi {
  35. status = "okay";
  36. };
  37. &eth0 {
  38. /* ethernet@70000 */
  39. pinctrl-0 = <&ge0_rgmii_pins>;
  40. pinctrl-names = "default";
  41. phy = <&phy_dedicated>;
  42. phy-mode = "rgmii-id";
  43. buffer-manager = <&bm>;
  44. bm,pool-long = <0>;
  45. bm,pool-short = <1>;
  46. status = "okay";
  47. };
  48. &mdio {
  49. /*
  50. * Add the phy clock here, so the phy can be accessed to read its
  51. * IDs prior to binding with the driver.
  52. */
  53. pinctrl-0 = <&mdio_pins &microsom_phy_clk_pins>;
  54. pinctrl-names = "default";
  55. phy_dedicated: ethernet-phy@0 {
  56. /*
  57. * Annoyingly, the marvell phy driver configures the LED
  58. * register, rather than preserving reset-loaded setting.
  59. * We undo that rubbish here.
  60. */
  61. marvell,reg-init = <3 16 0 0x101e>;
  62. reg = <0>;
  63. };
  64. };
  65. &i2c0 {
  66. clock-frequency = <400000>;
  67. pinctrl-0 = <&i2c0_pins>;
  68. pinctrl-names = "default";
  69. status = "okay";
  70. eeprom@53 {
  71. compatible = "atmel,24c02";
  72. reg = <0x53>;
  73. pagesize = <16>;
  74. };
  75. };
  76. &pinctrl {
  77. microsom_phy_clk_pins: microsom-phy-clk-pins {
  78. marvell,pins = "mpp45";
  79. marvell,function = "ref";
  80. };
  81. /* Optional eMMC */
  82. microsom_sdhci_pins: microsom-sdhci-pins {
  83. marvell,pins = "mpp21", "mpp28", "mpp37",
  84. "mpp38", "mpp39", "mpp40";
  85. marvell,function = "sd0";
  86. };
  87. };
  88. &spi1 {
  89. /* The microsom has an optional W25Q32 on board, connected to CS0 */
  90. pinctrl-0 = <&spi1_pins>;
  91. w25q32: flash@0 {
  92. #address-cells = <1>;
  93. #size-cells = <1>;
  94. compatible = "w25q32", "jedec,spi-nor";
  95. reg = <0>; /* Chip select 0 */
  96. spi-max-frequency = <3000000>;
  97. };
  98. };
  99. &uart0 {
  100. pinctrl-0 = <&uart0_pins>;
  101. pinctrl-names = "default";
  102. status = "okay";
  103. };