I am trying to communicate with uart4 on a Beaglebone Black, but cannot open /dev/tty01; open(2) just hangs. I would greatly appreciate tips on how to track down the issue. I case you are not familiar with it, the Beaglebone Black is an embedded evbarm-earmv7hf platform with lots of devices described by a device tree. The device tree is loaded into memory prior to transferring control to the kernel, which then uses the “compatible” property for devices in the device tree to match device drivers. In this case, the main (and default) device tree file is am335x-boneblack.dts, which includes others (all in src/sys/external/gpl2/dts/dist/arch/arm/boot/dts or src/sys/external/gpl2/dts/dist/include/dt-bindings). The primary definition for uart4 is in am33xx-l4.dtsi (attached): uart4: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart”; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <45>; status = "disabled”; }; By default, i.e., with only the above definition, the console (com0) is the only serial port detected by the kernel; all others are disabled as above. To enable uart4 I have modified the device tree with the following (the relevant portion of the device tree overlay at https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BBORG_COMMS-00A2.dts; the full file is attached): &am33xx_pinmux { bborg_comms_rs485_pins: pinmux_comms_rs485_pins { pinctrl-single,pins = < 0x074 (PIN_OUTPUT | MUX_MODE6) /* P9_13: gpmc_wpn.uart4_txd_mux2 */ 0x070 (PIN_INPUT | MUX_MODE6) /* P9_11: gpmc_wait0.uart4_rxd_mux2 */ >; }; }; &uart4 { status = "okay”; pinctrl-names = "default”; pinctrl-0 = <&bborg_comms_rs485_pins>; //rs485-rts-delay = <0 0>; //rts-gpio = <&gpio3 19 1>; /* GPIO_ACTIVE_HIGH>; */ //rs485-rts-active-high; //linux,rs485-enabled-at-boot-time; }; To be precise, the device tree file was created as follows: (i) run the attached file am335x-boneblack-comm_cape.dts through the C preprocessor (the result is the attached file am335x-boneblack-comm_cape.txt), and (ii) run the result through dtc to create a binary device tree blob, which is loaded during the boot process. The kernel seems to probe the device as com1: [ 1.000000] com1 at tisysc50: ns16550a, 16-byte FIFO [ 1.000000] com1: interrupting on INTC irq 45 and ofctl -p detects it as: 00009d1c: /ocp/interconnect@48000000/segment/target-module@a8050/serial@0 clock-frequency 02dc6c00 ........ ........ ........ 48MHz compatible 74692c61 6d333335 322d7561 727400.. "ti,am3352-uart" 000f: 74692c6f 6d617033 2d756172 7400.... "ti,omap3-uart" interrupts 0000002d ........ ........ ........ ...- name 73657269 616c00.. ........ ........ "serial" pinctrl-0 00000040 ........ ........ ........ ...@ pinctrl-names 64656661 756c7400 ........ ........ default. reg 00000000 00001000 ........ ........ ........ status 6f6b6179 00...... ........ ........ okay. So far, based on this information everything seems to be working as much as I can tell. However, I would appreciate confirmation from anyone with more experience with embedded devices, as in fact all is not OK (see below). The corresponding device file is: #ls -l /dev/tty01 crw------- 1 uucp wheel 12, 1 Apr 11 12:20 /dev/tty01 However, when run by root, the following code just hangs, i.e., the open() never returns. #include <fcntl.h> int main () { int fd; char const* filename = "/dev/tty01"; fd = open(filename,O_RDWR); } It seems that to debug this I need details from the kernel, either during the driver setup or while opening the device (or something else). I am not sure what details would be most useful or how best to get them. I would greatly appreciate guidance on where to start figuring out what is wrong. Thank you very much for your help. Cheers, Brook
Attachment:
am33xx-l4.dtsi
Description: Binary data
Attachment:
BBORG_COMMS-00A2.dts
Description: Binary data
Attachment:
am335x-boneblack-comm_cape.dts
Description: Binary data
# 1 "am335x-boneblack-comm_cape.dts" # 1 "<built-in>" 1 # 1 "<built-in>" 3 # 383 "<built-in>" 3 # 1 "<command line>" 1 # 1 "<built-in>" 2 # 1 "am335x-boneblack-comm_cape.dts" 2 // SPDX-License-Identifier: GPL-2.0-only /dts-v1/; # 1 "./am335x-boneblack.dts" 1 // SPDX-License-Identifier: GPL-2.0-only /dts-v1/; # 1 "./am33xx.dtsi" 1 # 1 "./dt-bindings/bus/ti-sysc.h" 1 # 12 "./am33xx.dtsi" 2 # 1 "./dt-bindings/gpio/gpio.h" 1 # 13 "./am33xx.dtsi" 2 # 1 "./dt-bindings/pinctrl/am33xx.h" 1 # 1 "./dt-bindings/pinctrl/omap.h" 1 # 71 "./dt-bindings/pinctrl/omap.h" # 12 "./dt-bindings/pinctrl/am33xx.h" 2 # 171 "./dt-bindings/pinctrl/am33xx.h" # 14 "./am33xx.dtsi" 2 # 1 "./dt-bindings/clock/am3.h" 1 # 69 "./dt-bindings/clock/am3.h" # 85 "./dt-bindings/clock/am3.h" # 140 "./dt-bindings/clock/am3.h" # 163 "./dt-bindings/clock/am3.h" # 198 "./dt-bindings/clock/am3.h" # 15 "./am33xx.dtsi" 2 / { compatible = "ti,am33xx"; interrupt-parent = <&intc>; #address-cells = <1>; #size-cells = <1>; chosen { }; aliases { i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; serial4 = &uart4; serial5 = &uart5; d-can0 = &dcan0; d-can1 = &dcan1; usb0 = &usb0; usb1 = &usb1; phy0 = &usb0_phy; phy1 = &usb1_phy; ethernet0 = &cpsw_port1; ethernet1 = &cpsw_port2; spi0 = &spi0; spi1 = &spi1; mmc0 = &mmc1; mmc1 = &mmc2; mmc2 = &mmc3; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { compatible = "arm,cortex-a8"; enable-method = "ti,am3352"; device_type = "cpu"; reg = <0>; operating-points-v2 = <&cpu0_opp_table>; clocks = <&dpll_mpu_ck>; clock-names = "cpu"; clock-latency = <300000>; cpu-idle-states = <&mpu_gate>; }; idle-states { mpu_gate: mpu_gate { compatible = "arm,idle-state"; entry-latency-us = <40>; exit-latency-us = <90>; min-residency-us = <300>; ti,idle-wkup-m3; }; }; }; cpu0_opp_table: opp-table { compatible = "operating-points-v2-ti-cpu"; syscon = <&scm_conf>; opp50-300000000 { opp-hz = /bits/ 64 <300000000>; opp-microvolt = <950000 931000 969000>; opp-supported-hw = <0x06 0x0010>; opp-suspend; }; opp100-275000000 { opp-hz = /bits/ 64 <275000000>; opp-microvolt = <1100000 1078000 1122000>; opp-supported-hw = <0x01 0x00FF>; opp-suspend; }; opp100-300000000 { opp-hz = /bits/ 64 <300000000>; opp-microvolt = <1100000 1078000 1122000>; opp-supported-hw = <0x06 0x0020>; opp-suspend; }; opp100-500000000 { opp-hz = /bits/ 64 <500000000>; opp-microvolt = <1100000 1078000 1122000>; opp-supported-hw = <0x01 0xFFFF>; }; opp100-600000000 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <1100000 1078000 1122000>; opp-supported-hw = <0x06 0x0040>; }; opp120-600000000 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <1200000 1176000 1224000>; opp-supported-hw = <0x01 0xFFFF>; }; opp120-720000000 { opp-hz = /bits/ 64 <720000000>; opp-microvolt = <1200000 1176000 1224000>; opp-supported-hw = <0x06 0x0080>; }; oppturbo-720000000 { opp-hz = /bits/ 64 <720000000>; opp-microvolt = <1260000 1234800 1285200>; opp-supported-hw = <0x01 0xFFFF>; }; oppturbo-800000000 { opp-hz = /bits/ 64 <800000000>; opp-microvolt = <1260000 1234800 1285200>; opp-supported-hw = <0x06 0x0100>; }; oppnitro-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <1325000 1298500 1351500>; opp-supported-hw = <0x04 0x0200>; }; }; target-module@4b000000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; clocks = <&l3_clkctrl ((0xdc) - 0x24) 0>; clock-names = "fck"; ti,no-idle; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x4b000000 0x1000000>; target-module@140000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; clocks = <&l3_aon_clkctrl ((0x14) - 0x14) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x140000 0xec0000>; pmu@0 { compatible = "arm,cortex-a8-pmu"; interrupts = <3>; }; }; }; soc { compatible = "ti,omap-infra"; }; ocp: ocp { compatible = "simple-pm-bus"; power-domains = <&prm_per>; clocks = <&l3_clkctrl ((0xe0) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges; l4_wkup: interconnect@44c00000 { }; l4_per: interconnect@48000000 { }; l4_fw: interconnect@47c00000 { }; l4_fast: interconnect@4a000000 { }; l4_mpuss: interconnect@4b140000 { }; intc: interrupt-controller@48200000 { compatible = "ti,am33xx-intc"; interrupt-controller; #interrupt-cells = <1>; reg = <0x48200000 0x1000>; }; target-module@49000000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x49000000 0x4>; reg-names = "rev"; clocks = <&l3_clkctrl ((0xbc) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x49000000 0x10000>; edma: dma@0 { compatible = "ti,edma3-tpcc"; reg = <0 0x10000>; reg-names = "edma3_cc"; interrupts = <12 13 14>; interrupt-names = "edma3_ccint", "edma3_mperr", "edma3_ccerrint"; dma-requests = <64>; #dma-cells = <2>; ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>, <&edma_tptc2 0>; ti,edma-memcpy-channels = <20 21>; }; }; target-module@49800000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x49800000 0x4>, <0x49800010 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <(1 << 0)>; ti,sysc-midle = <0>; ti,sysc-sidle = <0>, <2>; clocks = <&l3_clkctrl ((0x24) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x49800000 0x100000>; edma_tptc0: dma@0 { compatible = "ti,edma3-tptc"; reg = <0 0x100000>; interrupts = <112>; interrupt-names = "edma3_tcerrint"; }; }; target-module@49900000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x49900000 0x4>, <0x49900010 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <(1 << 0)>; ti,sysc-midle = <0>; ti,sysc-sidle = <0>, <2>; clocks = <&l3_clkctrl ((0xfc) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x49900000 0x100000>; edma_tptc1: dma@0 { compatible = "ti,edma3-tptc"; reg = <0 0x100000>; interrupts = <113>; interrupt-names = "edma3_tcerrint"; }; }; target-module@49a00000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x49a00000 0x4>, <0x49a00010 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <(1 << 0)>; ti,sysc-midle = <0>; ti,sysc-sidle = <0>, <2>; clocks = <&l3_clkctrl ((0x100) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x49a00000 0x100000>; edma_tptc2: dma@0 { compatible = "ti,edma3-tptc"; reg = <0 0x100000>; interrupts = <114>; interrupt-names = "edma3_tcerrint"; }; }; target-module@47810000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x478102fc 0x4>, <0x47810110 0x4>, <0x47810114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l3s_clkctrl ((0xf8) - 0x1c) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x47810000 0x1000>; mmc3: mmc@0 { compatible = "ti,am335-sdhci"; ti,needs-special-reset; interrupts = <29>; reg = <0x0 0x1000>; status = "disabled"; }; }; usb: target-module@47400000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x47400000 0x4>, <0x47400010 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <((1 << 1) | (1 << 0))>; ti,sysc-midle = <0>, <1>, <2>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l3s_clkctrl ((0x1c) - 0x1c) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x47400000 0x8000>; usb0_phy: usb-phy@1300 { compatible = "ti,am335x-usb-phy"; reg = <0x1300 0x100>; reg-names = "phy"; ti,ctrl_mod = <&usb_ctrl_mod>; #phy-cells = <0>; }; usb0: usb@1400 { compatible = "ti,musb-am33xx"; reg = <0x1400 0x400>, <0x1000 0x200>; reg-names = "mc", "control"; interrupts = <18>; interrupt-names = "mc"; dr_mode = "otg"; mentor,multipoint = <1>; mentor,num-eps = <16>; mentor,ram-bits = <12>; mentor,power = <500>; phys = <&usb0_phy>; dmas = <&cppi41dma 0 0 &cppi41dma 1 0 &cppi41dma 2 0 &cppi41dma 3 0 &cppi41dma 4 0 &cppi41dma 5 0 &cppi41dma 6 0 &cppi41dma 7 0 &cppi41dma 8 0 &cppi41dma 9 0 &cppi41dma 10 0 &cppi41dma 11 0 &cppi41dma 12 0 &cppi41dma 13 0 &cppi41dma 14 0 &cppi41dma 0 1 &cppi41dma 1 1 &cppi41dma 2 1 &cppi41dma 3 1 &cppi41dma 4 1 &cppi41dma 5 1 &cppi41dma 6 1 &cppi41dma 7 1 &cppi41dma 8 1 &cppi41dma 9 1 &cppi41dma 10 1 &cppi41dma 11 1 &cppi41dma 12 1 &cppi41dma 13 1 &cppi41dma 14 1>; dma-names = "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", "rx14", "rx15", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", "tx14", "tx15"; }; usb1_phy: usb-phy@1b00 { compatible = "ti,am335x-usb-phy"; reg = <0x1b00 0x100>; reg-names = "phy"; ti,ctrl_mod = <&usb_ctrl_mod>; #phy-cells = <0>; }; usb1: usb@1800 { compatible = "ti,musb-am33xx"; reg = <0x1c00 0x400>, <0x1800 0x200>; reg-names = "mc", "control"; interrupts = <19>; interrupt-names = "mc"; dr_mode = "otg"; mentor,multipoint = <1>; mentor,num-eps = <16>; mentor,ram-bits = <12>; mentor,power = <500>; phys = <&usb1_phy>; dmas = <&cppi41dma 15 0 &cppi41dma 16 0 &cppi41dma 17 0 &cppi41dma 18 0 &cppi41dma 19 0 &cppi41dma 20 0 &cppi41dma 21 0 &cppi41dma 22 0 &cppi41dma 23 0 &cppi41dma 24 0 &cppi41dma 25 0 &cppi41dma 26 0 &cppi41dma 27 0 &cppi41dma 28 0 &cppi41dma 29 0 &cppi41dma 15 1 &cppi41dma 16 1 &cppi41dma 17 1 &cppi41dma 18 1 &cppi41dma 19 1 &cppi41dma 20 1 &cppi41dma 21 1 &cppi41dma 22 1 &cppi41dma 23 1 &cppi41dma 24 1 &cppi41dma 25 1 &cppi41dma 26 1 &cppi41dma 27 1 &cppi41dma 28 1 &cppi41dma 29 1>; dma-names = "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", "rx14", "rx15", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", "tx14", "tx15"; }; cppi41dma: dma-controller@2000 { compatible = "ti,am3359-cppi41"; reg = <0x0000 0x1000>, <0x2000 0x1000>, <0x3000 0x1000>, <0x4000 0x4000>; reg-names = "glue", "controller", "scheduler", "queuemgr"; interrupts = <17>; interrupt-names = "glue"; #dma-cells = <2>; #dma-channels = <30>; #dma-requests = <256>; }; }; target-module@40300000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; clocks = <&l3_clkctrl ((0x2c) - 0x24) 0>; clock-names = "fck"; ti,no-idle; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x40300000 0x10000>; ocmcram: sram@0 { compatible = "mmio-sram"; reg = <0 0x10000>; ranges = <0 0 0x10000>; #address-cells = <1>; #size-cells = <1>; pm_sram_code: pm-code-sram@0 { compatible = "ti,sram"; reg = <0x0 0x1000>; protect-exec; }; pm_sram_data: pm-data-sram@1000 { compatible = "ti,sram"; reg = <0x1000 0x1000>; pool; }; }; }; target-module@4c000000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; reg = <0x4c000000 0x4>; reg-names = "rev"; clocks = <&l3_clkctrl ((0x28) - 0x24) 0>; clock-names = "fck"; ti,no-idle; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x4c000000 0x1000000>; emif: emif@0 { compatible = "ti,emif-am3352"; reg = <0 0x1000000>; interrupts = <101>; sram = <&pm_sram_code &pm_sram_data>; }; }; target-module@50000000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x50000000 4>, <0x50000010 4>, <0x50000014 4>; reg-names = "rev", "sysc", "syss"; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l3s_clkctrl ((0x30) - 0x1c) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x50000000 0x50000000 0x00001000>, <0x00000000 0x00000000 0x40000000>; gpmc: gpmc@50000000 { compatible = "ti,am3352-gpmc"; reg = <0x50000000 0x2000>; interrupts = <100>; dmas = <&edma 52 0>; dma-names = "rxtx"; gpmc,num-cs = <7>; gpmc,num-waitpins = <2>; #address-cells = <2>; #size-cells = <1>; interrupt-controller; #interrupt-cells = <2>; gpio-controller; #gpio-cells = <2>; status = "disabled"; }; }; sham_target: target-module@53100000 { compatible = "ti,sysc-omap3-sham", "ti,sysc"; reg = <0x53100100 0x4>, <0x53100110 0x4>, <0x53100114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l3_clkctrl ((0xa0) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x53100000 0x1000>; sham: sham@0 { compatible = "ti,omap4-sham"; reg = <0 0x200>; interrupts = <109>; dmas = <&edma 36 0>; dma-names = "rx"; }; }; aes_target: target-module@53500000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x53500080 0x4>, <0x53500084 0x4>, <0x53500088 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l3_clkctrl ((0x94) - 0x24) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x53500000 0x1000>; aes: aes@0 { compatible = "ti,omap4-aes"; reg = <0 0xa0>; interrupts = <103>; dmas = <&edma 6 0>, <&edma 5 0>; dma-names = "tx", "rx"; }; }; target-module@56000000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x5600fe00 0x4>, <0x5600fe10 0x4>; reg-names = "rev", "sysc"; ti,sysc-midle = <0>, <1>, <2>; ti,sysc-sidle = <0>, <1>, <2>; clocks = <&gfx_l3_clkctrl ((0x4) - 0x0) 0>; clock-names = "fck"; power-domains = <&prm_gfx>; resets = <&prm_gfx 0>; reset-names = "rstctrl"; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x56000000 0x1000000>; }; }; }; # 1 "./am33xx-l4.dtsi" 1 &l4_wkup { compatible = "ti,am33xx-l4-wkup", "simple-pm-bus"; power-domains = <&prm_wkup>; clocks = <&l4_wkup_clkctrl ((0xc) - 0x0) 0>; clock-names = "fck"; reg = <0x44c00000 0x800>, <0x44c00800 0x800>, <0x44c01000 0x400>, <0x44c01400 0x400>; reg-names = "ap", "la", "ia0", "ia1"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x44c00000 0x100000>, <0x00100000 0x44d00000 0x100000>, <0x00200000 0x44e00000 0x100000>; segment@0 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0x000800>, <0x00000800 0x00000800 0x000800>, <0x00001000 0x00001000 0x000400>, <0x00001400 0x00001400 0x000400>; }; segment@100000 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00100000 0x004000>, <0x00004000 0x00104000 0x001000>, <0x00080000 0x00180000 0x002000>, <0x00082000 0x00182000 0x001000>; target-module@0 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x0 0x4>; reg-names = "rev"; clocks = <&l4_wkup_aon_clkctrl ((0xb0) - 0xb0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0x4000>, <0x00080000 0x00080000 0x2000>; wkup_m3: cpu@0 { compatible = "ti,am3352-wkup-m3"; reg = <0x00000000 0x4000>, <0x00080000 0x2000>; reg-names = "umem", "dmem"; resets = <&prm_wkup 3>; reset-names = "rstctrl"; ti,pm-firmware = "am335x-pm-firmware.elf"; }; }; }; segment@200000 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00200000 0x002000>, <0x00002000 0x00202000 0x001000>, <0x00003000 0x00203000 0x001000>, <0x00004000 0x00204000 0x001000>, <0x00005000 0x00205000 0x001000>, <0x00006000 0x00206000 0x001000>, <0x00007000 0x00207000 0x001000>, <0x00008000 0x00208000 0x001000>, <0x00009000 0x00209000 0x001000>, <0x0000a000 0x0020a000 0x001000>, <0x0000b000 0x0020b000 0x001000>, <0x0000c000 0x0020c000 0x001000>, <0x0000d000 0x0020d000 0x001000>, <0x0000f000 0x0020f000 0x001000>, <0x00010000 0x00210000 0x010000>, <0x00020000 0x00220000 0x010000>, <0x00030000 0x00230000 0x001000>, <0x00031000 0x00231000 0x001000>, <0x00032000 0x00232000 0x001000>, <0x00033000 0x00233000 0x001000>, <0x00034000 0x00234000 0x001000>, <0x00035000 0x00235000 0x001000>, <0x00036000 0x00236000 0x001000>, <0x00037000 0x00237000 0x001000>, <0x00038000 0x00238000 0x001000>, <0x00039000 0x00239000 0x001000>, <0x0003a000 0x0023a000 0x001000>, <0x0003e000 0x0023e000 0x001000>, <0x0003f000 0x0023f000 0x001000>, <0x0000e000 0x0020e000 0x001000>, <0x00040000 0x00240000 0x040000>, <0x00080000 0x00280000 0x001000>; target-module@0 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0 0x4>; reg-names = "rev"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x2000>; prcm: prcm@0 { compatible = "ti,am3-prcm", "simple-bus"; reg = <0 0x2000>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0 0x2000>; prcm_clocks: clocks { #address-cells = <1>; #size-cells = <0>; }; prcm_clockdomains: clockdomains { }; }; }; target-module@3000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3000 0x1000>; }; target-module@5000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x5000 0x1000>; }; gpio0_target: target-module@7000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x7000 0x4>, <0x7010 0x4>, <0x7114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4_wkup_clkctrl ((0x8) - 0x0) 0>, <&l4_wkup_clkctrl ((0x8) - 0x0) 18>; clock-names = "fck", "dbclk"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x7000 0x1000>; gpio0: gpio@0 { compatible = "ti,omap4-gpio"; gpio-ranges = <&am33xx_pinmux 0 82 8>, <&am33xx_pinmux 8 52 4>, <&am33xx_pinmux 12 94 4>, <&am33xx_pinmux 16 71 2>, <&am33xx_pinmux 18 135 1>, <&am33xx_pinmux 19 108 2>, <&am33xx_pinmux 21 73 1>, <&am33xx_pinmux 22 8 2>, <&am33xx_pinmux 26 10 2>, <&am33xx_pinmux 28 74 1>, <&am33xx_pinmux 29 81 1>, <&am33xx_pinmux 30 28 2>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; reg = <0x0 0x1000>; interrupts = <96>; }; }; target-module@9000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x9050 0x4>, <0x9054 0x4>, <0x9058 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4_wkup_clkctrl ((0xb4) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x9000 0x1000>; uart0: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart"; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <72>; status = "disabled"; dmas = <&edma 26 0>, <&edma 27 0>; dma-names = "tx", "rx"; }; }; target-module@b000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xb000 0x8>, <0xb010 0x8>, <0xb090 0x8>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4_wkup_clkctrl ((0xb8) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xb000 0x1000>; i2c0: i2c@0 { compatible = "ti,omap4-i2c"; #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x1000>; interrupts = <70>; status = "disabled"; }; }; target-module@d000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0xd000 0x4>, <0xd010 0x4>; reg-names = "rev", "sysc"; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4_wkup_clkctrl ((0xbc) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x0000d000 0x00001000>, <0x00001000 0x0000e000 0x00001000>; tscadc: tscadc@0 { compatible = "ti,am3359-tscadc"; reg = <0x0 0x1000>; interrupts = <16>; status = "disabled"; dmas = <&edma 53 0>, <&edma 57 0>; dma-names = "fifo0", "fifo1"; tsc { compatible = "ti,am3359-tsc"; }; am335x_adc: adc { #io-channel-cells = <1>; compatible = "ti,am3359-adc"; }; }; }; target-module@10000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x10000 0x4>; reg-names = "rev"; clocks = <&l4_wkup_clkctrl ((0x4) - 0x0) 0>; clock-names = "fck"; ti,no-idle; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00010000 0x00010000>, <0x00010000 0x00020000 0x00010000>; scm: scm@0 { compatible = "ti,am3-scm", "simple-bus"; reg = <0x0 0x2000>; #address-cells = <1>; #size-cells = <1>; #pinctrl-cells = <1>; ranges = <0 0 0x2000>; am33xx_pinmux: pinmux@800 { compatible = "pinctrl-single"; reg = <0x800 0x238>; #pinctrl-cells = <2>; pinctrl-single,register-width = <32>; pinctrl-single,function-mask = <0x7f>; }; scm_conf: scm_conf@0 { compatible = "syscon", "simple-bus"; reg = <0x0 0x800>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0 0x800>; phy_gmii_sel: phy-gmii-sel { compatible = "ti,am3352-phy-gmii-sel"; reg = <0x650 0x4>; #phy-cells = <2>; }; scm_clocks: clocks { #address-cells = <1>; #size-cells = <0>; }; }; usb_ctrl_mod: control@620 { compatible = "ti,am335x-usb-ctrl-module"; reg = <0x620 0x10>, <0x648 0x4>; reg-names = "phy_ctrl", "wakeup"; }; wkup_m3_ipc: wkup_m3_ipc@1324 { compatible = "ti,am3352-wkup-m3-ipc"; reg = <0x1324 0x24>; interrupts = <78>; ti,rproc = <&wkup_m3>; mboxes = <&mailbox &mbox_wkupm3>; }; edma_xbar: dma-router@f90 { compatible = "ti,am335x-edma-crossbar"; reg = <0xf90 0x40>; #dma-cells = <3>; dma-requests = <32>; dma-masters = <&edma>; }; scm_clockdomains: clockdomains { }; }; }; timer1_target: target-module@31000 { compatible = "ti,sysc-omap2-timer", "ti,sysc"; reg = <0x31000 0x4>, <0x31010 0x4>, <0x31014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4_wkup_clkctrl ((0xc4) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x31000 0x1000>; timer1: timer@0 { compatible = "ti,am335x-timer-1ms"; reg = <0x0 0x400>; interrupts = <67>; ti,timer-alwon; clocks = <&timer1_fck>; clock-names = "fck"; }; }; target-module@33000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x33000 0x1000>; }; target-module@35000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x35000 0x4>, <0x35010 0x4>, <0x35014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 5) | (1 << 1))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4_wkup_clkctrl ((0xd4) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x35000 0x1000>; wdt2: wdt@0 { compatible = "ti,omap3-wdt"; reg = <0x0 0x1000>; interrupts = <91>; }; }; target-module@37000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x37000 0x1000>; }; target-module@39000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x39000 0x1000>; }; target-module@3e000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; reg = <0x3e074 0x4>, <0x3e078 0x4>; reg-names = "rev", "sysc"; ti,sysc-sidle = <0>, <1>, <2>, <3>; power-domains = <&prm_rtc>; clocks = <&l4_rtc_clkctrl ((0x0) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3e000 0x1000>; rtc: rtc@0 { compatible = "ti,am3352-rtc", "ti,da830-rtc"; reg = <0x0 0x1000>; interrupts = <75 76>; }; }; target-module@40000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x40000 0x40000>; }; }; }; &l4_fw { compatible = "ti,am33xx-l4-fw", "simple-bus"; reg = <0x47c00000 0x800>, <0x47c00800 0x800>, <0x47c01000 0x400>; reg-names = "ap", "la", "ia0"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x47c00000 0x1000000>; segment@0 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0x000800>, <0x00000800 0x00000800 0x000800>, <0x00001000 0x00001000 0x000400>, <0x0000c000 0x0000c000 0x001000>, <0x0000d000 0x0000d000 0x001000>, <0x0000e000 0x0000e000 0x001000>, <0x0000f000 0x0000f000 0x001000>, <0x00010000 0x00010000 0x001000>, <0x00011000 0x00011000 0x001000>, <0x0001a000 0x0001a000 0x001000>, <0x0001b000 0x0001b000 0x001000>, <0x00024000 0x00024000 0x001000>, <0x00025000 0x00025000 0x001000>, <0x00026000 0x00026000 0x001000>, <0x00027000 0x00027000 0x001000>, <0x00030000 0x00030000 0x001000>, <0x00031000 0x00031000 0x001000>, <0x00038000 0x00038000 0x001000>, <0x00039000 0x00039000 0x001000>, <0x0003a000 0x0003a000 0x001000>, <0x0003b000 0x0003b000 0x001000>, <0x0003e000 0x0003e000 0x001000>, <0x0003f000 0x0003f000 0x001000>, <0x0003c000 0x0003c000 0x001000>, <0x00040000 0x00040000 0x001000>, <0x00046000 0x00046000 0x001000>, <0x00047000 0x00047000 0x001000>, <0x00044000 0x00044000 0x001000>, <0x00045000 0x00045000 0x001000>, <0x00028000 0x00028000 0x001000>, <0x00029000 0x00029000 0x001000>, <0x00032000 0x00032000 0x001000>, <0x00033000 0x00033000 0x001000>, <0x0003d000 0x0003d000 0x001000>, <0x00041000 0x00041000 0x001000>, <0x00042000 0x00042000 0x001000>, <0x00043000 0x00043000 0x001000>, <0x00014000 0x00014000 0x001000>, <0x00015000 0x00015000 0x001000>; target-module@c000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xc000 0x1000>; }; target-module@e000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xe000 0x1000>; }; target-module@10000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x10000 0x1000>; }; target-module@14000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x14000 0x1000>; }; target-module@1a000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x1a000 0x1000>; }; target-module@24000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x24000 0x1000>; }; target-module@26000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x26000 0x1000>; }; target-module@28000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x28000 0x1000>; }; target-module@30000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x30000 0x1000>; }; target-module@32000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x32000 0x1000>; }; target-module@38000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x38000 0x1000>; }; target-module@3a000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3a000 0x1000>; }; target-module@3c000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3c000 0x1000>; }; target-module@3e000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3e000 0x1000>; }; target-module@40000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x40000 0x1000>; }; target-module@42000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x42000 0x1000>; }; target-module@44000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x44000 0x1000>; }; target-module@46000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x46000 0x1000>; }; }; }; &l4_fast { compatible = "ti,am33xx-l4-fast", "simple-pm-bus"; power-domains = <&prm_per>; clocks = <&l4hs_clkctrl ((0x120) - 0x120) 0>; clock-names = "fck"; reg = <0x4a000000 0x800>, <0x4a000800 0x800>, <0x4a001000 0x400>; reg-names = "ap", "la", "ia0"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x4a000000 0x1000000>; segment@0 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0x000800>, <0x00000800 0x00000800 0x000800>, <0x00001000 0x00001000 0x000400>, <0x00100000 0x00100000 0x008000>, <0x00108000 0x00108000 0x001000>, <0x00180000 0x00180000 0x020000>, <0x001a0000 0x001a0000 0x001000>, <0x00200000 0x00200000 0x080000>, <0x00280000 0x00280000 0x001000>, <0x00300000 0x00300000 0x080000>, <0x00380000 0x00380000 0x001000>; target-module@100000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; reg = <0x101200 0x4>, <0x101208 0x4>, <0x101204 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <0>; ti,sysc-midle = <0>, <1>; ti,sysc-sidle = <0>, <1>; ti,syss-mask = <1>; clocks = <&cpsw_125mhz_clkctrl ((0x14) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x100000 0x8000>; mac: ethernet@0 { compatible = "ti,am335x-cpsw","ti,cpsw"; clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>; clock-names = "fck", "cpts"; cpdma_channels = <8>; ale_entries = <1024>; bd_ram_size = <0x2000>; mac_control = <0x20>; slaves = <2>; active_slave = <0>; cpts_clock_mult = <0x80000000>; cpts_clock_shift = <29>; reg = <0x0 0x800 0x1200 0x100>; #address-cells = <1>; #size-cells = <1>; interrupts = <40 41 42 43>; ranges = <0 0 0x8000>; syscon = <&scm_conf>; status = "disabled"; davinci_mdio: mdio@1000 { compatible = "ti,cpsw-mdio","ti,davinci_mdio"; clocks = <&cpsw_125mhz_clkctrl ((0x14) - 0x0) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <0>; bus_freq = <1000000>; reg = <0x1000 0x100>; status = "disabled"; }; cpsw_emac0: slave@200 { mac-address = [ 00 00 00 00 00 00 ]; phys = <&phy_gmii_sel 1 1>; }; cpsw_emac1: slave@300 { mac-address = [ 00 00 00 00 00 00 ]; phys = <&phy_gmii_sel 2 1>; }; }; mac_sw: switch@0 { compatible = "ti,am335x-cpsw-switch", "ti,cpsw-switch"; reg = <0x0 0x4000>; ranges = <0 0 0x4000>; clocks = <&cpsw_125mhz_gclk>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; syscon = <&scm_conf>; status = "disabled"; interrupts = <40 41 42 43>; interrupt-names = "rx_thresh", "rx", "tx", "misc"; ethernet-ports { #address-cells = <1>; #size-cells = <0>; cpsw_port1: port@1 { reg = <1>; label = "port1"; mac-address = [ 00 00 00 00 00 00 ]; phys = <&phy_gmii_sel 1 1>; }; cpsw_port2: port@2 { reg = <2>; label = "port2"; mac-address = [ 00 00 00 00 00 00 ]; phys = <&phy_gmii_sel 2 1>; }; }; davinci_mdio_sw: mdio@1000 { compatible = "ti,cpsw-mdio","ti,davinci_mdio"; clocks = <&cpsw_125mhz_gclk>; clock-names = "fck"; #address-cells = <1>; #size-cells = <0>; bus_freq = <1000000>; reg = <0x1000 0x100>; }; cpts { clocks = <&cpsw_cpts_rft_clk>; clock-names = "cpts"; }; }; }; target-module@180000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x180000 0x20000>; }; target-module@200000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x200000 0x80000>; }; pruss_tm: target-module@300000 { compatible = "ti,sysc-pruss", "ti,sysc"; reg = <0x326000 0x4>, <0x326004 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <((1 << 4) | (1 << 5))>; ti,sysc-midle = <0>, <1>, <2>; ti,sysc-sidle = <0>, <1>, <2>; clocks = <&pruss_ocp_clkctrl ((0xe8) - 0xe8) 0>; clock-names = "fck"; resets = <&prm_per 1>; reset-names = "rstctrl"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x300000 0x80000>; status = "disabled"; pruss: pruss@0 { compatible = "ti,am3356-pruss"; reg = <0x0 0x80000>; #address-cells = <1>; #size-cells = <1>; ranges; pruss_mem: memories@0 { reg = <0x0 0x2000>, <0x2000 0x2000>, <0x10000 0x3000>; reg-names = "dram0", "dram1", "shrdram2"; }; pruss_cfg: cfg@26000 { compatible = "ti,pruss-cfg", "syscon"; reg = <0x26000 0x2000>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x26000 0x2000>; clocks { #address-cells = <1>; #size-cells = <0>; pruss_iepclk_mux: iepclk-mux@30 { reg = <0x30>; #clock-cells = <0>; clocks = <&l3_gclk>, <&pruss_ocp_gclk>; }; }; }; pruss_mii_rt: mii-rt@32000 { compatible = "ti,pruss-mii", "syscon"; reg = <0x32000 0x58>; }; pruss_intc: interrupt-controller@20000 { compatible = "ti,pruss-intc"; reg = <0x20000 0x2000>; interrupts = <20 21 22 23 24 25 26 27>; interrupt-names = "host_intr0", "host_intr1", "host_intr2", "host_intr3", "host_intr4", "host_intr5", "host_intr6", "host_intr7"; interrupt-controller; #interrupt-cells = <3>; }; pru0: pru@34000 { compatible = "ti,am3356-pru"; reg = <0x34000 0x2000>, <0x22000 0x400>, <0x22400 0x100>; reg-names = "iram", "control", "debug"; firmware-name = "am335x-pru0-fw"; }; pru1: pru@38000 { compatible = "ti,am3356-pru"; reg = <0x38000 0x2000>, <0x24000 0x400>, <0x24400 0x100>; reg-names = "iram", "control", "debug"; firmware-name = "am335x-pru1-fw"; }; pruss_mdio: mdio@32400 { compatible = "ti,davinci_mdio"; reg = <0x32400 0x90>; clocks = <&dpll_core_m4_ck>; clock-names = "fck"; bus_freq = <1000000>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; }; }; }; }; &l4_mpuss { compatible = "ti,am33xx-l4-mpuss", "simple-bus"; reg = <0x4b144400 0x100>, <0x4b144800 0x400>; reg-names = "la", "ap"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x4b140000 0x008000>; segment@0 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00004800 0x00004800 0x000400>, <0x00001000 0x00001000 0x001000>, <0x00002000 0x00002000 0x001000>, <0x00004000 0x00004000 0x000400>, <0x00005000 0x00005000 0x000400>, <0x00000000 0x00000000 0x001000>, <0x00003000 0x00003000 0x001000>, <0x00000800 0x00000800 0x000800>; target-module@0 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0x00001000>, <0x00001000 0x00001000 0x00001000>, <0x00002000 0x00002000 0x00001000>; }; target-module@3000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3000 0x1000>; }; }; }; &l4_per { compatible = "ti,am33xx-l4-per", "simple-pm-bus"; power-domains = <&prm_per>; clocks = <&l4ls_clkctrl ((0x60) - 0x38) 0>; clock-names = "fck"; reg = <0x48000000 0x800>, <0x48000800 0x800>, <0x48001000 0x400>, <0x48001400 0x400>, <0x48001800 0x400>, <0x48001c00 0x400>; reg-names = "ap", "la", "ia0", "ia1", "ia2", "ia3"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x48000000 0x100000>, <0x00100000 0x48100000 0x100000>, <0x00200000 0x48200000 0x100000>, <0x00300000 0x48300000 0x100000>, <0x46000000 0x46000000 0x400000>, <0x46400000 0x46400000 0x400000>; segment@0 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0x000800>, <0x00000800 0x00000800 0x000800>, <0x00001000 0x00001000 0x000400>, <0x00001400 0x00001400 0x000400>, <0x00001800 0x00001800 0x000400>, <0x00001c00 0x00001c00 0x000400>, <0x00008000 0x00008000 0x001000>, <0x00009000 0x00009000 0x001000>, <0x00016000 0x00016000 0x001000>, <0x00017000 0x00017000 0x001000>, <0x00022000 0x00022000 0x001000>, <0x00023000 0x00023000 0x001000>, <0x00024000 0x00024000 0x001000>, <0x00025000 0x00025000 0x001000>, <0x0002a000 0x0002a000 0x001000>, <0x0002b000 0x0002b000 0x001000>, <0x00038000 0x00038000 0x002000>, <0x0003a000 0x0003a000 0x001000>, <0x00014000 0x00014000 0x001000>, <0x00015000 0x00015000 0x001000>, <0x0003c000 0x0003c000 0x002000>, <0x0003e000 0x0003e000 0x001000>, <0x00040000 0x00040000 0x001000>, <0x00041000 0x00041000 0x001000>, <0x00042000 0x00042000 0x001000>, <0x00043000 0x00043000 0x001000>, <0x00044000 0x00044000 0x001000>, <0x00045000 0x00045000 0x001000>, <0x00046000 0x00046000 0x001000>, <0x00047000 0x00047000 0x001000>, <0x00048000 0x00048000 0x001000>, <0x00049000 0x00049000 0x001000>, <0x0004c000 0x0004c000 0x001000>, <0x0004d000 0x0004d000 0x001000>, <0x00050000 0x00050000 0x002000>, <0x00052000 0x00052000 0x001000>, <0x00060000 0x00060000 0x001000>, <0x00061000 0x00061000 0x001000>, <0x00080000 0x00080000 0x010000>, <0x00090000 0x00090000 0x001000>, <0x000a0000 0x000a0000 0x010000>, <0x000b0000 0x000b0000 0x001000>, <0x00030000 0x00030000 0x001000>, <0x00031000 0x00031000 0x001000>, <0x0004a000 0x0004a000 0x001000>, <0x0004b000 0x0004b000 0x001000>, <0x000c8000 0x000c8000 0x001000>, <0x000c9000 0x000c9000 0x001000>, <0x000cc000 0x000cc000 0x001000>, <0x000cd000 0x000cd000 0x001000>, <0x000ca000 0x000ca000 0x001000>, <0x000cb000 0x000cb000 0x001000>, <0x46000000 0x46000000 0x400000>, <0x46400000 0x46400000 0x400000>; target-module@8000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x8000 0x1000>; }; target-module@14000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x14000 0x1000>; }; target-module@16000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x16000 0x1000>; }; target-module@22000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x22050 0x4>, <0x22054 0x4>, <0x22058 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x6c) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x22000 0x1000>; uart1: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart"; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <73>; status = "disabled"; dmas = <&edma 28 0>, <&edma 29 0>; dma-names = "tx", "rx"; }; }; target-module@24000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x24050 0x4>, <0x24054 0x4>, <0x24058 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x70) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x24000 0x1000>; uart2: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart"; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <74>; status = "disabled"; dmas = <&edma 30 0>, <&edma 31 0>; dma-names = "tx", "rx"; }; }; target-module@2a000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x2a000 0x8>, <0x2a010 0x8>, <0x2a090 0x8>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x48) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x2a000 0x1000>; i2c1: i2c@0 { compatible = "ti,omap4-i2c"; #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x1000>; interrupts = <71>; status = "disabled"; }; }; target-module@30000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x30000 0x4>, <0x30110 0x4>, <0x30114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x4c) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x30000 0x1000>; spi0: spi@0 { compatible = "ti,omap4-mcspi"; #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x400>; interrupts = <65>; ti,spi-num-cs = <2>; dmas = <&edma 16 0 &edma 17 0 &edma 18 0 &edma 19 0>; dma-names = "tx0", "rx0", "tx1", "rx1"; status = "disabled"; }; }; target-module@38000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; reg = <0x38000 0x4>, <0x38004 0x4>; reg-names = "rev", "sysc"; ti,sysc-sidle = <0>, <1>, <2>; clocks = <&l3s_clkctrl ((0x34) - 0x1c) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x38000 0x2000>, <0x46000000 0x46000000 0x400000>; mcasp0: mcasp@0 { compatible = "ti,am33xx-mcasp-audio"; reg = <0x0 0x2000>, <0x46000000 0x400000>; reg-names = "mpu", "dat"; interrupts = <80>, <81>; interrupt-names = "tx", "rx"; status = "disabled"; dmas = <&edma 8 2>, <&edma 9 2>; dma-names = "tx", "rx"; }; }; target-module@3c000 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; reg = <0x3c000 0x4>, <0x3c004 0x4>; reg-names = "rev", "sysc"; ti,sysc-sidle = <0>, <1>, <2>; clocks = <&l3s_clkctrl ((0x68) - 0x1c) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x3c000 0x2000>, <0x46400000 0x46400000 0x400000>; mcasp1: mcasp@0 { compatible = "ti,am33xx-mcasp-audio"; reg = <0x0 0x2000>, <0x46400000 0x400000>; reg-names = "mpu", "dat"; interrupts = <82>, <83>; interrupt-names = "tx", "rx"; status = "disabled"; dmas = <&edma 10 2>, <&edma 11 2>; dma-names = "tx", "rx"; }; }; timer2_target: target-module@40000 { compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x40000 0x4>, <0x40010 0x4>, <0x40014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x80) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x40000 0x1000>; timer2: timer@0 { compatible = "ti,am335x-timer"; reg = <0x0 0x400>; interrupts = <68>; clocks = <&timer2_fck>; clock-names = "fck"; }; }; target-module@42000 { compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x42000 0x4>, <0x42010 0x4>, <0x42014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x84) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x42000 0x1000>; timer3: timer@0 { compatible = "ti,am335x-timer"; reg = <0x0 0x400>; interrupts = <69>; }; }; target-module@44000 { compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x44000 0x4>, <0x44010 0x4>, <0x44014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x88) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x44000 0x1000>; timer4: timer@0 { compatible = "ti,am335x-timer"; reg = <0x0 0x400>; interrupts = <92>; ti,timer-pwm; }; }; target-module@46000 { compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x46000 0x4>, <0x46010 0x4>, <0x46014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0xec) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x46000 0x1000>; timer5: timer@0 { compatible = "ti,am335x-timer"; reg = <0x0 0x400>; interrupts = <93>; ti,timer-pwm; }; }; target-module@48000 { compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x48000 0x4>, <0x48010 0x4>, <0x48014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0xf0) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x48000 0x1000>; timer6: timer@0 { compatible = "ti,am335x-timer"; reg = <0x0 0x400>; interrupts = <94>; ti,timer-pwm; }; }; target-module@4a000 { compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x4a000 0x4>, <0x4a010 0x4>, <0x4a014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x7c) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x4a000 0x1000>; timer7: timer@0 { compatible = "ti,am335x-timer"; reg = <0x0 0x400>; interrupts = <95>; ti,timer-pwm; }; }; target-module@4c000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x4c000 0x4>, <0x4c010 0x4>, <0x4c114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0xac) - 0x38) 0>, <&l4ls_clkctrl ((0xac) - 0x38) 18>; clock-names = "fck", "dbclk"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x4c000 0x1000>; gpio1: gpio@0 { compatible = "ti,omap4-gpio"; gpio-ranges = <&am33xx_pinmux 0 0 8>, <&am33xx_pinmux 8 90 4>, <&am33xx_pinmux 12 12 16>, <&am33xx_pinmux 28 30 4>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; reg = <0x0 0x1000>; interrupts = <98>; }; }; target-module@50000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x50000 0x2000>; }; target-module@60000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x602fc 0x4>, <0x60110 0x4>, <0x60114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x3c) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x60000 0x1000>; mmc1: mmc@0 { compatible = "ti,am335-sdhci"; ti,needs-special-reset; dmas = <&edma_xbar 24 0 0 &edma_xbar 25 0 0>; dma-names = "tx", "rx"; interrupts = <64>; reg = <0x0 0x1000>; status = "disabled"; }; }; target-module@80000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x80000 0x4>, <0x80010 0x4>, <0x80014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x40) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x80000 0x10000>; elm: elm@0 { compatible = "ti,am3352-elm"; reg = <0x0 0x2000>; interrupts = <4>; status = "disabled"; }; }; target-module@a0000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xa0000 0x10000>; }; target-module@c8000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0xc8000 0x4>, <0xc8010 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>, <2>; clocks = <&l4ls_clkctrl ((0x110) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xc8000 0x1000>; mailbox: mailbox@0 { compatible = "ti,omap4-mailbox"; reg = <0x0 0x200>; interrupts = <77>; #mbox-cells = <1>; ti,mbox-num-users = <4>; ti,mbox-num-fifos = <8>; mbox_wkupm3: mbox-wkup-m3 { ti,mbox-send-noirq; ti,mbox-tx = <0 0 0>; ti,mbox-rx = <0 0 3>; }; }; }; target-module@ca000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xca000 0x4>, <0xca010 0x4>, <0xca014 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x10c) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xca000 0x1000>; hwspinlock: spinlock@0 { compatible = "ti,omap4-hwspinlock"; reg = <0x0 0x1000>; #hwlock-cells = <1>; }; }; target-module@cc000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xcc000 0x1000>; }; }; segment@100000 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0008c000 0x0018c000 0x001000>, <0x0008d000 0x0018d000 0x001000>, <0x0008e000 0x0018e000 0x001000>, <0x0008f000 0x0018f000 0x001000>, <0x0009c000 0x0019c000 0x001000>, <0x0009d000 0x0019d000 0x001000>, <0x000a6000 0x001a6000 0x001000>, <0x000a7000 0x001a7000 0x001000>, <0x000a8000 0x001a8000 0x001000>, <0x000a9000 0x001a9000 0x001000>, <0x000aa000 0x001aa000 0x001000>, <0x000ab000 0x001ab000 0x001000>, <0x000ac000 0x001ac000 0x001000>, <0x000ad000 0x001ad000 0x001000>, <0x000ae000 0x001ae000 0x001000>, <0x000af000 0x001af000 0x001000>, <0x000b0000 0x001b0000 0x010000>, <0x000c0000 0x001c0000 0x001000>, <0x000cc000 0x001cc000 0x002000>, <0x000ce000 0x001ce000 0x002000>, <0x000d0000 0x001d0000 0x002000>, <0x000d2000 0x001d2000 0x002000>, <0x000d8000 0x001d8000 0x001000>, <0x000d9000 0x001d9000 0x001000>, <0x000a0000 0x001a0000 0x001000>, <0x000a1000 0x001a1000 0x001000>, <0x000a2000 0x001a2000 0x001000>, <0x000a3000 0x001a3000 0x001000>, <0x000a4000 0x001a4000 0x001000>, <0x000a5000 0x001a5000 0x001000>; target-module@8c000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x8c000 0x1000>; }; target-module@8e000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x8e000 0x1000>; }; target-module@9c000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x9c000 0x8>, <0x9c010 0x8>, <0x9c090 0x8>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x44) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x9c000 0x1000>; i2c2: i2c@0 { compatible = "ti,omap4-i2c"; #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x1000>; interrupts = <30>; status = "disabled"; }; }; target-module@a0000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xa0000 0x4>, <0xa0110 0x4>, <0xa0114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0x50) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xa0000 0x1000>; spi1: spi@0 { compatible = "ti,omap4-mcspi"; #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x400>; interrupts = <125>; ti,spi-num-cs = <2>; dmas = <&edma 42 0 &edma 43 0 &edma 44 0 &edma 45 0>; dma-names = "tx0", "rx0", "tx1", "rx1"; status = "disabled"; }; }; target-module@a2000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xa2000 0x1000>; }; target-module@a4000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xa4000 0x1000>; }; target-module@a6000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xa6050 0x4>, <0xa6054 0x4>, <0xa6058 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x74) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xa6000 0x1000>; uart3: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart"; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <44>; status = "disabled"; }; }; target-module@a8000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xa8050 0x4>, <0xa8054 0x4>, <0xa8058 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x78) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xa8000 0x1000>; uart4: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart"; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <45>; status = "disabled"; }; }; target-module@aa000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xaa050 0x4>, <0xaa054 0x4>, <0xaa058 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0x38) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xaa000 0x1000>; uart5: serial@0 { compatible = "ti,am3352-uart", "ti,omap3-uart"; clock-frequency = <48000000>; reg = <0x0 0x1000>; interrupts = <46>; status = "disabled"; }; }; target-module@ac000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xac000 0x4>, <0xac010 0x4>, <0xac114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0xb0) - 0x38) 0>, <&l4ls_clkctrl ((0xb0) - 0x38) 18>; clock-names = "fck", "dbclk"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xac000 0x1000>; gpio2: gpio@0 { compatible = "ti,omap4-gpio"; gpio-ranges = <&am33xx_pinmux 0 34 18>, <&am33xx_pinmux 18 77 4>, <&am33xx_pinmux 22 56 10>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; reg = <0x0 0x1000>; interrupts = <32>; }; }; gpio3_target: target-module@ae000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xae000 0x4>, <0xae010 0x4>, <0xae114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>, <3>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0xb4) - 0x38) 0>, <&l4ls_clkctrl ((0xb4) - 0x38) 18>; clock-names = "fck", "dbclk"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xae000 0x1000>; gpio3: gpio@0 { compatible = "ti,omap4-gpio"; gpio-ranges = <&am33xx_pinmux 0 66 5>, <&am33xx_pinmux 5 98 2>, <&am33xx_pinmux 7 75 2>, <&am33xx_pinmux 13 141 1>, <&am33xx_pinmux 14 100 8>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; reg = <0x0 0x1000>; interrupts = <62>; }; }; target-module@b0000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xb0000 0x10000>; }; target-module@cc000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0xcc020 0x4>; reg-names = "rev"; clocks = <&l4ls_clkctrl ((0xc0) - 0x38) 0>, <&dcan0_fck>; clock-names = "fck", "osc"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xcc000 0x2000>; dcan0: can@0 { compatible = "ti,am3352-d_can"; reg = <0x0 0x2000>; clocks = <&dcan0_fck>; clock-names = "fck"; syscon-raminit = <&scm_conf 0x644 0>; interrupts = <52>; status = "disabled"; }; }; target-module@d0000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0xd0020 0x4>; reg-names = "rev"; clocks = <&l4ls_clkctrl ((0xc4) - 0x38) 0>, <&dcan1_fck>; clock-names = "fck", "osc"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xd0000 0x2000>; dcan1: can@0 { compatible = "ti,am3352-d_can"; reg = <0x0 0x2000>; clocks = <&dcan1_fck>; clock-names = "fck"; syscon-raminit = <&scm_conf 0x644 1>; interrupts = <55>; status = "disabled"; }; }; target-module@d8000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0xd82fc 0x4>, <0xd8110 0x4>, <0xd8114 0x4>; reg-names = "rev", "sysc", "syss"; ti,sysc-mask = <((3 << 8) | (1 << 2) | (1 << 1) | (1 << 0))>; ti,sysc-sidle = <0>, <1>, <2>; ti,syss-mask = <1>; clocks = <&l4ls_clkctrl ((0xf4) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xd8000 0x1000>; mmc2: mmc@0 { compatible = "ti,am335-sdhci"; ti,needs-special-reset; dmas = <&edma 2 0 &edma 3 0>; dma-names = "tx", "rx"; interrupts = <28>; reg = <0x0 0x1000>; status = "disabled"; }; }; }; segment@200000 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00200000 0x010000>; target-module@0 { compatible = "ti,sysc-omap4-simple", "ti,sysc"; power-domains = <&prm_mpu>; clocks = <&mpu_clkctrl ((0x4) - 0x0) 0>; clock-names = "fck"; ti,no-idle; #address-cells = <1>; #size-cells = <1>; ranges = <0 0 0x10000>; mpu@0 { compatible = "ti,omap3-mpu"; pm-sram = <&pm_sram_code &pm_sram_data>; }; }; }; segment@300000 { compatible = "simple-pm-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00300000 0x001000>, <0x00001000 0x00301000 0x001000>, <0x00002000 0x00302000 0x001000>, <0x00003000 0x00303000 0x001000>, <0x00004000 0x00304000 0x001000>, <0x00005000 0x00305000 0x001000>, <0x0000e000 0x0030e000 0x001000>, <0x0000f000 0x0030f000 0x001000>, <0x00018000 0x00318000 0x004000>, <0x0001c000 0x0031c000 0x001000>, <0x00010000 0x00310000 0x002000>, <0x00012000 0x00312000 0x001000>, <0x00015000 0x00315000 0x001000>, <0x00016000 0x00316000 0x001000>, <0x00017000 0x00317000 0x001000>, <0x00013000 0x00313000 0x001000>, <0x00014000 0x00314000 0x001000>, <0x00020000 0x00320000 0x001000>, <0x00021000 0x00321000 0x001000>, <0x00022000 0x00322000 0x001000>, <0x00023000 0x00323000 0x001000>, <0x00024000 0x00324000 0x001000>, <0x00025000 0x00325000 0x001000>; target-module@0 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x0 0x4>, <0x4 0x4>; reg-names = "rev", "sysc"; ti,sysc-midle = <0>, <1>, <2>, <3>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0xd4) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x1000>; epwmss0: epwmss@0 { compatible = "ti,am33xx-pwmss"; reg = <0x0 0x10>; #address-cells = <1>; #size-cells = <1>; status = "disabled"; ranges = <0 0 0x1000>; ecap0: pwm@100 { compatible = "ti,am3352-ecap"; #pwm-cells = <3>; reg = <0x100 0x80>; clocks = <&l4ls_gclk>; clock-names = "fck"; status = "disabled"; }; eqep0: counter@180 { compatible = "ti,am3352-eqep"; reg = <0x180 0x80>; clocks = <&l4ls_gclk>; clock-names = "sysclkout"; interrupts = <79>; status = "disabled"; }; ehrpwm0: pwm@200 { compatible = "ti,am3352-ehrpwm"; #pwm-cells = <3>; reg = <0x200 0x80>; clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>; clock-names = "tbclk", "fck"; status = "disabled"; }; }; }; target-module@2000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x2000 0x4>, <0x2004 0x4>; reg-names = "rev", "sysc"; ti,sysc-midle = <0>, <1>, <2>, <3>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0xcc) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x2000 0x1000>; epwmss1: epwmss@0 { compatible = "ti,am33xx-pwmss"; reg = <0x0 0x10>; #address-cells = <1>; #size-cells = <1>; status = "disabled"; ranges = <0 0 0x1000>; ecap1: pwm@100 { compatible = "ti,am3352-ecap"; #pwm-cells = <3>; reg = <0x100 0x80>; clocks = <&l4ls_gclk>; clock-names = "fck"; status = "disabled"; }; eqep1: counter@180 { compatible = "ti,am3352-eqep"; reg = <0x180 0x80>; clocks = <&l4ls_gclk>; clock-names = "sysclkout"; interrupts = <88>; status = "disabled"; }; ehrpwm1: pwm@200 { compatible = "ti,am3352-ehrpwm"; #pwm-cells = <3>; reg = <0x200 0x80>; clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>; clock-names = "tbclk", "fck"; status = "disabled"; }; }; }; target-module@4000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x4000 0x4>, <0x4004 0x4>; reg-names = "rev", "sysc"; ti,sysc-midle = <0>, <1>, <2>, <3>; ti,sysc-sidle = <0>, <1>, <2>, <3>; clocks = <&l4ls_clkctrl ((0xd8) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x4000 0x1000>; epwmss2: epwmss@0 { compatible = "ti,am33xx-pwmss"; reg = <0x0 0x10>; #address-cells = <1>; #size-cells = <1>; status = "disabled"; ranges = <0 0 0x1000>; ecap2: pwm@100 { compatible = "ti,am3352-ecap"; #pwm-cells = <3>; reg = <0x100 0x80>; clocks = <&l4ls_gclk>; clock-names = "fck"; status = "disabled"; }; eqep2: counter@180 { compatible = "ti,am3352-eqep"; reg = <0x180 0x80>; clocks = <&l4ls_gclk>; clock-names = "sysclkout"; interrupts = <89>; status = "disabled"; }; ehrpwm2: pwm@200 { compatible = "ti,am3352-ehrpwm"; #pwm-cells = <3>; reg = <0x200 0x80>; clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>; clock-names = "tbclk", "fck"; status = "disabled"; }; }; }; target-module@e000 { compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0xe000 0x4>, <0xe054 0x4>; reg-names = "rev", "sysc"; ti,sysc-midle = <0>, <1>, <2>; ti,sysc-sidle = <0>, <1>, <2>; clocks = <&lcdc_clkctrl ((0x18) - 0x18) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xe000 0x1000>; lcdc: lcdc@0 { compatible = "ti,am33xx-tilcdc"; reg = <0x0 0x1000>; interrupts = <36>; status = "disabled"; }; }; target-module@10000 { compatible = "ti,sysc-omap2", "ti,sysc"; reg = <0x11fe0 0x4>, <0x11fe4 0x4>; reg-names = "rev", "sysc"; ti,sysc-mask = <(1 << 0)>; ti,sysc-sidle = <0>, <1>; clocks = <&l4ls_clkctrl ((0x90) - 0x38) 0>; clock-names = "fck"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x10000 0x2000>; rng: rng@0 { compatible = "ti,omap4-rng"; reg = <0x0 0x2000>; interrupts = <111>; }; }; target-module@13000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x13000 0x1000>; }; target-module@15000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x00000000 0x00015000 0x00001000>, <0x00001000 0x00016000 0x00001000>; }; target-module@18000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x18000 0x4000>; }; target-module@20000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x20000 0x1000>; }; target-module@22000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x22000 0x1000>; }; target-module@24000 { compatible = "ti,sysc"; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x24000 0x1000>; }; }; }; # 641 "./am33xx.dtsi" 2 # 1 "./am33xx-clocks.dtsi" 1 // SPDX-License-Identifier: GPL-2.0-only &scm_clocks { sys_clkin_ck: sys_clkin_ck@40 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&virt_19200000_ck>, <&virt_24000000_ck>, <&virt_25000000_ck>, <&virt_26000000_ck>; ti,bit-shift = <22>; reg = <0x0040>; }; adc_tsc_fck: adc_tsc_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; dcan0_fck: dcan0_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; dcan1_fck: dcan1_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; mcasp0_fck: mcasp0_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; mcasp1_fck: mcasp1_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; smartreflex0_fck: smartreflex0_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; smartreflex1_fck: smartreflex1_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; sha0_fck: sha0_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; aes0_fck: aes0_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; rng_fck: rng_fck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&sys_clkin_ck>; clock-mult = <1>; clock-div = <1>; }; ehrpwm0_tbclk: ehrpwm0_tbclk@44e10664 { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&l4ls_gclk>; ti,bit-shift = <0>; reg = <0x0664>; }; ehrpwm1_tbclk: ehrpwm1_tbclk@44e10664 { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&l4ls_gclk>; ti,bit-shift = <1>; reg = <0x0664>; }; ehrpwm2_tbclk: ehrpwm2_tbclk@44e10664 { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&l4ls_gclk>; ti,bit-shift = <2>; reg = <0x0664>; }; }; &prcm_clocks { clk_32768_ck: clk_32768_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <32768>; }; clk_rc32k_ck: clk_rc32k_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <32000>; }; virt_19200000_ck: virt_19200000_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <19200000>; }; virt_24000000_ck: virt_24000000_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <24000000>; }; virt_25000000_ck: virt_25000000_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <25000000>; }; virt_26000000_ck: virt_26000000_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <26000000>; }; tclkin_ck: tclkin_ck { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <12000000>; }; dpll_core_ck: dpll_core_ck@490 { #clock-cells = <0>; compatible = "ti,am3-dpll-core-clock"; clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; reg = <0x0490>, <0x045c>, <0x0468>, <0x0460>, <0x0464>; }; dpll_core_x2_ck: dpll_core_x2_ck { #clock-cells = <0>; compatible = "ti,am3-dpll-x2-clock"; clocks = <&dpll_core_ck>; }; dpll_core_m4_ck: dpll_core_m4_ck@480 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_core_x2_ck>; ti,max-div = <31>; reg = <0x0480>; ti,index-starts-at-one; }; dpll_core_m5_ck: dpll_core_m5_ck@484 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_core_x2_ck>; ti,max-div = <31>; reg = <0x0484>; ti,index-starts-at-one; }; dpll_core_m6_ck: dpll_core_m6_ck@4d8 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_core_x2_ck>; ti,max-div = <31>; reg = <0x04d8>; ti,index-starts-at-one; }; dpll_mpu_ck: dpll_mpu_ck@488 { #clock-cells = <0>; compatible = "ti,am3-dpll-clock"; clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; reg = <0x0488>, <0x0420>, <0x042c>, <0x0424>, <0x0428>; }; dpll_mpu_m2_ck: dpll_mpu_m2_ck@4a8 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_mpu_ck>; ti,max-div = <31>; reg = <0x04a8>; ti,index-starts-at-one; }; dpll_ddr_ck: dpll_ddr_ck@494 { #clock-cells = <0>; compatible = "ti,am3-dpll-no-gate-clock"; clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; reg = <0x0494>, <0x0434>, <0x0440>, <0x0438>, <0x043c>; }; dpll_ddr_m2_ck: dpll_ddr_m2_ck@4a0 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_ddr_ck>; ti,max-div = <31>; reg = <0x04a0>; ti,index-starts-at-one; }; dpll_ddr_m2_div2_ck: dpll_ddr_m2_div2_ck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_ddr_m2_ck>; clock-mult = <1>; clock-div = <2>; }; dpll_disp_ck: dpll_disp_ck@498 { #clock-cells = <0>; compatible = "ti,am3-dpll-no-gate-clock"; clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; reg = <0x0498>, <0x0448>, <0x0454>, <0x044c>, <0x0450>; }; dpll_disp_m2_ck: dpll_disp_m2_ck@4a4 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_disp_ck>; ti,max-div = <31>; reg = <0x04a4>; ti,index-starts-at-one; ti,set-rate-parent; }; dpll_per_ck: dpll_per_ck@48c { #clock-cells = <0>; compatible = "ti,am3-dpll-no-gate-j-type-clock"; clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; reg = <0x048c>, <0x0470>, <0x049c>, <0x0474>, <0x0478>; }; dpll_per_m2_ck: dpll_per_m2_ck@4ac { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&dpll_per_ck>; ti,max-div = <31>; reg = <0x04ac>; ti,index-starts-at-one; }; dpll_per_m2_div4_wkupdm_ck: dpll_per_m2_div4_wkupdm_ck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_per_m2_ck>; clock-mult = <1>; clock-div = <4>; }; dpll_per_m2_div4_ck: dpll_per_m2_div4_ck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_per_m2_ck>; clock-mult = <1>; clock-div = <4>; }; clk_24mhz: clk_24mhz { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_per_m2_ck>; clock-mult = <1>; clock-div = <8>; }; clkdiv32k_ck: clkdiv32k_ck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&clk_24mhz>; clock-mult = <1>; clock-div = <732>; }; l3_gclk: l3_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_ck>; clock-mult = <1>; clock-div = <1>; }; pruss_ocp_gclk: pruss_ocp_gclk@530 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&l3_gclk>, <&dpll_disp_m2_ck>; reg = <0x0530>; }; mmu_fck: mmu_fck@914 { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&dpll_core_m4_ck>; ti,bit-shift = <1>; reg = <0x0914>; }; timer1_fck: timer1_fck@528 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>, <&tclkin_ck>, <&clk_rc32k_ck>, <&clk_32768_ck>; reg = <0x0528>; }; timer2_fck: timer2_fck@508 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x0508>; }; timer3_fck: timer3_fck@50c { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x050c>; }; timer4_fck: timer4_fck@510 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x0510>; }; timer5_fck: timer5_fck@518 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x0518>; }; timer6_fck: timer6_fck@51c { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x051c>; }; timer7_fck: timer7_fck@504 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x0504>; }; usbotg_fck: usbotg_fck@47c { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&dpll_per_ck>; ti,bit-shift = <8>; reg = <0x047c>; }; dpll_core_m4_div2_ck: dpll_core_m4_div2_ck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_ck>; clock-mult = <1>; clock-div = <2>; }; ieee5000_fck: ieee5000_fck@e4 { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&dpll_core_m4_div2_ck>; ti,bit-shift = <1>; reg = <0x00e4>; }; wdt1_fck: wdt1_fck@538 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&clk_rc32k_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x0538>; }; l4_rtc_gclk: l4_rtc_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_ck>; clock-mult = <1>; clock-div = <2>; }; l4hs_gclk: l4hs_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_ck>; clock-mult = <1>; clock-div = <1>; }; l3s_gclk: l3s_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_div2_ck>; clock-mult = <1>; clock-div = <1>; }; l4fw_gclk: l4fw_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_div2_ck>; clock-mult = <1>; clock-div = <1>; }; l4ls_gclk: l4ls_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_div2_ck>; clock-mult = <1>; clock-div = <1>; }; sysclk_div_ck: sysclk_div_ck { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m4_ck>; clock-mult = <1>; clock-div = <1>; }; cpsw_125mhz_gclk: cpsw_125mhz_gclk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_core_m5_ck>; clock-mult = <1>; clock-div = <2>; }; cpsw_cpts_rft_clk: cpsw_cpts_rft_clk@520 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&dpll_core_m5_ck>, <&dpll_core_m4_ck>; reg = <0x0520>; }; gpio0_dbclk_mux_ck: gpio0_dbclk_mux_ck@53c { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&clk_rc32k_ck>, <&clk_32768_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; reg = <0x053c>; }; lcd_gclk: lcd_gclk@534 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&dpll_disp_m2_ck>, <&dpll_core_m5_ck>, <&dpll_per_m2_ck>; reg = <0x0534>; ti,set-rate-parent; }; mmc_clk: mmc_clk { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&dpll_per_m2_ck>; clock-mult = <1>; clock-div = <2>; }; gfx_fclk_clksel_ck: gfx_fclk_clksel_ck@52c { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&dpll_core_m4_ck>, <&dpll_per_m2_ck>; ti,bit-shift = <1>; reg = <0x052c>; }; gfx_fck_div_ck: gfx_fck_div_ck@52c { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&gfx_fclk_clksel_ck>; reg = <0x052c>; ti,max-div = <2>; }; sysclkout_pre_ck: sysclkout_pre_ck@700 { #clock-cells = <0>; compatible = "ti,mux-clock"; clocks = <&clk_32768_ck>, <&l3_gclk>, <&dpll_ddr_m2_ck>, <&dpll_per_m2_ck>, <&lcd_gclk>; reg = <0x0700>; }; clkout2_div_ck: clkout2_div_ck@700 { #clock-cells = <0>; compatible = "ti,divider-clock"; clocks = <&sysclkout_pre_ck>; ti,bit-shift = <3>; ti,max-div = <8>; reg = <0x0700>; }; clkout2_ck: clkout2_ck@700 { #clock-cells = <0>; compatible = "ti,gate-clock"; clocks = <&clkout2_div_ck>; ti,bit-shift = <7>; reg = <0x0700>; }; }; &prcm { per_cm: per-cm@0 { compatible = "ti,omap4-cm"; reg = <0x0 0x400>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x0 0x400>; l4ls_clkctrl: l4ls-clkctrl@38 { compatible = "ti,clkctrl"; reg = <0x38 0x2c>, <0x6c 0x28>, <0xac 0xc>, <0xc0 0x1c>, <0xec 0xc>, <0x10c 0x8>, <0x130 0x4>; #clock-cells = <2>; }; l3s_clkctrl: l3s-clkctrl@1c { compatible = "ti,clkctrl"; reg = <0x1c 0x4>, <0x30 0x8>, <0x68 0x4>, <0xf8 0x4>; #clock-cells = <2>; }; l3_clkctrl: l3-clkctrl@24 { compatible = "ti,clkctrl"; reg = <0x24 0xc>, <0x94 0x10>, <0xbc 0x4>, <0xdc 0x8>, <0xfc 0x8>; #clock-cells = <2>; }; l4hs_clkctrl: l4hs-clkctrl@120 { compatible = "ti,clkctrl"; reg = <0x120 0x4>; #clock-cells = <2>; }; pruss_ocp_clkctrl: pruss-ocp-clkctrl@e8 { compatible = "ti,clkctrl"; reg = <0xe8 0x4>; #clock-cells = <2>; }; cpsw_125mhz_clkctrl: cpsw-125mhz-clkctrl@0 { compatible = "ti,clkctrl"; reg = <0x0 0x18>; #clock-cells = <2>; }; lcdc_clkctrl: lcdc-clkctrl@18 { compatible = "ti,clkctrl"; reg = <0x18 0x4>; #clock-cells = <2>; }; clk_24mhz_clkctrl: clk-24mhz-clkctrl@14c { compatible = "ti,clkctrl"; reg = <0x14c 0x4>; #clock-cells = <2>; }; }; wkup_cm: wkup-cm@400 { compatible = "ti,omap4-cm"; reg = <0x400 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x400 0x100>; l4_wkup_clkctrl: l4-wkup-clkctrl@0 { compatible = "ti,clkctrl"; reg = <0x0 0x10>, <0xb4 0x24>; #clock-cells = <2>; }; l3_aon_clkctrl: l3-aon-clkctrl@14 { compatible = "ti,clkctrl"; reg = <0x14 0x4>; #clock-cells = <2>; }; l4_wkup_aon_clkctrl: l4-wkup-aon-clkctrl@b0 { compatible = "ti,clkctrl"; reg = <0xb0 0x4>; #clock-cells = <2>; }; }; mpu_cm: mpu-cm@600 { compatible = "ti,omap4-cm"; reg = <0x600 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x600 0x100>; mpu_clkctrl: mpu-clkctrl@0 { compatible = "ti,clkctrl"; reg = <0x0 0x8>; #clock-cells = <2>; }; }; l4_rtc_cm: l4-rtc-cm@800 { compatible = "ti,omap4-cm"; reg = <0x800 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x800 0x100>; l4_rtc_clkctrl: l4-rtc-clkctrl@0 { compatible = "ti,clkctrl"; reg = <0x0 0x4>; #clock-cells = <2>; }; }; gfx_l3_cm: gfx-l3-cm@900 { compatible = "ti,omap4-cm"; reg = <0x900 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x900 0x100>; gfx_l3_clkctrl: gfx-l3-clkctrl@0 { compatible = "ti,clkctrl"; reg = <0x0 0x8>; #clock-cells = <2>; }; }; l4_cefuse_cm: l4-cefuse-cm@a00 { compatible = "ti,omap4-cm"; reg = <0xa00 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0xa00 0x100>; l4_cefuse_clkctrl: l4-cefuse-clkctrl@0 { compatible = "ti,clkctrl"; reg = <0x0 0x24>; #clock-cells = <2>; }; }; }; # 642 "./am33xx.dtsi" 2 &prcm { prm_per: prm@c00 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0xc00 0x100>; #reset-cells = <1>; #power-domain-cells = <0>; }; prm_wkup: prm@d00 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0xd00 0x100>; #reset-cells = <1>; #power-domain-cells = <0>; }; prm_mpu: prm@e00 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0xe00 0x100>; #power-domain-cells = <0>; }; prm_device: prm@f00 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0xf00 0x100>; #reset-cells = <1>; }; prm_rtc: prm@1000 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0x1000 0x100>; #power-domain-cells = <0>; }; prm_gfx: prm@1100 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0x1100 0x100>; #power-domain-cells = <0>; #reset-cells = <1>; }; prm_cefuse: prm@1200 { compatible = "ti,am3-prm-inst", "ti,omap-prm-inst"; reg = <0x1200 0x100>; #power-domain-cells = <0>; }; }; &timer1_target { clocks = <&l4_wkup_clkctrl ((0xc4) - 0x0) 0>, <&l4_wkup_clkctrl ((0xc) - 0x0) 0>; clock-names = "fck", "ick"; ti,no-reset-on-init; ti,no-idle; timer@0 { assigned-clocks = <&timer1_fck>; assigned-clock-parents = <&sys_clkin_ck>; }; }; &timer2_target { clocks = <&l4ls_clkctrl ((0x80) - 0x38) 0>, <&l4ls_clkctrl ((0x60) - 0x38) 0>; clock-names = "fck", "ick"; ti,no-reset-on-init; ti,no-idle; timer@0 { assigned-clocks = <&timer2_fck>; assigned-clock-parents = <&sys_clkin_ck>; }; }; # 8 "./am335x-boneblack.dts" 2 # 1 "./am335x-bone-common.dtsi" 1 // SPDX-License-Identifier: GPL-2.0-only / { cpus { cpu@0 { cpu0-supply = <&dcdc2_reg>; }; }; memory@80000000 { device_type = "memory"; reg = <0x80000000 0x10000000>; }; chosen { stdout-path = &uart0; }; leds { pinctrl-names = "default"; pinctrl-0 = <&user_leds_s0>; compatible = "gpio-leds"; led2 { label = "beaglebone:green:heartbeat"; gpios = <&gpio1 21 0>; linux,default-trigger = "heartbeat"; default-state = "off"; }; led3 { label = "beaglebone:green:mmc0"; gpios = <&gpio1 22 0>; linux,default-trigger = "mmc0"; default-state = "off"; }; led4 { label = "beaglebone:green:usr2"; gpios = <&gpio1 23 0>; linux,default-trigger = "cpu0"; default-state = "off"; }; led5 { label = "beaglebone:green:usr3"; gpios = <&gpio1 24 0>; linux,default-trigger = "mmc1"; default-state = "off"; }; }; vmmcsd_fixed: fixedregulator0 { compatible = "regulator-fixed"; regulator-name = "vmmcsd_fixed"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; }; &am33xx_pinmux { pinctrl-names = "default"; pinctrl-0 = <&clkout2_pin>; user_leds_s0: user_leds_s0 { pinctrl-single,pins = < ((((0x854)) & 0xffff) - (0x0800)) ( 0) ( 7) ((((0x858)) & 0xffff) - (0x0800)) ( ((1 << 4))) ( 7) ((((0x85c)) & 0xffff) - (0x0800)) ( 0) ( 7) ((((0x860)) & 0xffff) - (0x0800)) ( ((1 << 4))) ( 7) >; }; i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < ((((0x988)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x98c)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) >; }; i2c2_pins: pinmux_i2c2_pins { pinctrl-single,pins = < ((((0x978)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 3) ((((0x97c)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 3) >; }; uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < ((((0x970)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x974)) & 0xffff) - (0x0800)) ( 0) ( 0) >; }; clkout2_pin: pinmux_clkout2_pin { pinctrl-single,pins = < ((((0x9b4)) & 0xffff) - (0x0800)) ( 0) ( 3) >; }; cpsw_default: cpsw_default { pinctrl-single,pins = < ((((0x910)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x914)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x918)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x91c)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x920)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x924)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x928)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x92c)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x930)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x934)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x938)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x93c)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x940)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) >; }; cpsw_sleep: cpsw_sleep { pinctrl-single,pins = < ((((0x910)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x914)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x918)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x91c)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x920)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x924)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x928)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x92c)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x930)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x934)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x938)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x93c)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x940)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) >; }; davinci_mdio_default: davinci_mdio_default { pinctrl-single,pins = < ((((0x948)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4)) | 0) ( 0) ((((0x94c)) & 0xffff) - (0x0800)) ( ((1 << 4))) ( 0) >; }; davinci_mdio_sleep: davinci_mdio_sleep { pinctrl-single,pins = < ((((0x948)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) ((((0x94c)) & 0xffff) - (0x0800)) ( ((1 << 5))) ( 7) >; }; mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < ((((0x960)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 3))) ( 7) ((((0x8fc)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x8f8)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x8f4)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x8f0)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x904)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x900)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) >; }; emmc_pins: pinmux_emmc_pins { pinctrl-single,pins = < ((((0x880)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 2) ((((0x884)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 2) ((((0x800)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x804)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x808)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x80c)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x810)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x814)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x818)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) ((((0x81c)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 1) >; }; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>; status = "okay"; }; &usb0 { dr_mode = "peripheral"; interrupts-extended = <&intc 18 &tps 0>; interrupt-names = "mc", "vbus"; }; &usb1 { dr_mode = "host"; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; clock-frequency = <400000>; tps: tps@24 { reg = <0x24>; }; baseboard_eeprom: baseboard_eeprom@50 { compatible = "atmel,24c256"; reg = <0x50>; #address-cells = <1>; #size-cells = <1>; baseboard_data: baseboard_data@0 { reg = <0 0x100>; }; }; }; &i2c2 { pinctrl-names = "default"; pinctrl-0 = <&i2c2_pins>; status = "okay"; clock-frequency = <100000>; cape_eeprom0: cape_eeprom0@54 { compatible = "atmel,24c256"; reg = <0x54>; #address-cells = <1>; #size-cells = <1>; cape0_data: cape_data@0 { reg = <0 0x100>; }; }; cape_eeprom1: cape_eeprom1@55 { compatible = "atmel,24c256"; reg = <0x55>; #address-cells = <1>; #size-cells = <1>; cape1_data: cape_data@0 { reg = <0 0x100>; }; }; cape_eeprom2: cape_eeprom2@56 { compatible = "atmel,24c256"; reg = <0x56>; #address-cells = <1>; #size-cells = <1>; cape2_data: cape_data@0 { reg = <0 0x100>; }; }; cape_eeprom3: cape_eeprom3@57 { compatible = "atmel,24c256"; reg = <0x57>; #address-cells = <1>; #size-cells = <1>; cape3_data: cape_data@0 { reg = <0 0x100>; }; }; }; # 1 "./tps65217.dtsi" 1 // SPDX-License-Identifier: GPL-2.0-only &tps { compatible = "ti,tps65217"; interrupt-controller; #interrupt-cells = <1>; charger { compatible = "ti,tps65217-charger"; interrupts = <0>, <1>; interrupt-names = "USB", "AC"; status = "disabled"; }; pwrbutton { compatible = "ti,tps65217-pwrbutton"; interrupts = <2>; status = "disabled"; }; regulators { #address-cells = <1>; #size-cells = <0>; dcdc1_reg: regulator@0 { reg = <0>; regulator-compatible = "dcdc1"; }; dcdc2_reg: regulator@1 { reg = <1>; regulator-compatible = "dcdc2"; }; dcdc3_reg: regulator@2 { reg = <2>; regulator-compatible = "dcdc3"; }; ldo1_reg: regulator@3 { reg = <3>; regulator-compatible = "ldo1"; }; ldo2_reg: regulator@4 { reg = <4>; regulator-compatible = "ldo2"; }; ldo3_reg: regulator@5 { reg = <5>; regulator-compatible = "ldo3"; }; ldo4_reg: regulator@6 { reg = <6>; regulator-compatible = "ldo4"; }; }; }; # 277 "./am335x-bone-common.dtsi" 2 &tps { # 295 "./am335x-bone-common.dtsi" interrupts = <7>; interrupt-parent = <&intc>; ti,pmic-shutdown-controller; charger { status = "okay"; }; pwrbutton { status = "okay"; }; regulators { dcdc1_reg: regulator@0 { regulator-name = "vdds_dpr"; regulator-always-on; }; dcdc2_reg: regulator@1 { regulator-name = "vdd_mpu"; regulator-min-microvolt = <925000>; regulator-max-microvolt = <1351500>; regulator-boot-on; regulator-always-on; }; dcdc3_reg: regulator@2 { regulator-name = "vdd_core"; regulator-min-microvolt = <925000>; regulator-max-microvolt = <1150000>; regulator-boot-on; regulator-always-on; }; ldo1_reg: regulator@3 { regulator-name = "vio,vrtc,vdds"; regulator-always-on; }; ldo2_reg: regulator@4 { regulator-name = "vdd_3v3aux"; regulator-always-on; }; ldo3_reg: regulator@5 { regulator-name = "vdd_1v8"; regulator-always-on; }; ldo4_reg: regulator@6 { regulator-name = "vdd_3v3a"; regulator-always-on; }; }; }; &cpsw_port1 { phy-handle = <ðphy0>; phy-mode = "mii"; ti,dual-emac-pvid = <1>; }; &cpsw_port2 { status = "disabled"; }; &mac_sw { pinctrl-names = "default", "sleep"; pinctrl-0 = <&cpsw_default>; pinctrl-1 = <&cpsw_sleep>; status = "okay"; }; &davinci_mdio_sw { pinctrl-names = "default", "sleep"; pinctrl-0 = <&davinci_mdio_default>; pinctrl-1 = <&davinci_mdio_sleep>; ethphy0: ethernet-phy@0 { reg = <0>; }; }; &mmc1 { status = "okay"; bus-width = <0x4>; pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; cd-gpios = <&gpio0 6 1>; }; &aes { status = "okay"; }; &sham { status = "okay"; }; &rtc { clocks = <&clk_32768_ck>, <&clk_24mhz_clkctrl ((0x14c) - 0x14c) 0>; clock-names = "ext-clk", "int-clk"; }; &pruss_tm { status = "okay"; }; # 9 "./am335x-boneblack.dts" 2 # 1 "./am335x-boneblack-common.dtsi" 1 // SPDX-License-Identifier: GPL-2.0-only &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; &mmc1 { vmmc-supply = <&vmmcsd_fixed>; }; &mmc2 { vmmc-supply = <&vmmcsd_fixed>; pinctrl-names = "default"; pinctrl-0 = <&emmc_pins>; bus-width = <8>; status = "okay"; non-removable; }; &rtc { system-power-controller; }; / { memory@80000000 { device_type = "memory"; reg = <0x80000000 0x20000000>; }; }; # 10 "./am335x-boneblack.dts" 2 # 1 "./am335x-boneblack-hdmi.dtsi" 1 // SPDX-License-Identifier: GPL-2.0-only # 1 "./dt-bindings/display/tda998x.h" 1 # 7 "./am335x-boneblack-hdmi.dtsi" 2 # 1 "./dt-bindings/interrupt-controller/irq.h" 1 # 8 "./am335x-boneblack-hdmi.dtsi" 2 &am33xx_pinmux { nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { pinctrl-single,pins = < ((((0x9b0)) & 0xffff) - (0x0800)) ( 0) ( 3) ((((0x8a0)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8a4)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8a8)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8ac)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8b0)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8b4)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8b8)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8bc)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8c0)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8c4)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8c8)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8cc)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8d0)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8d4)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8d8)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8dc)) & 0xffff) - (0x0800)) ( ((1 << 3))) ( 0) ((((0x8e0)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x8e4)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x8e8)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x8ec)) & 0xffff) - (0x0800)) ( 0) ( 0) >; }; nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { pinctrl-single,pins = < ((((0x9b0)) & 0xffff) - (0x0800)) ( 0) ( 3) >; }; mcasp0_pins: mcasp0_pins { pinctrl-single,pins = < ((((0x9ac)) & 0xffff) - (0x0800)) ( ((1 << 5) | (1 << 4))) ( 0) ((((0x99c)) & 0xffff) - (0x0800)) ( 0) ( 2) ((((0x994)) & 0xffff) - (0x0800)) ( ((1 << 4))) ( 0) ((((0x990)) & 0xffff) - (0x0800)) ( 0) ( 0) ((((0x86c)) & 0xffff) - (0x0800)) ( 0) ( 7) >; }; }; &lcdc { status = "okay"; blue-and-red-wiring = "straight"; port { lcdc_0: endpoint@0 { remote-endpoint = <&hdmi_0>; }; }; }; &i2c0 { tda19988: tda19988@70 { compatible = "nxp,tda998x"; reg = <0x70>; nxp,calib-gpios = <&gpio1 25 0>; interrupts-extended = <&gpio1 25 8>; pinctrl-names = "default", "off"; pinctrl-0 = <&nxp_hdmi_bonelt_pins>; pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; #sound-dai-cells = <0>; audio-ports = < 2 0x03>; ports { port@0 { hdmi_0: endpoint@0 { remote-endpoint = <&lcdc_0>; }; }; }; }; }; &mcasp0 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&mcasp0_pins>; status = "okay"; op-mode = <0>; tdm-slots = <2>; serial-dir = < 0 0 1 0 >; tx-num-evt = <32>; rx-num-evt = <32>; }; / { clk_mcasp0_fixed: clk_mcasp0_fixed { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <24576000>; }; clk_mcasp0: clk_mcasp0 { #clock-cells = <0>; compatible = "gpio-gate-clock"; clocks = <&clk_mcasp0_fixed>; enable-gpios = <&gpio1 27 0>; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "TI BeagleBone Black"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&dailink0_master>; simple-audio-card,frame-master = <&dailink0_master>; dailink0_master: simple-audio-card,cpu { sound-dai = <&mcasp0>; clocks = <&clk_mcasp0>; }; simple-audio-card,codec { sound-dai = <&tda19988>; }; }; }; # 11 "./am335x-boneblack.dts" 2 / { model = "TI AM335x BeagleBone Black"; compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; }; &cpu0_opp_table { oppnitro-1000000000 { opp-supported-hw = <0x06 0x0100>; }; }; &gpio0 { gpio-line-names = "[mdio_data]", "[mdio_clk]", "P9_22 [spi0_sclk]", "P9_21 [spi0_d0]", "P9_18 [spi0_d1]", "P9_17 [spi0_cs0]", "[mmc0_cd]", "P8_42A [ecappwm0]", "P8_35 [lcd d12]", "P8_33 [lcd d13]", "P8_31 [lcd d14]", "P8_32 [lcd d15]", "P9_20 [i2c2_sda]", "P9_19 [i2c2_scl]", "P9_26 [uart1_rxd]", "P9_24 [uart1_txd]", "[rmii1_txd3]", "[rmii1_txd2]", "[usb0_drvvbus]", "[hdmi cec]", "P9_41B", "[rmii1_txd1]", "P8_19 [ehrpwm2a]", "P8_13 [ehrpwm2b]", "NC", "NC", "P8_14", "P8_17", "[rmii1_txd0]", "[rmii1_refclk]", "P9_11 [uart4_rxd]", "P9_13 [uart4_txd]"; }; &gpio1 { gpio-line-names = "P8_25 [mmc1_dat0]", "[mmc1_dat1]", "P8_5 [mmc1_dat2]", "P8_6 [mmc1_dat3]", "P8_23 [mmc1_dat4]", "P8_22 [mmc1_dat5]", "P8_3 [mmc1_dat6]", "P8_4 [mmc1_dat7]", "NC", "NC", "NC", "NC", "P8_12", "P8_11", "P8_16", "P8_15", "P9_15A", "P9_23", "P9_14 [ehrpwm1a]", "P9_16 [ehrpwm1b]", "[emmc rst]", "[usr0 led]", "[usr1 led]", "[usr2 led]", "[usr3 led]", "[hdmi irq]", "[usb vbus oc]", "[hdmi audio]", "P9_12", "P8_26", "P8_21 [emmc]", "P8_20 [emmc]"; }; &gpio2 { gpio-line-names = "P9_15B", "P8_18", "P8_7", "P8_8", "P8_10", "P8_9", "P8_45 [hdmi]", "P8_46 [hdmi]", "P8_43 [hdmi]", "P8_44 [hdmi]", "P8_41 [hdmi]", "P8_42 [hdmi]", "P8_39 [hdmi]", "P8_40 [hdmi]", "P8_37 [hdmi]", "P8_38 [hdmi]", "P8_36 [hdmi]", "P8_34 [hdmi]", "[rmii1_rxd3]", "[rmii1_rxd2]", "[rmii1_rxd1]", "[rmii1_rxd0]", "P8_27 [hdmi]", "P8_29 [hdmi]", "P8_28 [hdmi]", "P8_30 [hdmi]", "[mmc0_dat3]", "[mmc0_dat2]", "[mmc0_dat1]", "[mmc0_dat0]", "[mmc0_clk]", "[mmc0_cmd]"; }; &gpio3 { gpio-line-names = "[mii col]", "[mii crs]", "[mii rx err]", "[mii tx en]", "[mii rx dv]", "[i2c0 sda]", "[i2c0 scl]", "[jtag emu0]", "[jtag emu1]", "[mii tx clk]", "[mii rx clk]", "NC", "NC", "[usb vbus en]", "P9_31 [spi1_sclk]", "P9_29 [spi1_d0]", "P9_30 [spi1_d1]", "P9_28 [spi1_cs0]", "P9_42B [ecappwm0]", "P9_27", "P9_41A", "P9_25", "NC", "NC", "NC", "NC", "NC", "NC", "NC", "NC", "NC", "NC"; }; # 8 "am335x-boneblack-comm_cape.dts" 2 &am33xx_pinmux { bborg_comms_rs485_pins: pinmux_comms_rs485_pins { pinctrl-single,pins = < 0x074 (((1 << 3)) | 6) 0x070 (((1 << 5) | (1 << 3)) | 6) >; }; }; &uart4 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bborg_comms_rs485_pins>; //rs485-rts-delay = <0 0>; //rts-gpio = <&gpio3 19 1>; //rs485-rts-active-high; //linux,rs485-enabled-at-boot-time; };