1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later 2724ba675SRob Herring/* 3724ba675SRob Herring * Copyright 2012 Free Electrons 4724ba675SRob Herring */ 5724ba675SRob Herring 6724ba675SRob Herring/* 7724ba675SRob Herring * The CFA-10049 is an expansion board for the CFA-10036 module, thus we 8724ba675SRob Herring * need to include the CFA-10036 DTS. 9724ba675SRob Herring */ 10724ba675SRob Herring#include "imx28-cfa10036.dts" 11724ba675SRob Herring 12724ba675SRob Herring/ { 13724ba675SRob Herring model = "Crystalfontz CFA-10049 Board"; 14724ba675SRob Herring compatible = "crystalfontz,cfa10049", "crystalfontz,cfa10036", "fsl,imx28"; 15724ba675SRob Herring 16724ba675SRob Herring i2cmux { 17724ba675SRob Herring compatible = "i2c-mux-gpio"; 18724ba675SRob Herring #address-cells = <1>; 19724ba675SRob Herring #size-cells = <0>; 20724ba675SRob Herring pinctrl-names = "default"; 21724ba675SRob Herring pinctrl-0 = <&i2cmux_pins_cfa10049>; 22724ba675SRob Herring mux-gpios = <&gpio1 22 0 &gpio1 23 0>; 23724ba675SRob Herring i2c-parent = <&i2c1>; 24724ba675SRob Herring 25724ba675SRob Herring i2c@0 { 26724ba675SRob Herring #address-cells = <1>; 27724ba675SRob Herring #size-cells = <0>; 28724ba675SRob Herring reg = <0>; 29724ba675SRob Herring 30724ba675SRob Herring adc0: nau7802@2a { 31724ba675SRob Herring compatible = "nuvoton,nau7802"; 32724ba675SRob Herring reg = <0x2a>; 33724ba675SRob Herring nuvoton,vldo = <3000>; 34724ba675SRob Herring }; 35724ba675SRob Herring }; 36724ba675SRob Herring 37724ba675SRob Herring i2c@1 { 38724ba675SRob Herring #address-cells = <1>; 39724ba675SRob Herring #size-cells = <0>; 40724ba675SRob Herring reg = <1>; 41724ba675SRob Herring 42724ba675SRob Herring adc1: nau7802@2a { 43724ba675SRob Herring compatible = "nuvoton,nau7802"; 44724ba675SRob Herring reg = <0x2a>; 45724ba675SRob Herring nuvoton,vldo = <3000>; 46724ba675SRob Herring }; 47724ba675SRob Herring }; 48724ba675SRob Herring 49724ba675SRob Herring i2c@2 { 50724ba675SRob Herring #address-cells = <1>; 51724ba675SRob Herring #size-cells = <0>; 52724ba675SRob Herring reg = <2>; 53724ba675SRob Herring 54724ba675SRob Herring adc2: nau7802@2a { 55724ba675SRob Herring compatible = "nuvoton,nau7802"; 56724ba675SRob Herring reg = <0x2a>; 57724ba675SRob Herring nuvoton,vldo = <3000>; 58724ba675SRob Herring }; 59724ba675SRob Herring }; 60724ba675SRob Herring 61724ba675SRob Herring i2c@3 { 62724ba675SRob Herring reg = <3>; 63724ba675SRob Herring #address-cells = <1>; 64724ba675SRob Herring #size-cells = <0>; 65724ba675SRob Herring 66724ba675SRob Herring pca9555: pca9555@20 { 67724ba675SRob Herring compatible = "nxp,pca9555"; 68724ba675SRob Herring pinctrl-names = "default"; 69724ba675SRob Herring pinctrl-0 = <&pca_pins_cfa10049>; 70724ba675SRob Herring interrupt-parent = <&gpio2>; 71724ba675SRob Herring interrupts = <19 0x2>; 72724ba675SRob Herring gpio-controller; 73724ba675SRob Herring #gpio-cells = <2>; 74724ba675SRob Herring interrupt-controller; 75724ba675SRob Herring #interrupt-cells = <2>; 76724ba675SRob Herring reg = <0x20>; 77724ba675SRob Herring }; 78724ba675SRob Herring }; 79724ba675SRob Herring }; 80724ba675SRob Herring 81*29e0e9b4SKrzysztof Kozlowski reg_usb1_vbus: regulator-0 { 82724ba675SRob Herring compatible = "regulator-fixed"; 83724ba675SRob Herring pinctrl-names = "default"; 84724ba675SRob Herring pinctrl-0 = <&usb_pins_cfa10049>; 85724ba675SRob Herring regulator-name = "usb1_vbus"; 86724ba675SRob Herring regulator-min-microvolt = <5000000>; 87724ba675SRob Herring regulator-max-microvolt = <5000000>; 88724ba675SRob Herring gpio = <&gpio0 7 1>; 89724ba675SRob Herring }; 90724ba675SRob Herring 91724ba675SRob Herring spi-2 { 92724ba675SRob Herring compatible = "spi-gpio"; 93724ba675SRob Herring pinctrl-names = "default"; 94724ba675SRob Herring pinctrl-0 = <&spi2_pins_cfa10049>; 95724ba675SRob Herring status = "okay"; 96724ba675SRob Herring sck-gpios = <&gpio2 16 0>; 97724ba675SRob Herring mosi-gpios = <&gpio2 17 0>; 98724ba675SRob Herring miso-gpios = <&gpio2 18 0>; 99724ba675SRob Herring cs-gpios = <&gpio3 5 0>; 100724ba675SRob Herring num-chipselects = <1>; 101724ba675SRob Herring #address-cells = <1>; 102724ba675SRob Herring #size-cells = <0>; 103724ba675SRob Herring 104724ba675SRob Herring hx8357: hx8357@0 { 105724ba675SRob Herring compatible = "himax,hx8357b", "himax,hx8357"; 106724ba675SRob Herring reg = <0>; 107724ba675SRob Herring spi-max-frequency = <100000>; 108724ba675SRob Herring spi-cpol; 109724ba675SRob Herring spi-cpha; 110724ba675SRob Herring gpios-reset = <&gpio3 30 0>; 111724ba675SRob Herring im-gpios = <&gpio5 4 0 &gpio5 5 0 &gpio5 6 0>; 112724ba675SRob Herring }; 113724ba675SRob Herring }; 114724ba675SRob Herring 115724ba675SRob Herring spi-3 { 116724ba675SRob Herring compatible = "spi-gpio"; 117724ba675SRob Herring pinctrl-names = "default"; 118724ba675SRob Herring pinctrl-0 = <&spi3_pins_cfa10049>; 119724ba675SRob Herring status = "okay"; 120724ba675SRob Herring sck-gpios = <&gpio0 24 0>; 121724ba675SRob Herring mosi-gpios = <&gpio0 28 0>; 122724ba675SRob Herring cs-gpios = <&gpio0 17 0 &gpio0 26 0 &gpio0 27 0>; 123724ba675SRob Herring num-chipselects = <3>; 124724ba675SRob Herring #address-cells = <1>; 125724ba675SRob Herring #size-cells = <0>; 126724ba675SRob Herring 127724ba675SRob Herring gpio5: gpio5@0 { 128724ba675SRob Herring compatible = "fairchild,74hc595"; 129724ba675SRob Herring gpio-controller; 130724ba675SRob Herring #gpio-cells = <2>; 131724ba675SRob Herring reg = <0>; 132724ba675SRob Herring registers-number = <2>; 133724ba675SRob Herring spi-max-frequency = <100000>; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring gpio6: gpio6@1 { 137724ba675SRob Herring compatible = "fairchild,74hc595"; 138724ba675SRob Herring gpio-controller; 139724ba675SRob Herring #gpio-cells = <2>; 140724ba675SRob Herring reg = <1>; 141724ba675SRob Herring registers-number = <4>; 142724ba675SRob Herring spi-max-frequency = <100000>; 143724ba675SRob Herring }; 144724ba675SRob Herring 145724ba675SRob Herring dac0: dh2228@2 { 146724ba675SRob Herring compatible = "rohm,dh2228fv"; 147724ba675SRob Herring reg = <2>; 148724ba675SRob Herring spi-max-frequency = <100000>; 149724ba675SRob Herring }; 150724ba675SRob Herring }; 151724ba675SRob Herring 152724ba675SRob Herring gpio-keys { 153724ba675SRob Herring compatible = "gpio-keys"; 154724ba675SRob Herring pinctrl-names = "default"; 155724ba675SRob Herring pinctrl-0 = <&rotary_btn_pins_cfa10049>; 156724ba675SRob Herring 157724ba675SRob Herring rotary-button { 158724ba675SRob Herring label = "rotary_button"; 159724ba675SRob Herring gpios = <&gpio3 26 1>; 160724ba675SRob Herring debounce-interval = <10>; 161724ba675SRob Herring linux,code = <28>; 162724ba675SRob Herring }; 163724ba675SRob Herring }; 164724ba675SRob Herring 165724ba675SRob Herring rotary { 166724ba675SRob Herring compatible = "rotary-encoder"; 167724ba675SRob Herring pinctrl-names = "default"; 168724ba675SRob Herring pinctrl-0 = <&rotary_pins_cfa10049>; 169724ba675SRob Herring gpios = <&gpio3 24 1>, <&gpio3 25 1>; 170724ba675SRob Herring linux,axis = <1>; /* REL_Y */ 171724ba675SRob Herring rotary-encoder,relative-axis; 172724ba675SRob Herring }; 173724ba675SRob Herring 174724ba675SRob Herring backlight { 175724ba675SRob Herring compatible = "pwm-backlight"; 176724ba675SRob Herring pwms = <&pwm 3 5000000>; 177724ba675SRob Herring brightness-levels = <0 4 8 16 32 64 128 255>; 178724ba675SRob Herring default-brightness-level = <6>; 179724ba675SRob Herring 180724ba675SRob Herring }; 181724ba675SRob Herring 182724ba675SRob Herring onewire { 183724ba675SRob Herring compatible = "w1-gpio"; 184724ba675SRob Herring pinctrl-names = "default"; 185724ba675SRob Herring pinctrl-0 = <&w1_gpio_pins>; 186724ba675SRob Herring status = "okay"; 187724ba675SRob Herring gpios = <&gpio1 21 0>; 188724ba675SRob Herring }; 189724ba675SRob Herring}; 190724ba675SRob Herring 191724ba675SRob Herring&i2c1 { 192724ba675SRob Herring pinctrl-names = "default"; 193724ba675SRob Herring pinctrl-0 = <&i2c1_pins_a>; 194724ba675SRob Herring status = "okay"; 195724ba675SRob Herring}; 196724ba675SRob Herring 197724ba675SRob Herring&lcdif { 198724ba675SRob Herring pinctrl-names = "default"; 199724ba675SRob Herring pinctrl-0 = <&lcdif_18bit_pins_cfa10049 200724ba675SRob Herring &lcdif_pins_cfa10049 201724ba675SRob Herring &lcdif_pins_cfa10049_pullup>; 202724ba675SRob Herring display = <&display0>; 203724ba675SRob Herring status = "okay"; 204724ba675SRob Herring 205724ba675SRob Herring display0: display0 { 206724ba675SRob Herring bits-per-pixel = <32>; 207724ba675SRob Herring bus-width = <18>; 208724ba675SRob Herring 209724ba675SRob Herring display-timings { 210724ba675SRob Herring native-mode = <&timing0>; 211724ba675SRob Herring timing0: timing0 { 212724ba675SRob Herring clock-frequency = <9216000>; 213724ba675SRob Herring hactive = <320>; 214724ba675SRob Herring vactive = <480>; 215724ba675SRob Herring hback-porch = <2>; 216724ba675SRob Herring hfront-porch = <2>; 217724ba675SRob Herring vback-porch = <2>; 218724ba675SRob Herring vfront-porch = <2>; 219724ba675SRob Herring hsync-len = <15>; 220724ba675SRob Herring vsync-len = <15>; 221724ba675SRob Herring hsync-active = <0>; 222724ba675SRob Herring vsync-active = <0>; 223724ba675SRob Herring de-active = <1>; 224724ba675SRob Herring pixelclk-active = <1>; 225724ba675SRob Herring }; 226724ba675SRob Herring }; 227724ba675SRob Herring }; 228724ba675SRob Herring}; 229724ba675SRob Herring 230724ba675SRob Herring&lradc { 231724ba675SRob Herring fsl,lradc-touchscreen-wires = <4>; 232724ba675SRob Herring status = "okay"; 233724ba675SRob Herring}; 234724ba675SRob Herring 235724ba675SRob Herring&mac0 { 236724ba675SRob Herring phy-mode = "rmii"; 237724ba675SRob Herring pinctrl-names = "default"; 238724ba675SRob Herring pinctrl-0 = <&mac0_pins_a 239724ba675SRob Herring &mac0_pins_cfa10049>; 240724ba675SRob Herring phy-reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>; 241724ba675SRob Herring phy-reset-duration = <100>; 242724ba675SRob Herring status = "okay"; 243724ba675SRob Herring}; 244724ba675SRob Herring 245724ba675SRob Herring&pinctrl { 246724ba675SRob Herring usb_pins_cfa10049: usb-10049@0 { 247724ba675SRob Herring reg = <0>; 248724ba675SRob Herring fsl,pinmux-ids = < 249724ba675SRob Herring MX28_PAD_GPMI_D07__GPIO_0_7 250724ba675SRob Herring >; 251724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 252724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 253724ba675SRob Herring fsl,pull-up = <MXS_PULL_DISABLE>; 254724ba675SRob Herring }; 255724ba675SRob Herring 256724ba675SRob Herring i2cmux_pins_cfa10049: i2cmux-10049@0 { 257724ba675SRob Herring reg = <0>; 258724ba675SRob Herring fsl,pinmux-ids = < 259724ba675SRob Herring MX28_PAD_LCD_D22__GPIO_1_22 260724ba675SRob Herring MX28_PAD_LCD_D23__GPIO_1_23 261724ba675SRob Herring >; 262724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 263724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 264724ba675SRob Herring fsl,pull-up = <MXS_PULL_DISABLE>; 265724ba675SRob Herring }; 266724ba675SRob Herring 267724ba675SRob Herring mac0_pins_cfa10049: mac0-10049@0 { 268724ba675SRob Herring reg = <0>; 269724ba675SRob Herring fsl,pinmux-ids = < 270724ba675SRob Herring MX28_PAD_SSP2_SS2__GPIO_2_21 271724ba675SRob Herring >; 272724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 273724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 274724ba675SRob Herring fsl,pull-up = <MXS_PULL_DISABLE>; 275724ba675SRob Herring }; 276724ba675SRob Herring 277724ba675SRob Herring pca_pins_cfa10049: pca-10049@0 { 278724ba675SRob Herring reg = <0>; 279724ba675SRob Herring fsl,pinmux-ids = < 280724ba675SRob Herring MX28_PAD_SSP2_SS0__GPIO_2_19 281724ba675SRob Herring >; 282724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 283724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 284724ba675SRob Herring fsl,pull-up = <MXS_PULL_ENABLE>; 285724ba675SRob Herring }; 286724ba675SRob Herring 287724ba675SRob Herring rotary_pins_cfa10049: rotary-10049@0 { 288724ba675SRob Herring reg = <0>; 289724ba675SRob Herring fsl,pinmux-ids = < 290724ba675SRob Herring MX28_PAD_I2C0_SCL__GPIO_3_24 291724ba675SRob Herring MX28_PAD_I2C0_SDA__GPIO_3_25 292724ba675SRob Herring >; 293724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 294724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 295724ba675SRob Herring fsl,pull-up = <MXS_PULL_ENABLE>; 296724ba675SRob Herring }; 297724ba675SRob Herring 298724ba675SRob Herring rotary_btn_pins_cfa10049: rotary-btn-10049@0 { 299724ba675SRob Herring reg = <0>; 300724ba675SRob Herring fsl,pinmux-ids = < 301724ba675SRob Herring MX28_PAD_SAIF1_SDATA0__GPIO_3_26 302724ba675SRob Herring >; 303724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 304724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 305724ba675SRob Herring fsl,pull-up = <MXS_PULL_ENABLE>; 306724ba675SRob Herring }; 307724ba675SRob Herring 308724ba675SRob Herring spi2_pins_cfa10049: spi2-cfa10049@0 { 309724ba675SRob Herring reg = <0>; 310724ba675SRob Herring fsl,pinmux-ids = < 311724ba675SRob Herring MX28_PAD_SSP2_SCK__GPIO_2_16 312724ba675SRob Herring MX28_PAD_SSP2_MOSI__GPIO_2_17 313724ba675SRob Herring MX28_PAD_SSP2_MISO__GPIO_2_18 314724ba675SRob Herring MX28_PAD_AUART1_TX__GPIO_3_5 315724ba675SRob Herring >; 316724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_8mA>; 317724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 318724ba675SRob Herring fsl,pull-up = <MXS_PULL_ENABLE>; 319724ba675SRob Herring }; 320724ba675SRob Herring 321724ba675SRob Herring spi3_pins_cfa10049: spi3-cfa10049@0 { 322724ba675SRob Herring reg = <0>; 323724ba675SRob Herring fsl,pinmux-ids = < 324724ba675SRob Herring MX28_PAD_GPMI_RDN__GPIO_0_24 325724ba675SRob Herring MX28_PAD_GPMI_RESETN__GPIO_0_28 326724ba675SRob Herring MX28_PAD_GPMI_CE1N__GPIO_0_17 327724ba675SRob Herring MX28_PAD_GPMI_ALE__GPIO_0_26 328724ba675SRob Herring MX28_PAD_GPMI_CLE__GPIO_0_27 329724ba675SRob Herring >; 330724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_8mA>; 331724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 332724ba675SRob Herring fsl,pull-up = <MXS_PULL_ENABLE>; 333724ba675SRob Herring }; 334724ba675SRob Herring 335724ba675SRob Herring lcdif_18bit_pins_cfa10049: lcdif-18bit@0 { 336724ba675SRob Herring reg = <0>; 337724ba675SRob Herring fsl,pinmux-ids = < 338724ba675SRob Herring MX28_PAD_LCD_D00__LCD_D0 339724ba675SRob Herring MX28_PAD_LCD_D01__LCD_D1 340724ba675SRob Herring MX28_PAD_LCD_D02__LCD_D2 341724ba675SRob Herring MX28_PAD_LCD_D03__LCD_D3 342724ba675SRob Herring MX28_PAD_LCD_D04__LCD_D4 343724ba675SRob Herring MX28_PAD_LCD_D05__LCD_D5 344724ba675SRob Herring MX28_PAD_LCD_D06__LCD_D6 345724ba675SRob Herring MX28_PAD_LCD_D07__LCD_D7 346724ba675SRob Herring MX28_PAD_LCD_D08__LCD_D8 347724ba675SRob Herring MX28_PAD_LCD_D09__LCD_D9 348724ba675SRob Herring MX28_PAD_LCD_D10__LCD_D10 349724ba675SRob Herring MX28_PAD_LCD_D11__LCD_D11 350724ba675SRob Herring MX28_PAD_LCD_D12__LCD_D12 351724ba675SRob Herring MX28_PAD_LCD_D13__LCD_D13 352724ba675SRob Herring MX28_PAD_LCD_D14__LCD_D14 353724ba675SRob Herring MX28_PAD_LCD_D15__LCD_D15 354724ba675SRob Herring MX28_PAD_LCD_D16__LCD_D16 355724ba675SRob Herring MX28_PAD_LCD_D17__LCD_D17 356724ba675SRob Herring >; 357724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 358724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 359724ba675SRob Herring fsl,pull-up = <MXS_PULL_DISABLE>; 360724ba675SRob Herring }; 361724ba675SRob Herring 362724ba675SRob Herring lcdif_pins_cfa10049: lcdif-evk@0 { 363724ba675SRob Herring reg = <0>; 364724ba675SRob Herring fsl,pinmux-ids = < 365724ba675SRob Herring MX28_PAD_LCD_RD_E__LCD_VSYNC 366724ba675SRob Herring MX28_PAD_LCD_WR_RWN__LCD_HSYNC 367724ba675SRob Herring MX28_PAD_LCD_RS__LCD_DOTCLK 368724ba675SRob Herring MX28_PAD_LCD_CS__LCD_ENABLE 369724ba675SRob Herring >; 370724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 371724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 372724ba675SRob Herring fsl,pull-up = <MXS_PULL_DISABLE>; 373724ba675SRob Herring }; 374724ba675SRob Herring 375724ba675SRob Herring lcdif_pins_cfa10049_pullup: lcdif-10049-pullup@0 { 376724ba675SRob Herring reg = <0>; 377724ba675SRob Herring fsl,pinmux-ids = < 378724ba675SRob Herring MX28_PAD_LCD_RESET__GPIO_3_30 379724ba675SRob Herring >; 380724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_4mA>; 381724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 382724ba675SRob Herring fsl,pull-up = <MXS_PULL_ENABLE>; 383724ba675SRob Herring }; 384724ba675SRob Herring 385724ba675SRob Herring w1_gpio_pins: w1-gpio@0 { 386724ba675SRob Herring reg = <0>; 387724ba675SRob Herring fsl,pinmux-ids = < 388724ba675SRob Herring MX28_PAD_LCD_D21__GPIO_1_21 389724ba675SRob Herring >; 390724ba675SRob Herring fsl,drive-strength = <MXS_DRIVE_8mA>; 391724ba675SRob Herring fsl,voltage = <MXS_VOLTAGE_HIGH>; 392724ba675SRob Herring fsl,pull-up = <MXS_PULL_DISABLE>; /* 0 will enable the keeper */ 393724ba675SRob Herring }; 394724ba675SRob Herring}; 395724ba675SRob Herring 396724ba675SRob Herring&pwm { 397724ba675SRob Herring pinctrl-names = "default"; 398724ba675SRob Herring pinctrl-0 = <&pwm3_pins_b>; 399724ba675SRob Herring status = "okay"; 400724ba675SRob Herring}; 401724ba675SRob Herring 402724ba675SRob Herring&usb1 { 403724ba675SRob Herring vbus-supply = <®_usb1_vbus>; 404724ba675SRob Herring pinctrl-0 = <&usb1_pins_a>; 405724ba675SRob Herring pinctrl-names = "default"; 406724ba675SRob Herring status = "okay"; 407724ba675SRob Herring}; 408724ba675SRob Herring 409724ba675SRob Herring&usbphy1 { 410724ba675SRob Herring status = "okay"; 411724ba675SRob Herring}; 412