0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003 * at91sam9m10g45ek.dts - Device Tree file for AT91SAM9M10G45-EK board
0004 *
0005 * Copyright (C) 2011 Atmel,
0006 * 2011 Nicolas Ferre <nicolas.ferre@atmel.com>
0007 */
0008 /dts-v1/;
0009 #include "at91sam9g45.dtsi"
0010 #include <dt-bindings/pwm/pwm.h>
0011
0012 / {
0013 model = "Atmel AT91SAM9M10G45-EK";
0014 compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9";
0015
0016 chosen {
0017 bootargs = "mem=64M root=/dev/mtdblock1 rw rootfstype=jffs2";
0018 stdout-path = "serial0:115200n8";
0019 };
0020
0021 memory@70000000 {
0022 reg = <0x70000000 0x4000000>;
0023 };
0024
0025 clocks {
0026 slow_xtal {
0027 clock-frequency = <32768>;
0028 };
0029
0030 main_xtal {
0031 clock-frequency = <12000000>;
0032 };
0033 };
0034
0035 ahb {
0036 apb {
0037 dbgu: serial@ffffee00 {
0038 status = "okay";
0039 };
0040
0041 tcb0: timer@fff7c000 {
0042 timer@0 {
0043 compatible = "atmel,tcb-timer";
0044 reg = <0>, <1>;
0045 };
0046
0047 timer@2 {
0048 compatible = "atmel,tcb-timer";
0049 reg = <2>;
0050 };
0051 };
0052
0053 usart1: serial@fff90000 {
0054 pinctrl-0 =
0055 <&pinctrl_usart1
0056 &pinctrl_usart1_rts
0057 &pinctrl_usart1_cts>;
0058 status = "okay";
0059 };
0060
0061 macb0: ethernet@fffbc000 {
0062 phy-mode = "rmii";
0063 status = "okay";
0064 };
0065
0066 i2c0: i2c@fff84000 {
0067 status = "okay";
0068 ov2640: camera@30 {
0069 compatible = "ovti,ov2640";
0070 reg = <0x30>;
0071 pinctrl-names = "default";
0072 pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
0073 resetb-gpios = <&pioD 12 GPIO_ACTIVE_LOW>;
0074 pwdn-gpios = <&pioD 13 GPIO_ACTIVE_HIGH>;
0075 clocks = <&pmc PMC_TYPE_SYSTEM 9>;
0076 clock-names = "xvclk";
0077 assigned-clocks = <&pmc PMC_TYPE_SYSTEM 9>;
0078 assigned-clock-rates = <25000000>;
0079
0080 port {
0081 ov2640_0: endpoint {
0082 remote-endpoint = <&isi_0>;
0083 bus-width = <8>;
0084 };
0085 };
0086 };
0087 };
0088
0089 i2c1: i2c@fff88000 {
0090 status = "okay";
0091 };
0092
0093 watchdog@fffffd40 {
0094 status = "okay";
0095 };
0096
0097 mmc0: mmc@fff80000 {
0098 pinctrl-0 = <
0099 &pinctrl_board_mmc0
0100 &pinctrl_mmc0_slot0_clk_cmd_dat0
0101 &pinctrl_mmc0_slot0_dat1_3>;
0102 pinctrl-names = "default";
0103 status = "okay";
0104 slot@0 {
0105 reg = <0>;
0106 bus-width = <4>;
0107 cd-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>;
0108 };
0109 };
0110
0111 mmc1: mmc@fffd0000 {
0112 pinctrl-0 = <
0113 &pinctrl_board_mmc1
0114 &pinctrl_mmc1_slot0_clk_cmd_dat0
0115 &pinctrl_mmc1_slot0_dat1_3>;
0116 pinctrl-names = "default";
0117 status = "okay";
0118 slot@0 {
0119 reg = <0>;
0120 bus-width = <4>;
0121 cd-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>;
0122 wp-gpios = <&pioD 29 GPIO_ACTIVE_HIGH>;
0123 };
0124 };
0125
0126 pinctrl@fffff200 {
0127 camera_sensor {
0128 pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
0129 atmel,pins =
0130 <AT91_PIOB 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
0131 };
0132
0133 pinctrl_sensor_reset: sensor_reset-0 {
0134 atmel,pins =
0135 <AT91_PIOD 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0136 };
0137
0138 pinctrl_sensor_power: sensor_power-0 {
0139 atmel,pins =
0140 <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0141 };
0142 };
0143 mmc0 {
0144 pinctrl_board_mmc0: mmc0-board {
0145 atmel,pins =
0146 <AT91_PIOD 10 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD10 gpio CD pin pull up and deglitch */
0147 };
0148 };
0149
0150 mmc1 {
0151 pinctrl_board_mmc1: mmc1-board {
0152 atmel,pins =
0153 <AT91_PIOD 11 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH /* PD11 gpio CD pin pull up and deglitch */
0154 AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD29 gpio WP pin pull up */
0155 };
0156 };
0157
0158 pwm0 {
0159 pinctrl_pwm_leds: pwm-led {
0160 atmel,pins =
0161 <AT91_PIOD 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PD0 periph B */
0162 AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PD31 periph B */
0163 };
0164 };
0165 };
0166
0167 spi0: spi@fffa4000{
0168 status = "okay";
0169 cs-gpios = <&pioB 3 0>, <0>, <0>, <0>;
0170 flash@0 {
0171 compatible = "atmel,at45", "atmel,dataflash";
0172 spi-max-frequency = <13000000>;
0173 reg = <0>;
0174 };
0175 };
0176
0177 usb2: gadget@fff78000 {
0178 atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>;
0179 status = "okay";
0180 };
0181
0182 ac97: sound@fffac000 {
0183 status = "okay";
0184 };
0185
0186 adc0: adc@fffb0000 {
0187 pinctrl-names = "default";
0188 pinctrl-0 = <
0189 &pinctrl_adc0_ad0
0190 &pinctrl_adc0_ad1
0191 &pinctrl_adc0_ad2
0192 &pinctrl_adc0_ad3
0193 &pinctrl_adc0_ad4
0194 &pinctrl_adc0_ad5
0195 &pinctrl_adc0_ad6
0196 &pinctrl_adc0_ad7>;
0197 atmel,adc-ts-wires = <4>;
0198 status = "okay";
0199 };
0200
0201 isi@fffb4000 {
0202 pinctrl-names = "default";
0203 pinctrl-0 = <&pinctrl_isi_data_0_7>;
0204 status = "okay";
0205 port {
0206 isi_0: endpoint {
0207 remote-endpoint = <&ov2640_0>;
0208 bus-width = <8>;
0209 vsync-active = <1>;
0210 hsync-active = <1>;
0211 };
0212 };
0213 };
0214
0215 pwm0: pwm@fffb8000 {
0216 status = "okay";
0217
0218 pinctrl-names = "default";
0219 pinctrl-0 = <&pinctrl_pwm_leds>;
0220 };
0221
0222 rtc@fffffd20 {
0223 atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
0224 status = "okay";
0225 };
0226
0227 gpbr: syscon@fffffd60 {
0228 status = "okay";
0229 };
0230
0231 rtc@fffffdb0 {
0232 status = "okay";
0233 };
0234 };
0235
0236 fb0: fb@500000 {
0237 display = <&display0>;
0238 status = "okay";
0239
0240 display0: panel {
0241 bits-per-pixel = <32>;
0242 atmel,lcdcon-backlight;
0243 atmel,dmacon = <0x1>;
0244 atmel,lcdcon2 = <0x80008002>;
0245 atmel,guard-time = <9>;
0246 atmel,lcd-wiring-mode = "RGB";
0247
0248 display-timings {
0249 native-mode = <&timing0>;
0250 timing0: timing0 {
0251 clock-frequency = <9000000>;
0252 hactive = <480>;
0253 vactive = <272>;
0254 hback-porch = <1>;
0255 hfront-porch = <1>;
0256 vback-porch = <40>;
0257 vfront-porch = <1>;
0258 hsync-len = <45>;
0259 vsync-len = <1>;
0260 };
0261 };
0262 };
0263 };
0264
0265 ebi: ebi@10000000 {
0266 status = "okay";
0267
0268 nand_controller: nand-controller {
0269 status = "okay";
0270 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
0271 pinctrl-names = "default";
0272
0273 nand@3 {
0274 reg = <0x3 0x0 0x800000>;
0275 rb-gpios = <&pioC 8 GPIO_ACTIVE_HIGH>;
0276 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
0277 nand-bus-width = <8>;
0278 nand-ecc-mode = "soft";
0279 nand-on-flash-bbt;
0280 label = "atmel_nand";
0281
0282 partitions {
0283 compatible = "fixed-partitions";
0284 #address-cells = <1>;
0285 #size-cells = <1>;
0286
0287 boot@0 {
0288 label = "bootstrap/uboot/kernel";
0289 reg = <0x0 0x400000>;
0290 };
0291
0292 rootfs@400000 {
0293 label = "rootfs";
0294 reg = <0x400000 0x3C00000>;
0295 };
0296
0297 data@4000000 {
0298 label = "data";
0299 reg = <0x4000000 0xC000000>;
0300 };
0301 };
0302 };
0303 };
0304 };
0305
0306 usb0: ohci@700000 {
0307 status = "okay";
0308 num-ports = <2>;
0309 atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW
0310 &pioD 3 GPIO_ACTIVE_LOW>;
0311 };
0312
0313 usb1: ehci@800000 {
0314 status = "okay";
0315 };
0316 };
0317
0318 led-controller-1 {
0319 compatible = "gpio-leds";
0320
0321 led-1 {
0322 label = "d8";
0323 gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
0324 linux,default-trigger = "heartbeat";
0325 };
0326 };
0327
0328 led-controller-2 {
0329 compatible = "pwm-leds";
0330
0331 led-2 {
0332 label = "d6";
0333 pwms = <&pwm0 3 5000 PWM_POLARITY_INVERTED>;
0334 max-brightness = <255>;
0335 linux,default-trigger = "nand-disk";
0336 };
0337
0338 led-3 {
0339 label = "d7";
0340 pwms = <&pwm0 1 5000 PWM_POLARITY_INVERTED>;
0341 max-brightness = <255>;
0342 linux,default-trigger = "mmc0";
0343 };
0344 };
0345
0346 gpio-keys {
0347 compatible = "gpio-keys";
0348
0349 button-left-click {
0350 label = "left_click";
0351 gpios = <&pioB 6 GPIO_ACTIVE_LOW>;
0352 linux,code = <272>;
0353 wakeup-source;
0354 };
0355
0356 button-right-click {
0357 label = "right_click";
0358 gpios = <&pioB 7 GPIO_ACTIVE_LOW>;
0359 linux,code = <273>;
0360 wakeup-source;
0361 };
0362
0363 button-left {
0364 label = "Joystick Left";
0365 gpios = <&pioB 14 GPIO_ACTIVE_LOW>;
0366 linux,code = <105>;
0367 };
0368
0369 button-right {
0370 label = "Joystick Right";
0371 gpios = <&pioB 15 GPIO_ACTIVE_LOW>;
0372 linux,code = <106>;
0373 };
0374
0375 button-up {
0376 label = "Joystick Up";
0377 gpios = <&pioB 16 GPIO_ACTIVE_LOW>;
0378 linux,code = <103>;
0379 };
0380
0381 button-down {
0382 label = "Joystick Down";
0383 gpios = <&pioB 17 GPIO_ACTIVE_LOW>;
0384 linux,code = <108>;
0385 };
0386
0387 button-enter {
0388 label = "Joystick Press";
0389 gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
0390 linux,code = <28>;
0391 };
0392 };
0393 };