1 // SPDX-License-Identifier: GPL-2.0+ 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 2 /* 3 * Device Tree file for the Kontron SMARC-sAL2 3 * Device Tree file for the Kontron SMARC-sAL28 board. 4 * 4 * 5 * Copyright (C) 2021 Michael Walle <michael@wa 5 * Copyright (C) 2021 Michael Walle <michael@walle.cc> 6 * 6 * 7 */ 7 */ 8 8 9 /dts-v1/; 9 /dts-v1/; 10 #include "fsl-ls1028a.dtsi" 10 #include "fsl-ls1028a.dtsi" 11 #include <dt-bindings/interrupt-controller/irq 11 #include <dt-bindings/interrupt-controller/irq.h> 12 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/gpio/gpio.h> 13 #include <dt-bindings/input/input.h> 13 #include <dt-bindings/input/input.h> 14 14 15 / { 15 / { 16 model = "Kontron SMARC-sAL28"; 16 model = "Kontron SMARC-sAL28"; 17 compatible = "kontron,sl28", "fsl,ls10 17 compatible = "kontron,sl28", "fsl,ls1028a"; 18 18 19 aliases { 19 aliases { 20 crypto = &crypto; 20 crypto = &crypto; 21 serial0 = &duart0; 21 serial0 = &duart0; 22 serial1 = &duart1; 22 serial1 = &duart1; 23 serial2 = &lpuart1; 23 serial2 = &lpuart1; 24 spi0 = &fspi; 24 spi0 = &fspi; 25 spi1 = &dspi2; 25 spi1 = &dspi2; 26 mmc0 = &esdhc1; 26 mmc0 = &esdhc1; 27 mmc1 = &esdhc; 27 mmc1 = &esdhc; 28 rtc0 = &rtc; 28 rtc0 = &rtc; 29 rtc1 = &ftm_alarm0; 29 rtc1 = &ftm_alarm0; 30 }; 30 }; 31 31 32 buttons0 { 32 buttons0 { 33 compatible = "gpio-keys"; 33 compatible = "gpio-keys"; 34 34 35 power-button { 35 power-button { 36 interrupts-extended = 36 interrupts-extended = <&sl28cpld_intc 37 37 4 IRQ_TYPE_EDGE_BOTH>; 38 linux,code = <KEY_POWE 38 linux,code = <KEY_POWER>; 39 label = "Power"; 39 label = "Power"; 40 }; 40 }; 41 41 42 sleep-button { 42 sleep-button { 43 interrupts-extended = 43 interrupts-extended = <&sl28cpld_intc 44 44 5 IRQ_TYPE_EDGE_BOTH>; 45 linux,code = <KEY_SLEE 45 linux,code = <KEY_SLEEP>; 46 label = "Sleep"; 46 label = "Sleep"; 47 }; 47 }; 48 }; 48 }; 49 49 50 buttons1 { 50 buttons1 { 51 compatible = "gpio-keys-polled 51 compatible = "gpio-keys-polled"; 52 poll-interval = <200>; 52 poll-interval = <200>; 53 53 54 lid-switch { 54 lid-switch { 55 linux,input-type = <EV 55 linux,input-type = <EV_SW>; 56 linux,code = <SW_LID>; 56 linux,code = <SW_LID>; 57 gpios = <&sl28cpld_gpi 57 gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>; 58 label = "Lid"; 58 label = "Lid"; 59 }; 59 }; 60 }; 60 }; 61 61 62 chosen { 62 chosen { 63 stdout-path = "serial0:115200n 63 stdout-path = "serial0:115200n8"; 64 }; 64 }; 65 }; 65 }; 66 66 67 &can0 { 67 &can0 { 68 status = "okay"; 68 status = "okay"; 69 }; 69 }; 70 70 71 &dspi2 { 71 &dspi2 { 72 status = "okay"; 72 status = "okay"; 73 }; 73 }; 74 74 75 &duart0 { 75 &duart0 { 76 status = "okay"; 76 status = "okay"; 77 }; 77 }; 78 78 79 &duart1 { 79 &duart1 { 80 status = "okay"; 80 status = "okay"; 81 }; 81 }; 82 82 83 &enetc_mdio_pf3 { 83 &enetc_mdio_pf3 { 84 phy0: ethernet-phy@5 { 84 phy0: ethernet-phy@5 { 85 reg = <0x5>; 85 reg = <0x5>; 86 eee-broken-1000t; 86 eee-broken-1000t; 87 eee-broken-100tx; 87 eee-broken-100tx; 88 }; 88 }; 89 }; 89 }; 90 90 91 &enetc_port0 { 91 &enetc_port0 { 92 phy-handle = <&phy0>; 92 phy-handle = <&phy0>; 93 phy-mode = "sgmii"; 93 phy-mode = "sgmii"; 94 managed = "in-band-status"; 94 managed = "in-band-status"; 95 nvmem-cells = <&base_mac_address 0>; << 96 nvmem-cell-names = "mac-address"; << 97 status = "okay"; 95 status = "okay"; 98 }; 96 }; 99 97 100 &esdhc { 98 &esdhc { 101 sd-uhs-sdr104; 99 sd-uhs-sdr104; 102 sd-uhs-sdr50; 100 sd-uhs-sdr50; 103 sd-uhs-sdr25; 101 sd-uhs-sdr25; 104 sd-uhs-sdr12; 102 sd-uhs-sdr12; 105 status = "okay"; 103 status = "okay"; 106 }; 104 }; 107 105 108 &esdhc1 { 106 &esdhc1 { 109 mmc-hs200-1_8v; 107 mmc-hs200-1_8v; 110 mmc-hs400-1_8v; 108 mmc-hs400-1_8v; 111 bus-width = <8>; 109 bus-width = <8>; 112 status = "okay"; 110 status = "okay"; 113 }; 111 }; 114 112 115 &fspi { 113 &fspi { 116 status = "okay"; 114 status = "okay"; 117 115 118 flash@0 { 116 flash@0 { 119 compatible = "jedec,spi-nor"; 117 compatible = "jedec,spi-nor"; 120 m25p,fast-read; 118 m25p,fast-read; 121 spi-max-frequency = <133000000 119 spi-max-frequency = <133000000>; 122 reg = <0>; 120 reg = <0>; 123 /* The following setting enabl 121 /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */ 124 spi-rx-bus-width = <2>; /* 2 S 122 spi-rx-bus-width = <2>; /* 2 SPI Rx lines */ 125 spi-tx-bus-width = <1>; /* 1 S 123 spi-tx-bus-width = <1>; /* 1 SPI Tx line */ 126 124 127 partitions { 125 partitions { 128 compatible = "fixed-pa 126 compatible = "fixed-partitions"; 129 #address-cells = <1>; 127 #address-cells = <1>; 130 #size-cells = <1>; 128 #size-cells = <1>; 131 129 132 partition@0 { 130 partition@0 { 133 reg = <0x00000 131 reg = <0x000000 0x010000>; 134 label = "rcw"; 132 label = "rcw"; 135 read-only; 133 read-only; 136 }; 134 }; 137 135 138 partition@10000 { 136 partition@10000 { 139 reg = <0x01000 137 reg = <0x010000 0x1d0000>; 140 label = "fails 138 label = "failsafe bootloader"; 141 read-only; 139 read-only; 142 }; 140 }; 143 141 144 partition@200000 { 142 partition@200000 { 145 reg = <0x20000 143 reg = <0x200000 0x010000>; 146 label = "confi 144 label = "configuration store"; 147 }; 145 }; 148 146 149 partition@210000 { 147 partition@210000 { 150 reg = <0x21000 148 reg = <0x210000 0x1d0000>; 151 label = "bootl 149 label = "bootloader"; 152 }; 150 }; 153 151 154 partition@3e0000 { 152 partition@3e0000 { 155 reg = <0x3e000 153 reg = <0x3e0000 0x020000>; 156 label = "bootl 154 label = "bootloader environment"; 157 }; << 158 }; << 159 << 160 otp-1 { << 161 compatible = "user-otp << 162 << 163 nvmem-layout { << 164 compatible = " << 165 << 166 serial_number: << 167 }; << 168 << 169 base_mac_addre << 170 #nvmem << 171 }; << 172 }; 155 }; 173 }; 156 }; 174 }; 157 }; 175 }; 158 }; 176 159 177 &ftm_alarm0 { 160 &ftm_alarm0 { 178 status = "okay"; 161 status = "okay"; 179 }; 162 }; 180 163 181 &gpio1 { 164 &gpio1 { 182 gpio-line-names = 165 gpio-line-names = 183 "", "", "", "", "", "", "", "" 166 "", "", "", "", "", "", "", "", 184 "", "", "", "", "", "", "", "" 167 "", "", "", "", "", "", "", "", 185 "", "", "", "", "", "", "TDO", 168 "", "", "", "", "", "", "TDO", "TCK", 186 "", "", "", "", "", "", "", "" 169 "", "", "", "", "", "", "", ""; 187 }; 170 }; 188 171 189 &gpio2 { 172 &gpio2 { 190 gpio-line-names = 173 gpio-line-names = 191 "", "", "", "", "", "", "TMS", 174 "", "", "", "", "", "", "TMS", "TDI", 192 "", "", "", "", "", "", "", "" 175 "", "", "", "", "", "", "", "", 193 "", "", "", "", "", "", "", "" 176 "", "", "", "", "", "", "", "", 194 "", "", "", "", "", "", "", "" 177 "", "", "", "", "", "", "", ""; 195 }; 178 }; 196 179 197 &i2c0 { 180 &i2c0 { 198 status = "okay"; 181 status = "okay"; 199 182 200 rtc: rtc@32 { 183 rtc: rtc@32 { 201 compatible = "microcrystal,rv8 184 compatible = "microcrystal,rv8803"; 202 reg = <0x32>; 185 reg = <0x32>; 203 }; 186 }; 204 187 205 sl28cpld@4a { 188 sl28cpld@4a { 206 compatible = "kontron,sl28cpld 189 compatible = "kontron,sl28cpld"; 207 reg = <0x4a>; 190 reg = <0x4a>; 208 #address-cells = <1>; 191 #address-cells = <1>; 209 #size-cells = <0>; 192 #size-cells = <0>; 210 193 211 watchdog@4 { 194 watchdog@4 { 212 compatible = "kontron, 195 compatible = "kontron,sl28cpld-wdt"; 213 reg = <0x4>; 196 reg = <0x4>; 214 kontron,assert-wdt-tim 197 kontron,assert-wdt-timeout-pin; 215 }; 198 }; 216 199 217 hwmon@b { 200 hwmon@b { 218 compatible = "kontron, 201 compatible = "kontron,sl28cpld-fan"; 219 reg = <0xb>; 202 reg = <0xb>; 220 }; 203 }; 221 204 222 sl28cpld_pwm0: pwm@c { 205 sl28cpld_pwm0: pwm@c { 223 compatible = "kontron, 206 compatible = "kontron,sl28cpld-pwm"; 224 reg = <0xc>; 207 reg = <0xc>; 225 #pwm-cells = <2>; 208 #pwm-cells = <2>; 226 }; 209 }; 227 210 228 sl28cpld_pwm1: pwm@e { 211 sl28cpld_pwm1: pwm@e { 229 compatible = "kontron, 212 compatible = "kontron,sl28cpld-pwm"; 230 reg = <0xe>; 213 reg = <0xe>; 231 #pwm-cells = <2>; 214 #pwm-cells = <2>; 232 }; 215 }; 233 216 234 sl28cpld_gpio0: gpio@10 { 217 sl28cpld_gpio0: gpio@10 { 235 compatible = "kontron, 218 compatible = "kontron,sl28cpld-gpio"; 236 reg = <0x10>; 219 reg = <0x10>; 237 interrupts-extended = 220 interrupts-extended = <&gpio2 6 238 221 IRQ_TYPE_EDGE_FALLING>; 239 222 240 gpio-controller; 223 gpio-controller; 241 #gpio-cells = <2>; 224 #gpio-cells = <2>; 242 gpio-line-names = 225 gpio-line-names = 243 "GPIO0_CAM0_PW 226 "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N", 244 "GPIO2_CAM0_RS 227 "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N", 245 "GPIO4_HDA_RST 228 "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT", 246 "GPIO6_TACHIN" 229 "GPIO6_TACHIN", "GPIO7"; 247 230 248 interrupt-controller; 231 interrupt-controller; 249 #interrupt-cells = <2> 232 #interrupt-cells = <2>; 250 }; 233 }; 251 234 252 sl28cpld_gpio1: gpio@15 { 235 sl28cpld_gpio1: gpio@15 { 253 compatible = "kontron, 236 compatible = "kontron,sl28cpld-gpio"; 254 reg = <0x15>; 237 reg = <0x15>; 255 interrupts-extended = 238 interrupts-extended = <&gpio2 6 256 239 IRQ_TYPE_EDGE_FALLING>; 257 240 258 gpio-controller; 241 gpio-controller; 259 #gpio-cells = <2>; 242 #gpio-cells = <2>; 260 gpio-line-names = 243 gpio-line-names = 261 "GPIO8", "GPIO 244 "GPIO8", "GPIO9", "GPIO10", "GPIO11", 262 "", "", "", "" 245 "", "", "", ""; 263 246 264 interrupt-controller; 247 interrupt-controller; 265 #interrupt-cells = <2> 248 #interrupt-cells = <2>; 266 }; 249 }; 267 250 268 sl28cpld_gpio2: gpio@1a { 251 sl28cpld_gpio2: gpio@1a { 269 compatible = "kontron, 252 compatible = "kontron,sl28cpld-gpo"; 270 reg = <0x1a>; 253 reg = <0x1a>; 271 254 272 gpio-controller; 255 gpio-controller; 273 #gpio-cells = <2>; 256 #gpio-cells = <2>; 274 gpio-line-names = 257 gpio-line-names = 275 "LCD0 voltage 258 "LCD0 voltage enable", 276 "LCD0 backligh 259 "LCD0 backlight enable", 277 "eMMC reset", 260 "eMMC reset", "LVDS bridge reset", 278 "LVDS bridge p 261 "LVDS bridge power-down", 279 "SDIO power en 262 "SDIO power enable", 280 "", ""; 263 "", ""; 281 }; 264 }; 282 265 283 sl28cpld_gpio3: gpio@1b { 266 sl28cpld_gpio3: gpio@1b { 284 compatible = "kontron, 267 compatible = "kontron,sl28cpld-gpi"; 285 reg = <0x1b>; 268 reg = <0x1b>; 286 269 287 gpio-controller; 270 gpio-controller; 288 #gpio-cells = <2>; 271 #gpio-cells = <2>; 289 gpio-line-names = 272 gpio-line-names = 290 "Power button" 273 "Power button", "Force recovery", "Sleep", 291 "Battery low", 274 "Battery low", "Lid state", "Charging", 292 "Charger prese 275 "Charger present", ""; 293 }; 276 }; 294 277 295 sl28cpld_intc: interrupt-contr 278 sl28cpld_intc: interrupt-controller@1c { 296 compatible = "kontron, 279 compatible = "kontron,sl28cpld-intc"; 297 reg = <0x1c>; 280 reg = <0x1c>; 298 interrupts-extended = 281 interrupts-extended = <&gpio2 6 299 282 IRQ_TYPE_EDGE_FALLING>; 300 283 301 interrupt-controller; 284 interrupt-controller; 302 #interrupt-cells = <2> 285 #interrupt-cells = <2>; 303 }; 286 }; 304 }; 287 }; 305 288 306 eeprom@50 { 289 eeprom@50 { 307 compatible = "atmel,24c32"; 290 compatible = "atmel,24c32"; 308 reg = <0x50>; 291 reg = <0x50>; 309 pagesize = <32>; 292 pagesize = <32>; 310 }; 293 }; 311 }; 294 }; 312 295 313 &i2c3 { 296 &i2c3 { 314 status = "okay"; 297 status = "okay"; 315 }; 298 }; 316 299 317 &i2c4 { 300 &i2c4 { 318 status = "okay"; 301 status = "okay"; 319 302 320 eeprom@50 { 303 eeprom@50 { 321 compatible = "atmel,24c32"; 304 compatible = "atmel,24c32"; 322 reg = <0x50>; 305 reg = <0x50>; 323 pagesize = <32>; 306 pagesize = <32>; 324 }; 307 }; 325 }; 308 }; 326 309 327 &lpuart1 { 310 &lpuart1 { 328 status = "okay"; 311 status = "okay"; 329 }; 312 }; 330 313 331 &mscc_felix_port4 { 314 &mscc_felix_port4 { 332 dsa-tag-protocol = "ocelot-8021q"; 315 dsa-tag-protocol = "ocelot-8021q"; 333 }; 316 }; 334 317 335 &mscc_felix_port5 { 318 &mscc_felix_port5 { 336 dsa-tag-protocol = "ocelot-8021q"; 319 dsa-tag-protocol = "ocelot-8021q"; 337 }; 320 }; 338 321 339 &usb0 { 322 &usb0 { 340 status = "okay"; 323 status = "okay"; 341 }; 324 }; 342 325 343 &usb1 { 326 &usb1 { 344 dr_mode = "host"; 327 dr_mode = "host"; 345 status = "okay"; 328 status = "okay"; 346 }; 329 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.