1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only 2f126890aSEmmanuel Vadot/* 3f126890aSEmmanuel Vadot * Device Tree Source for am3517 SoC 4f126890aSEmmanuel Vadot * 5f126890aSEmmanuel Vadot * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/ 6f126890aSEmmanuel Vadot */ 7f126890aSEmmanuel Vadot 8f126890aSEmmanuel Vadot#include "omap3.dtsi" 9f126890aSEmmanuel Vadot 10f126890aSEmmanuel Vadot/* AM3517 doesn't appear to have the crypto engines defined in omap3.dtsi */ 11f126890aSEmmanuel Vadot/delete-node/ &aes1_target; 12f126890aSEmmanuel Vadot/delete-node/ &aes2_target; 13f126890aSEmmanuel Vadot 14f126890aSEmmanuel Vadot/ { 15f126890aSEmmanuel Vadot aliases { 16f126890aSEmmanuel Vadot serial3 = &uart4; 17f126890aSEmmanuel Vadot can = &hecc; 1884943d6fSEmmanuel Vadot ethernet = &davinci_emac; 19f126890aSEmmanuel Vadot }; 20f126890aSEmmanuel Vadot 21f126890aSEmmanuel Vadot cpus { 22f126890aSEmmanuel Vadot cpu: cpu@0 { 23f126890aSEmmanuel Vadot /* Based on OMAP3630 variants OPP50 and OPP100 */ 24f126890aSEmmanuel Vadot operating-points-v2 = <&cpu0_opp_table>; 25f126890aSEmmanuel Vadot 26f126890aSEmmanuel Vadot clock-latency = <300000>; /* From legacy driver */ 27f126890aSEmmanuel Vadot }; 28f126890aSEmmanuel Vadot }; 29f126890aSEmmanuel Vadot 30f126890aSEmmanuel Vadot cpu0_opp_table: opp-table { 31f126890aSEmmanuel Vadot compatible = "operating-points-v2-ti-cpu"; 32f126890aSEmmanuel Vadot syscon = <&scm_conf>; 33f126890aSEmmanuel Vadot /* 34f126890aSEmmanuel Vadot * AM3517 TRM only lists 600MHz @ 1.2V, but omap36xx 35f126890aSEmmanuel Vadot * appear to operate at 300MHz as well. Since AM3517 only 36f126890aSEmmanuel Vadot * lists one operating voltage, it will remain fixed at 1.2V 37f126890aSEmmanuel Vadot */ 38aa1a8ff2SEmmanuel Vadot opp-50-300000000 { 39aa1a8ff2SEmmanuel Vadot /* OPP50 */ 40f126890aSEmmanuel Vadot opp-hz = /bits/ 64 <300000000>; 41f126890aSEmmanuel Vadot opp-microvolt = <1200000>; 42f126890aSEmmanuel Vadot opp-supported-hw = <0xffffffff 0xffffffff>; 43f126890aSEmmanuel Vadot opp-suspend; 44f126890aSEmmanuel Vadot }; 45f126890aSEmmanuel Vadot 46aa1a8ff2SEmmanuel Vadot opp-100-600000000 { 47aa1a8ff2SEmmanuel Vadot /* OPP100 */ 48f126890aSEmmanuel Vadot opp-hz = /bits/ 64 <600000000>; 49f126890aSEmmanuel Vadot opp-microvolt = <1200000>; 50f126890aSEmmanuel Vadot opp-supported-hw = <0xffffffff 0xffffffff>; 51f126890aSEmmanuel Vadot }; 52f126890aSEmmanuel Vadot }; 53f126890aSEmmanuel Vadot 54f126890aSEmmanuel Vadot ocp@68000000 { 55f126890aSEmmanuel Vadot target-module@5c040000 { 56f126890aSEmmanuel Vadot compatible = "ti,sysc-omap2", "ti,sysc"; 57f126890aSEmmanuel Vadot reg = <0x5c040400 0x4>, 58f126890aSEmmanuel Vadot <0x5c040404 0x4>, 59f126890aSEmmanuel Vadot <0x5c040408 0x4>; 60f126890aSEmmanuel Vadot reg-names = "rev", "sysc", "syss"; 61f126890aSEmmanuel Vadot ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP | 62f126890aSEmmanuel Vadot SYSC_OMAP2_SOFTRESET | 63f126890aSEmmanuel Vadot SYSC_OMAP2_AUTOIDLE)>; 64f126890aSEmmanuel Vadot ti,sysc-midle = <SYSC_IDLE_FORCE>, 65f126890aSEmmanuel Vadot <SYSC_IDLE_NO>, 66f126890aSEmmanuel Vadot <SYSC_IDLE_SMART>; 67f126890aSEmmanuel Vadot ti,sysc-sidle = <SYSC_IDLE_FORCE>, 68f126890aSEmmanuel Vadot <SYSC_IDLE_NO>, 69f126890aSEmmanuel Vadot <SYSC_IDLE_SMART>; 70f126890aSEmmanuel Vadot ti,syss-mask = <1>; 71f126890aSEmmanuel Vadot clocks = <&hsotgusb_ick_am35xx>; 72f126890aSEmmanuel Vadot clock-names = "fck"; 73f126890aSEmmanuel Vadot #address-cells = <1>; 74f126890aSEmmanuel Vadot #size-cells = <1>; 75f126890aSEmmanuel Vadot ranges = <0x0 0x5c040000 0x1000>; 76f126890aSEmmanuel Vadot 77f126890aSEmmanuel Vadot am35x_otg_hs: am35x_otg_hs@0 { 78f126890aSEmmanuel Vadot compatible = "ti,omap3-musb"; 79f126890aSEmmanuel Vadot status = "disabled"; 80f126890aSEmmanuel Vadot reg = <0 0x1000>; 81f126890aSEmmanuel Vadot interrupts = <71>; 82f126890aSEmmanuel Vadot interrupt-names = "mc"; 83f126890aSEmmanuel Vadot }; 84f126890aSEmmanuel Vadot }; 85f126890aSEmmanuel Vadot 86f126890aSEmmanuel Vadot davinci_emac: ethernet@5c000000 { 87f126890aSEmmanuel Vadot compatible = "ti,am3517-emac"; 88f126890aSEmmanuel Vadot ti,hwmods = "davinci_emac"; 89f126890aSEmmanuel Vadot status = "disabled"; 90f126890aSEmmanuel Vadot reg = <0x5c000000 0x30000>; 91f126890aSEmmanuel Vadot interrupts = <67 68 69 70>; 92f126890aSEmmanuel Vadot syscon = <&scm_conf>; 93f126890aSEmmanuel Vadot ti,davinci-ctrl-reg-offset = <0x10000>; 94f126890aSEmmanuel Vadot ti,davinci-ctrl-mod-reg-offset = <0>; 95f126890aSEmmanuel Vadot ti,davinci-ctrl-ram-offset = <0x20000>; 96f126890aSEmmanuel Vadot ti,davinci-ctrl-ram-size = <0x2000>; 97f126890aSEmmanuel Vadot ti,davinci-rmii-en = /bits/ 8 <1>; 98f126890aSEmmanuel Vadot local-mac-address = [ 00 00 00 00 00 00 ]; 99f126890aSEmmanuel Vadot clocks = <&emac_ick>; 100f126890aSEmmanuel Vadot clock-names = "ick"; 101f126890aSEmmanuel Vadot }; 102f126890aSEmmanuel Vadot 103f126890aSEmmanuel Vadot davinci_mdio: mdio@5c030000 { 104f126890aSEmmanuel Vadot compatible = "ti,davinci_mdio"; 105f126890aSEmmanuel Vadot ti,hwmods = "davinci_mdio"; 106f126890aSEmmanuel Vadot status = "disabled"; 107f126890aSEmmanuel Vadot reg = <0x5c030000 0x1000>; 108f126890aSEmmanuel Vadot bus_freq = <1000000>; 109f126890aSEmmanuel Vadot #address-cells = <1>; 110f126890aSEmmanuel Vadot #size-cells = <0>; 111f126890aSEmmanuel Vadot clocks = <&emac_fck>; 112f126890aSEmmanuel Vadot clock-names = "fck"; 113f126890aSEmmanuel Vadot }; 114f126890aSEmmanuel Vadot 115f126890aSEmmanuel Vadot uart4: serial@4809e000 { 116f126890aSEmmanuel Vadot compatible = "ti,omap3-uart"; 117f126890aSEmmanuel Vadot ti,hwmods = "uart4"; 118f126890aSEmmanuel Vadot status = "disabled"; 119f126890aSEmmanuel Vadot reg = <0x4809e000 0x400>; 120f126890aSEmmanuel Vadot interrupts = <84>; 121f126890aSEmmanuel Vadot dmas = <&sdma 55 &sdma 54>; 122f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 123f126890aSEmmanuel Vadot clock-frequency = <48000000>; 124f126890aSEmmanuel Vadot }; 125f126890aSEmmanuel Vadot 126f126890aSEmmanuel Vadot omap3_pmx_core2: pinmux@480025d8 { 127f126890aSEmmanuel Vadot compatible = "ti,omap3-padconf", "pinctrl-single"; 128f126890aSEmmanuel Vadot reg = <0x480025d8 0x24>; 129f126890aSEmmanuel Vadot #address-cells = <1>; 130f126890aSEmmanuel Vadot #size-cells = <0>; 131f126890aSEmmanuel Vadot #pinctrl-cells = <1>; 132f126890aSEmmanuel Vadot #interrupt-cells = <1>; 133f126890aSEmmanuel Vadot interrupt-controller; 134f126890aSEmmanuel Vadot pinctrl-single,register-width = <16>; 135f126890aSEmmanuel Vadot pinctrl-single,function-mask = <0xff1f>; 136f126890aSEmmanuel Vadot }; 137f126890aSEmmanuel Vadot 138f126890aSEmmanuel Vadot hecc: can@5c050000 { 139f126890aSEmmanuel Vadot compatible = "ti,am3517-hecc"; 140f126890aSEmmanuel Vadot status = "disabled"; 141f126890aSEmmanuel Vadot reg = <0x5c050000 0x80>, 142f126890aSEmmanuel Vadot <0x5c053000 0x180>, 143f126890aSEmmanuel Vadot <0x5c052000 0x200>; 144f126890aSEmmanuel Vadot reg-names = "hecc", "hecc-ram", "mbx"; 145f126890aSEmmanuel Vadot interrupts = <24>; 146f126890aSEmmanuel Vadot clocks = <&hecc_ck>; 147f126890aSEmmanuel Vadot }; 148f126890aSEmmanuel Vadot 149f126890aSEmmanuel Vadot /* 150f126890aSEmmanuel Vadot * On am3517 the OCP registers do not seem to be accessible 151f126890aSEmmanuel Vadot * similar to the omap34xx. Maybe SGX is permanently set to 152f126890aSEmmanuel Vadot * "OCP bypass mode", or maybe there is OCP_SYSCONFIG that is 153f126890aSEmmanuel Vadot * write-only at 0x50000e10. We detect SGX based on the SGX 154f126890aSEmmanuel Vadot * revision register instead of the unreadable OCP revision 155f126890aSEmmanuel Vadot * register. 156f126890aSEmmanuel Vadot */ 157f126890aSEmmanuel Vadot sgx_module: target-module@50000000 { 158f126890aSEmmanuel Vadot compatible = "ti,sysc-omap2", "ti,sysc"; 159f126890aSEmmanuel Vadot reg = <0x50000014 0x4>; 160f126890aSEmmanuel Vadot reg-names = "rev"; 161f126890aSEmmanuel Vadot clocks = <&sgx_fck>, <&sgx_ick>; 162f126890aSEmmanuel Vadot clock-names = "fck", "ick"; 163f126890aSEmmanuel Vadot #address-cells = <1>; 164f126890aSEmmanuel Vadot #size-cells = <1>; 165*01950c46SEmmanuel Vadot ranges = <0 0x50000000 0x10000>; 166f126890aSEmmanuel Vadot 167*01950c46SEmmanuel Vadot gpu@0 { 168*01950c46SEmmanuel Vadot compatible = "ti,omap3430-gpu", "img,powervr-sgx530"; 169*01950c46SEmmanuel Vadot reg = <0x0 0x10000>; /* 64kB */ 170*01950c46SEmmanuel Vadot interrupts = <21>; 171*01950c46SEmmanuel Vadot }; 172f126890aSEmmanuel Vadot }; 173f126890aSEmmanuel Vadot }; 174f126890aSEmmanuel Vadot}; 175f126890aSEmmanuel Vadot 176f126890aSEmmanuel Vadot/* Not currently working, probably needs at least different clocks */ 177f126890aSEmmanuel Vadot&rng_target { 178f126890aSEmmanuel Vadot status = "disabled"; 179f126890aSEmmanuel Vadot /delete-property/ clocks; 180f126890aSEmmanuel Vadot}; 181f126890aSEmmanuel Vadot 182f126890aSEmmanuel Vadot/* Table Table 5-79 of the TRM shows 480ab000 is reserved */ 183f126890aSEmmanuel Vadot&usb_otg_target { 184f126890aSEmmanuel Vadot status = "disabled"; 185f126890aSEmmanuel Vadot}; 186f126890aSEmmanuel Vadot 187f126890aSEmmanuel Vadot&iva { 188f126890aSEmmanuel Vadot status = "disabled"; 189f126890aSEmmanuel Vadot}; 190f126890aSEmmanuel Vadot 191f126890aSEmmanuel Vadot&mailbox { 192f126890aSEmmanuel Vadot status = "disabled"; 193f126890aSEmmanuel Vadot}; 194f126890aSEmmanuel Vadot 195f126890aSEmmanuel Vadot&mmu_isp { 196f126890aSEmmanuel Vadot status = "disabled"; 197f126890aSEmmanuel Vadot}; 198f126890aSEmmanuel Vadot 199f126890aSEmmanuel Vadot#include "am35xx-clocks.dtsi" 200f126890aSEmmanuel Vadot#include "omap36xx-am35xx-omap3430es2plus-clocks.dtsi" 201f126890aSEmmanuel Vadot 202f126890aSEmmanuel Vadot/* Preferred always-on timer for clocksource */ 203f126890aSEmmanuel Vadot&timer1_target { 204f126890aSEmmanuel Vadot ti,no-reset-on-init; 205f126890aSEmmanuel Vadot ti,no-idle; 206f126890aSEmmanuel Vadot timer@0 { 207f126890aSEmmanuel Vadot assigned-clocks = <&gpt1_fck>; 208f126890aSEmmanuel Vadot assigned-clock-parents = <&sys_ck>; 209f126890aSEmmanuel Vadot }; 210f126890aSEmmanuel Vadot}; 211f126890aSEmmanuel Vadot 212f126890aSEmmanuel Vadot/* Preferred timer for clockevent */ 213f126890aSEmmanuel Vadot&timer2_target { 214f126890aSEmmanuel Vadot ti,no-reset-on-init; 215f126890aSEmmanuel Vadot ti,no-idle; 216f126890aSEmmanuel Vadot timer@0 { 217f126890aSEmmanuel Vadot assigned-clocks = <&gpt2_fck>; 218f126890aSEmmanuel Vadot assigned-clock-parents = <&sys_ck>; 219f126890aSEmmanuel Vadot }; 220f126890aSEmmanuel Vadot}; 221