Skip to content

Commit bb07a82

Browse files
tremmettmlind
authored andcommitted
ARM: dts: Add support for phyCORE-AM335x PCM-953 carrier board
The phyCORE-AM335x development kit is a combination of the phyCORE-AM335x SoM and a PCM-953 carrier board. The features of the PCM-953 are: * ETH phy on carrier board: 1x RGMII * 1x CAN * Up to 4x UART * USB0 (otg) * USB1 (host) * SD slot * User gpio-keys * User LEDs Signed-off-by: Teresa Remmet <[email protected]> Reviewed-by: Wadim Egorov <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Tony Lindgren <[email protected]>
1 parent d8e166b commit bb07a82

File tree

4 files changed

+319
-0
lines changed

4 files changed

+319
-0
lines changed

Documentation/devicetree/bindings/arm/omap/omap.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ Boards:
151151
- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4
152152
compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"
153153

154+
- AM335X phyCORE-AM335x: Development kit
155+
compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"
156+
154157
- OMAP5 EVM : Evaluation Module
155158
compatible = "ti,omap5-evm", "ti,omap5"
156159

arch/arm/boot/dts/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
574574
am335x-lxm.dtb \
575575
am335x-nano.dtb \
576576
am335x-pepper.dtb \
577+
am335x-phycore-rdk.dtb \
577578
am335x-shc.dtb \
578579
am335x-sbc-t335.dtb \
579580
am335x-sl50.dtb \
Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
/*
2+
* Copyright (C) 2014-2017 Phytec Messtechnik GmbH
3+
* Author: Wadim Egorov <[email protected]>
4+
* Teresa Remmet <[email protected]>
5+
*
6+
* This program is free software; you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License version 2 as
8+
* published by the Free Software Foundation.
9+
*/
10+
11+
#include <dt-bindings/input/input.h>
12+
13+
/ {
14+
model = "Phytec AM335x PCM-953";
15+
compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
16+
17+
/* Power */
18+
regulators {
19+
vcc3v3: fixedregulator@1 {
20+
compatible = "regulator-fixed";
21+
regulator-name = "vcc3v3";
22+
regulator-min-microvolt = <3300000>;
23+
regulator-max-microvolt = <3300000>;
24+
regulator-boot-on;
25+
};
26+
27+
vcc1v8: fixedregulator@2 {
28+
compatible = "regulator-fixed";
29+
regulator-name = "vcc1v8";
30+
regulator-min-microvolt = <1800000>;
31+
regulator-max-microvolt = <1800000>;
32+
regulator-boot-on;
33+
};
34+
};
35+
36+
/* User IO */
37+
user_leds: user_leds {
38+
compatible = "gpio-leds";
39+
pinctrl-names = "default";
40+
pinctrl-0 = <&user_leds_pins>;
41+
42+
green {
43+
label = "green:user";
44+
gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
45+
linux,default-trigger = "gpio";
46+
default-state = "on";
47+
};
48+
49+
yellow {
50+
label = "yellow:user";
51+
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
52+
linux,default-trigger = "gpio";
53+
default-state = "on";
54+
};
55+
};
56+
57+
user_buttons: user_buttons {
58+
compatible = "gpio-keys";
59+
pinctrl-names = "default";
60+
pinctrl-0 = <&user_buttons_pins>;
61+
62+
button@0 {
63+
label = "home";
64+
linux,code = <KEY_HOME>;
65+
gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
66+
gpio-key,wakeup;
67+
};
68+
69+
button@1 {
70+
label = "menu";
71+
linux,code = <KEY_MENU>;
72+
gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
73+
gpio-key,wakeup;
74+
};
75+
76+
};
77+
};
78+
79+
&am33xx_pinmux {
80+
user_buttons_pins: pinmux_user_buttons {
81+
pinctrl-single,pins = <
82+
AM33XX_IOPAD(0x9e4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* emu0.gpio3_7 */
83+
AM33XX_IOPAD(0x9e8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* emu1.gpio3_8 */
84+
>;
85+
};
86+
87+
user_leds_pins: pinmux_user_leds {
88+
pinctrl-single,pins = <
89+
AM33XX_IOPAD(0x880, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.gpio1_30 */
90+
AM33XX_IOPAD(0x884, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */
91+
>;
92+
};
93+
};
94+
95+
/* CAN */
96+
&am33xx_pinmux {
97+
dcan1_pins: pinmux_dcan1 {
98+
pinctrl-single,pins = <
99+
AM33XX_IOPAD(0x980, PIN_OUTPUT_PULLUP | MUX_MODE2) /* uart1_rxd.dcan1_tx_mux2 */
100+
AM33XX_IOPAD(0x984, PIN_INPUT_PULLUP | MUX_MODE2) /* uart1_txd.dcan1_rx_mux2 */
101+
>;
102+
};
103+
};
104+
105+
&dcan1 {
106+
pinctrl-names = "default";
107+
pinctrl-0 = <&dcan1_pins>;
108+
status = "okay";
109+
};
110+
111+
/* Ethernet */
112+
&am33xx_pinmux {
113+
ethernet1_pins: pinmux_ethernet1 {
114+
pinctrl-single,pins = <
115+
AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
116+
AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */
117+
AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
118+
AM33XX_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
119+
AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
120+
AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
121+
AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
122+
AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
123+
AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
124+
AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
125+
AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
126+
AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
127+
>;
128+
};
129+
};
130+
131+
&cpsw_emac1 {
132+
phy-handle = <&phy1>;
133+
phy-mode = "rgmii-id";
134+
dual_emac_res_vlan = <2>;
135+
status = "okay";
136+
};
137+
138+
&davinci_mdio {
139+
phy1: ethernet-phy@2 {
140+
reg = <2>;
141+
142+
/* Register 260 (104h) – RGMII Clock and Control Pad Skew */
143+
rxc-skew-ps = <1400>;
144+
rxdv-skew-ps = <0>;
145+
txc-skew-ps = <1400>;
146+
txen-skew-ps = <0>;
147+
/* Register 261 (105h) – RGMII RX Data Pad Skew */
148+
rxd3-skew-ps = <0>;
149+
rxd2-skew-ps = <0>;
150+
rxd1-skew-ps = <0>;
151+
rxd0-skew-ps = <0>;
152+
/* Register 262 (106h) – RGMII TX Data Pad Skew */
153+
txd3-skew-ps = <0>;
154+
txd2-skew-ps = <0>;
155+
txd1-skew-ps = <0>;
156+
txd0-skew-ps = <0>;
157+
};
158+
};
159+
160+
&mac {
161+
slaves = <2>;
162+
pinctrl-names = "default";
163+
pinctrl-0 = <&ethernet0_pins &ethernet1_pins>;
164+
dual_emac;
165+
};
166+
167+
/* Misc */
168+
&am33xx_pinmux {
169+
pinctrl-names = "default";
170+
pinctrl-0 = <&cb_gpio_pins>;
171+
172+
cb_gpio_pins: pinmux_cb_gpio {
173+
pinctrl-single,pins = <
174+
AM33XX_IOPAD(0x968, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart0_ctsn.gpio1_8 */
175+
AM33XX_IOPAD(0x96c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart0_rtsn.gpio1_9 */
176+
>;
177+
};
178+
};
179+
180+
/* MMC */
181+
&am33xx_pinmux {
182+
mmc1_pins: pinmux_mmc1_pins {
183+
pinctrl-single,pins = <
184+
AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
185+
AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
186+
AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
187+
AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
188+
AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
189+
AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
190+
AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE7) /* spi0_cs1.mmc0_sdcd */
191+
>;
192+
};
193+
};
194+
195+
&mmc1 {
196+
vmmc-supply = <&vcc3v3>;
197+
bus-width = <4>;
198+
pinctrl-names = "default";
199+
pinctrl-0 = <&mmc1_pins>;
200+
cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
201+
status = "okay";
202+
};
203+
204+
/* UARTs */
205+
&am33xx_pinmux {
206+
uart0_pins: pinmux_uart0 {
207+
pinctrl-single,pins = <
208+
AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
209+
AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
210+
>;
211+
};
212+
213+
uart1_pins: pinmux_uart1 {
214+
pinctrl-single,pins = <
215+
AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
216+
AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
217+
AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
218+
AM33XX_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
219+
>;
220+
};
221+
222+
uart2_pins: pinmux_uart2 {
223+
pinctrl-single,pins = <
224+
AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_tx_clk.uart2_rxd */
225+
AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rx_clk.uart2_txd */
226+
>;
227+
};
228+
229+
uart3_pins: pinmux_uart3 {
230+
pinctrl-single,pins = <
231+
AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd3.uart3_rxd */
232+
AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd2.uart3_txd */
233+
>;
234+
};
235+
};
236+
237+
&uart0 {
238+
pinctrl-names = "default";
239+
pinctrl-0 = <&uart0_pins>;
240+
status = "okay";
241+
};
242+
243+
&uart1 {
244+
pinctrl-names = "default";
245+
pinctrl-0 = <&uart1_pins>;
246+
};
247+
248+
&uart2 {
249+
pinctrl-names = "default";
250+
pinctrl-0 = <&uart2_pins>;
251+
status = "okay";
252+
};
253+
254+
&uart3 {
255+
pinctrl-names = "default";
256+
pinctrl-0 = <&uart3_pins>;
257+
status = "okay";
258+
};
259+
260+
/* USB */
261+
&cppi41dma {
262+
status = "okay";
263+
};
264+
265+
&usb_ctrl_mod {
266+
status = "okay";
267+
};
268+
269+
&usb {
270+
status = "okay";
271+
};
272+
273+
&usb0 {
274+
status = "okay";
275+
};
276+
277+
&usb0_phy {
278+
status = "okay";
279+
};
280+
281+
&usb1 {
282+
status = "okay";
283+
dr_mode = "host";
284+
};
285+
286+
&usb1_phy {
287+
status = "okay";
288+
};
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright (C) 2014 PHYTEC Messtechnik GmbH
3+
* Author: Wadim Egorov <[email protected]>
4+
*
5+
* This program is free software; you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License version 2 as
7+
* published by the Free Software Foundation.
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "am335x-phycore-som.dtsi"
13+
#include "am335x-pcm-953.dtsi"
14+
15+
/* SoM */
16+
&i2c_eeprom {
17+
status = "okay";
18+
};
19+
20+
&i2c_rtc {
21+
status = "okay";
22+
};
23+
24+
&serial_flash {
25+
status = "okay";
26+
27+
};

0 commit comments

Comments
 (0)