1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * at91-nattis-2-natte-2.dts - Device Tree file for the Linea/Nattis board 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2017 Axentia Technologies AB 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Author: Peter Rosin <peda@axentia.se> 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun/dts-v1/; 10*4882a593Smuzhiyun#include "at91-linea.dtsi" 11*4882a593Smuzhiyun#include "at91-natte.dtsi" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/ { 14*4882a593Smuzhiyun model = "Axentia Linea-Nattis v2 Natte v2"; 15*4882a593Smuzhiyun compatible = "axentia,nattis-2", "axentia,natte-2", "axentia,linea", 16*4882a593Smuzhiyun "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5"; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun gpio-keys { 19*4882a593Smuzhiyun compatible = "gpio-keys"; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun wakeup { 22*4882a593Smuzhiyun label = "Wakeup"; 23*4882a593Smuzhiyun linux,code = <10>; 24*4882a593Smuzhiyun wakeup-source; 25*4882a593Smuzhiyun gpios = <&pioB 27 GPIO_ACTIVE_LOW>; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun panel_reg: panel-regulator { 30*4882a593Smuzhiyun compatible = "regulator-fixed"; 31*4882a593Smuzhiyun regulator-name = "panel-VCC"; 32*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 33*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun bl_reg: backlight-regulator { 37*4882a593Smuzhiyun compatible = "regulator-fixed"; 38*4882a593Smuzhiyun regulator-name = "panel-VDD"; 39*4882a593Smuzhiyun regulator-min-microvolt = <12000000>; 40*4882a593Smuzhiyun regulator-max-microvolt = <12000000>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun panel_bl: backlight { 44*4882a593Smuzhiyun compatible = "pwm-backlight"; 45*4882a593Smuzhiyun pwms = <&hlcdc_pwm 0 100000 0>; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun brightness-levels = < 0 1 2 3 4 5 6 7 8 9 48*4882a593Smuzhiyun 10 11 12 13 14 15 16 17 18 19 49*4882a593Smuzhiyun 20 21 22 23 24 25 26 27 28 29 50*4882a593Smuzhiyun 30 31 32 33 34 35 36 37 38 39 51*4882a593Smuzhiyun 40 41 42 43 44 45 46 47 48 49 52*4882a593Smuzhiyun 50 51 52 53 54 55 56 57 58 59 53*4882a593Smuzhiyun 60 61 62 63 64 65 66 67 68 69 54*4882a593Smuzhiyun 70 71 72 73 74 75 76 77 78 79 55*4882a593Smuzhiyun 80 81 82 83 84 85 86 87 88 89 56*4882a593Smuzhiyun 90 91 92 93 94 95 96 97 98 99 57*4882a593Smuzhiyun 100>; 58*4882a593Smuzhiyun default-brightness-level = <40>; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun power-supply = <&bl_reg>; 61*4882a593Smuzhiyun enable-gpios = <&pioA 20 GPIO_ACTIVE_HIGH>; 62*4882a593Smuzhiyun pinctrl-names = "default"; 63*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_blon>; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun panel: panel { 67*4882a593Smuzhiyun compatible = "sharp,lq150x1lg11", "panel-lvds"; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun backlight = <&panel_bl>; 70*4882a593Smuzhiyun power-supply = <&panel_reg>; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun width-mm = <304>; 73*4882a593Smuzhiyun height-mm = <228>; 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun data-mapping = "jeida-18"; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun panel-timing { 78*4882a593Smuzhiyun // 1024x768 @ 60Hz (typical) 79*4882a593Smuzhiyun clock-frequency = <50000000 65000000 80000000>; 80*4882a593Smuzhiyun hactive = <1024>; 81*4882a593Smuzhiyun vactive = <768>; 82*4882a593Smuzhiyun hfront-porch = <48 88 88>; 83*4882a593Smuzhiyun hback-porch = <96 168 168>; 84*4882a593Smuzhiyun hsync-len = <32 64 64>; 85*4882a593Smuzhiyun vsync-len = <3 13 74>; 86*4882a593Smuzhiyun vfront-porch = <3 13 74>; 87*4882a593Smuzhiyun vback-porch = <3 12 74>; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun port { 91*4882a593Smuzhiyun panel_input: endpoint { 92*4882a593Smuzhiyun remote-endpoint = <&lvds_encoder_output>; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun lvds-encoder { 98*4882a593Smuzhiyun compatible = "ti,ds90c185", "lvds-encoder"; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun pinctrl-names = "default"; 101*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_lvds_prlud0 &pinctrl_lvds_hipow0>; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun ports { 104*4882a593Smuzhiyun #address-cells = <1>; 105*4882a593Smuzhiyun #size-cells = <0>; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun port@0 { 108*4882a593Smuzhiyun reg = <0>; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun lvds_encoder_input: endpoint { 111*4882a593Smuzhiyun remote-endpoint = <&hlcdc_output>; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun port@1 { 116*4882a593Smuzhiyun reg = <1>; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun lvds_encoder_output: endpoint { 119*4882a593Smuzhiyun remote-endpoint = <&panel_input>; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun sound { 126*4882a593Smuzhiyun compatible = "simple-audio-card"; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun simple-audio-card,name = "nattis-tfa9879"; 129*4882a593Smuzhiyun simple-audio-card,format = "i2s"; 130*4882a593Smuzhiyun simple-audio-card,bitclock-master = <&cpu_dai>; 131*4882a593Smuzhiyun simple-audio-card,frame-master = <&cpu_dai>; 132*4882a593Smuzhiyun simple-audio-card,widgets = "Line", "Line Out Jack"; 133*4882a593Smuzhiyun simple-audio-card,routing = "Line Out Jack", "LINEOUT"; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun cpu_dai: simple-audio-card,cpu { 136*4882a593Smuzhiyun sound-dai = <&ssc0>; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun simple-audio-card,codec { 140*4882a593Smuzhiyun sound-dai = <&>; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun}; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun&pinctrl { 146*4882a593Smuzhiyun nattis { 147*4882a593Smuzhiyun pinctrl_usba_vbus: usba_vbus { 148*4882a593Smuzhiyun atmel,pins = <AT91_PIOD 28 AT91_PERIPH_GPIO 149*4882a593Smuzhiyun AT91_PINCTRL_DEGLITCH>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun pinctrl_mmc0_cd: mmc0_cd { 153*4882a593Smuzhiyun atmel,pins = <AT91_PIOD 5 AT91_PERIPH_GPIO 154*4882a593Smuzhiyun AT91_PINCTRL_PULL_UP_DEGLITCH>; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun pinctrl_lvds_prlud0: lvds_prlud0 { 158*4882a593Smuzhiyun atmel,pins = <AT91_PIOA 21 AT91_PERIPH_GPIO 159*4882a593Smuzhiyun (AT91_PINCTRL_OUTPUT | 160*4882a593Smuzhiyun AT91_PINCTRL_OUTPUT_VAL(0))>; 161*4882a593Smuzhiyun }; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun pinctrl_lvds_hipow0: lvds_hipow0 { 164*4882a593Smuzhiyun atmel,pins = <AT91_PIOA 23 AT91_PERIPH_GPIO 165*4882a593Smuzhiyun (AT91_PINCTRL_OUTPUT | 166*4882a593Smuzhiyun AT91_PINCTRL_OUTPUT_VAL(0))>; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun pinctrl_blon: blon { 170*4882a593Smuzhiyun atmel,pins = <AT91_PIOA 20 AT91_PERIPH_GPIO 171*4882a593Smuzhiyun (AT91_PINCTRL_OUTPUT | 172*4882a593Smuzhiyun AT91_PINCTRL_OUTPUT_VAL(0))>; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun}; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun&watchdog { 178*4882a593Smuzhiyun status = "okay"; 179*4882a593Smuzhiyun}; 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun&i2c0 { 182*4882a593Smuzhiyun status = "okay"; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun clock-frequency = <100000>; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun temp@18 { 187*4882a593Smuzhiyun compatible = "nxp,se97b", "jedec,jc-42.4-temp"; 188*4882a593Smuzhiyun reg = <0x18>; 189*4882a593Smuzhiyun smbus-timeout-disable; 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun eeprom@50 { 193*4882a593Smuzhiyun compatible = "nxp,se97b", "atmel,24c02"; 194*4882a593Smuzhiyun reg = <0x50>; 195*4882a593Smuzhiyun pagesize = <16>; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun amp: amplifier@6c { 199*4882a593Smuzhiyun compatible = "nxp,tfa9879"; 200*4882a593Smuzhiyun reg = <0x6c>; 201*4882a593Smuzhiyun #sound-dai-cells = <0>; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun}; 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun&ssc0 { 206*4882a593Smuzhiyun status = "okay"; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun atmel,clk-from-rk-pin; 209*4882a593Smuzhiyun #sound-dai-cells = <0>; 210*4882a593Smuzhiyun}; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun&hlcdc { 213*4882a593Smuzhiyun status = "okay"; 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun hlcdc-display-controller { 216*4882a593Smuzhiyun pinctrl-names = "default"; 217*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>; 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun port@0 { 220*4882a593Smuzhiyun hlcdc_output: endpoint { 221*4882a593Smuzhiyun remote-endpoint = <&lvds_encoder_input>; 222*4882a593Smuzhiyun bus-width = <16>; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun }; 226*4882a593Smuzhiyun}; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun&mmc0 { 229*4882a593Smuzhiyun status = "okay"; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 232*4882a593Smuzhiyun &pinctrl_mmc0_dat1_3 233*4882a593Smuzhiyun &pinctrl_mmc0_cd>; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun slot@0 { 236*4882a593Smuzhiyun reg = <0>; 237*4882a593Smuzhiyun bus-width = <4>; 238*4882a593Smuzhiyun cd-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>; 239*4882a593Smuzhiyun cd-inverted; 240*4882a593Smuzhiyun }; 241*4882a593Smuzhiyun}; 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun&usart0 { 244*4882a593Smuzhiyun status = "okay"; 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun pinctrl-names = "default"; 247*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_usart0>; 248*4882a593Smuzhiyun atmel,use-dma-rx; 249*4882a593Smuzhiyun}; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun&nand { 252*4882a593Smuzhiyun partitions { 253*4882a593Smuzhiyun compatible = "fixed-partitions"; 254*4882a593Smuzhiyun #address-cells = <1>; 255*4882a593Smuzhiyun #size-cells = <1>; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun at91bootstrap@0 { 258*4882a593Smuzhiyun label = "at91bootstrap"; 259*4882a593Smuzhiyun reg = <0x0 0x40000>; 260*4882a593Smuzhiyun }; 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun barebox@40000 { 263*4882a593Smuzhiyun label = "barebox"; 264*4882a593Smuzhiyun reg = <0x40000 0x60000>; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun bareboxenv@c0000 { 268*4882a593Smuzhiyun label = "bareboxenv"; 269*4882a593Smuzhiyun reg = <0xc0000 0x40000>; 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun bareboxenv2@100000 { 273*4882a593Smuzhiyun label = "bareboxenv2"; 274*4882a593Smuzhiyun reg = <0x100000 0x40000>; 275*4882a593Smuzhiyun }; 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun oftree@180000 { 278*4882a593Smuzhiyun label = "oftree"; 279*4882a593Smuzhiyun reg = <0x180000 0x20000>; 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun kernel@200000 { 283*4882a593Smuzhiyun label = "kernel"; 284*4882a593Smuzhiyun reg = <0x200000 0x500000>; 285*4882a593Smuzhiyun }; 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun rootfs@800000 { 288*4882a593Smuzhiyun label = "rootfs"; 289*4882a593Smuzhiyun reg = <0x800000 0x1f800000>; 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun}; 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun&dbgu { 295*4882a593Smuzhiyun status = "okay"; 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun atmel,use-dma-rx; 298*4882a593Smuzhiyun}; 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun&usb0 { 301*4882a593Smuzhiyun status = "okay"; 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun atmel,vbus-gpio = <&pioD 28 GPIO_ACTIVE_HIGH>; 304*4882a593Smuzhiyun pinctrl-names = "default"; 305*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_usba_vbus>; 306*4882a593Smuzhiyun}; 307