1*e067379fSMarcin Niestroj/* 2*e067379fSMarcin Niestroj * Copyright (C) 2015 Jablotron s.r.o. -- http://www.jablotron.com/ 3*e067379fSMarcin Niestroj * Author: Rostislav Lisovy <lisovy@jablotron.cz> 4*e067379fSMarcin Niestroj * 5*e067379fSMarcin Niestroj * This program is free software; you can redistribute it and/or modify 6*e067379fSMarcin Niestroj * it under the terms of the GNU General Public License version 2 as 7*e067379fSMarcin Niestroj * published by the Free Software Foundation. 8*e067379fSMarcin Niestroj */ 9*e067379fSMarcin Niestroj#include "am33xx.dtsi" 10*e067379fSMarcin Niestroj#include <dt-bindings/interrupt-controller/irq.h> 11*e067379fSMarcin Niestroj 12*e067379fSMarcin Niestroj/ { 13*e067379fSMarcin Niestroj model = "Grinn AM335x ChiliSOM"; 14*e067379fSMarcin Niestroj compatible = "grinn,am335x-chilisom", "ti,am33xx"; 15*e067379fSMarcin Niestroj 16*e067379fSMarcin Niestroj cpus { 17*e067379fSMarcin Niestroj cpu@0 { 18*e067379fSMarcin Niestroj cpu0-supply = <&dcdc2_reg>; 19*e067379fSMarcin Niestroj }; 20*e067379fSMarcin Niestroj }; 21*e067379fSMarcin Niestroj 22*e067379fSMarcin Niestroj memory@80000000 { 23*e067379fSMarcin Niestroj device_type = "memory"; 24*e067379fSMarcin Niestroj reg = <0x80000000 0x20000000>; /* 512 MB */ 25*e067379fSMarcin Niestroj }; 26*e067379fSMarcin Niestroj}; 27*e067379fSMarcin Niestroj 28*e067379fSMarcin Niestroj&am33xx_pinmux { 29*e067379fSMarcin Niestroj pinctrl-names = "default"; 30*e067379fSMarcin Niestroj 31*e067379fSMarcin Niestroj i2c0_pins: pinmux_i2c0_pins { 32*e067379fSMarcin Niestroj pinctrl-single,pins = < 33*e067379fSMarcin Niestroj AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 34*e067379fSMarcin Niestroj AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 35*e067379fSMarcin Niestroj >; 36*e067379fSMarcin Niestroj }; 37*e067379fSMarcin Niestroj 38*e067379fSMarcin Niestroj nandflash_pins: nandflash_pins { 39*e067379fSMarcin Niestroj pinctrl-single,pins = < 40*e067379fSMarcin Niestroj AM33XX_IOPAD(0x800, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 41*e067379fSMarcin Niestroj AM33XX_IOPAD(0x804, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 42*e067379fSMarcin Niestroj AM33XX_IOPAD(0x808, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 43*e067379fSMarcin Niestroj AM33XX_IOPAD(0x80c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 44*e067379fSMarcin Niestroj AM33XX_IOPAD(0x810, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 45*e067379fSMarcin Niestroj AM33XX_IOPAD(0x814, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 46*e067379fSMarcin Niestroj AM33XX_IOPAD(0x818, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 47*e067379fSMarcin Niestroj AM33XX_IOPAD(0x81c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 48*e067379fSMarcin Niestroj 49*e067379fSMarcin Niestroj AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 50*e067379fSMarcin Niestroj AM33XX_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 51*e067379fSMarcin Niestroj AM33XX_IOPAD(0x890, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 52*e067379fSMarcin Niestroj AM33XX_IOPAD(0x894, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 53*e067379fSMarcin Niestroj AM33XX_IOPAD(0x898, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 54*e067379fSMarcin Niestroj AM33XX_IOPAD(0x89c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 55*e067379fSMarcin Niestroj >; 56*e067379fSMarcin Niestroj }; 57*e067379fSMarcin Niestroj}; 58*e067379fSMarcin Niestroj 59*e067379fSMarcin Niestroj&i2c0 { 60*e067379fSMarcin Niestroj pinctrl-names = "default"; 61*e067379fSMarcin Niestroj pinctrl-0 = <&i2c0_pins>; 62*e067379fSMarcin Niestroj 63*e067379fSMarcin Niestroj status = "okay"; 64*e067379fSMarcin Niestroj clock-frequency = <400000>; 65*e067379fSMarcin Niestroj 66*e067379fSMarcin Niestroj tps: tps@24 { 67*e067379fSMarcin Niestroj reg = <0x24>; 68*e067379fSMarcin Niestroj }; 69*e067379fSMarcin Niestroj 70*e067379fSMarcin Niestroj}; 71*e067379fSMarcin Niestroj 72*e067379fSMarcin Niestroj/include/ "tps65217.dtsi" 73*e067379fSMarcin Niestroj 74*e067379fSMarcin Niestroj&tps { 75*e067379fSMarcin Niestroj regulators { 76*e067379fSMarcin Niestroj dcdc1_reg: regulator@0 { 77*e067379fSMarcin Niestroj regulator-name = "vdds_dpr"; 78*e067379fSMarcin Niestroj regulator-always-on; 79*e067379fSMarcin Niestroj }; 80*e067379fSMarcin Niestroj 81*e067379fSMarcin Niestroj dcdc2_reg: regulator@1 { 82*e067379fSMarcin Niestroj /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 83*e067379fSMarcin Niestroj regulator-name = "vdd_mpu"; 84*e067379fSMarcin Niestroj regulator-min-microvolt = <925000>; 85*e067379fSMarcin Niestroj regulator-max-microvolt = <1325000>; 86*e067379fSMarcin Niestroj regulator-boot-on; 87*e067379fSMarcin Niestroj regulator-always-on; 88*e067379fSMarcin Niestroj }; 89*e067379fSMarcin Niestroj 90*e067379fSMarcin Niestroj dcdc3_reg: regulator@2 { 91*e067379fSMarcin Niestroj /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 92*e067379fSMarcin Niestroj regulator-name = "vdd_core"; 93*e067379fSMarcin Niestroj regulator-min-microvolt = <925000>; 94*e067379fSMarcin Niestroj regulator-max-microvolt = <1150000>; 95*e067379fSMarcin Niestroj regulator-boot-on; 96*e067379fSMarcin Niestroj regulator-always-on; 97*e067379fSMarcin Niestroj }; 98*e067379fSMarcin Niestroj 99*e067379fSMarcin Niestroj ldo1_reg: regulator@3 { 100*e067379fSMarcin Niestroj regulator-name = "vio,vrtc,vdds"; 101*e067379fSMarcin Niestroj regulator-boot-on; 102*e067379fSMarcin Niestroj regulator-always-on; 103*e067379fSMarcin Niestroj }; 104*e067379fSMarcin Niestroj 105*e067379fSMarcin Niestroj ldo2_reg: regulator@4 { 106*e067379fSMarcin Niestroj regulator-name = "vdd_3v3aux"; 107*e067379fSMarcin Niestroj regulator-boot-on; 108*e067379fSMarcin Niestroj regulator-always-on; 109*e067379fSMarcin Niestroj }; 110*e067379fSMarcin Niestroj 111*e067379fSMarcin Niestroj ldo3_reg: regulator@5 { 112*e067379fSMarcin Niestroj regulator-name = "vdd_1v8"; 113*e067379fSMarcin Niestroj regulator-boot-on; 114*e067379fSMarcin Niestroj regulator-always-on; 115*e067379fSMarcin Niestroj }; 116*e067379fSMarcin Niestroj 117*e067379fSMarcin Niestroj ldo4_reg: regulator@6 { 118*e067379fSMarcin Niestroj regulator-name = "vdd_3v3d"; 119*e067379fSMarcin Niestroj regulator-boot-on; 120*e067379fSMarcin Niestroj regulator-always-on; 121*e067379fSMarcin Niestroj }; 122*e067379fSMarcin Niestroj }; 123*e067379fSMarcin Niestroj}; 124*e067379fSMarcin Niestroj 125*e067379fSMarcin Niestroj&rtc { 126*e067379fSMarcin Niestroj system-power-controller; 127*e067379fSMarcin Niestroj 128*e067379fSMarcin Niestroj pinctrl-0 = <&ext_wakeup>; 129*e067379fSMarcin Niestroj pinctrl-names = "default"; 130*e067379fSMarcin Niestroj 131*e067379fSMarcin Niestroj ext_wakeup: ext-wakeup { 132*e067379fSMarcin Niestroj pins = "ext_wakeup0"; 133*e067379fSMarcin Niestroj input-enable; 134*e067379fSMarcin Niestroj }; 135*e067379fSMarcin Niestroj}; 136*e067379fSMarcin Niestroj 137*e067379fSMarcin Niestroj/* NAND Flash */ 138*e067379fSMarcin Niestroj&elm { 139*e067379fSMarcin Niestroj status = "okay"; 140*e067379fSMarcin Niestroj}; 141*e067379fSMarcin Niestroj 142*e067379fSMarcin Niestroj&gpmc { 143*e067379fSMarcin Niestroj status = "okay"; 144*e067379fSMarcin Niestroj pinctrl-names = "default"; 145*e067379fSMarcin Niestroj pinctrl-0 = <&nandflash_pins>; 146*e067379fSMarcin Niestroj ranges = <0 0 0x08000000 0x01000000>; /* CS0 0 @addr 0x08000000, size 0x01000000 */ 147*e067379fSMarcin Niestroj nand@0,0 { 148*e067379fSMarcin Niestroj compatible = "ti,omap2-nand"; 149*e067379fSMarcin Niestroj reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 150*e067379fSMarcin Niestroj interrupt-parent = <&gpmc>; 151*e067379fSMarcin Niestroj interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ 152*e067379fSMarcin Niestroj <1 IRQ_TYPE_NONE>; /* termcount */ 153*e067379fSMarcin Niestroj rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */ 154*e067379fSMarcin Niestroj ti,nand-ecc-opt = "bch8"; 155*e067379fSMarcin Niestroj ti,elm-id = <&elm>; 156*e067379fSMarcin Niestroj nand-bus-width = <8>; 157*e067379fSMarcin Niestroj gpmc,device-width = <1>; 158*e067379fSMarcin Niestroj gpmc,sync-clk-ps = <0>; 159*e067379fSMarcin Niestroj gpmc,cs-on-ns = <0>; 160*e067379fSMarcin Niestroj gpmc,cs-rd-off-ns = <44>; 161*e067379fSMarcin Niestroj gpmc,cs-wr-off-ns = <44>; 162*e067379fSMarcin Niestroj gpmc,adv-on-ns = <6>; 163*e067379fSMarcin Niestroj gpmc,adv-rd-off-ns = <34>; 164*e067379fSMarcin Niestroj gpmc,adv-wr-off-ns = <44>; 165*e067379fSMarcin Niestroj gpmc,we-on-ns = <0>; 166*e067379fSMarcin Niestroj gpmc,we-off-ns = <40>; 167*e067379fSMarcin Niestroj gpmc,oe-on-ns = <0>; 168*e067379fSMarcin Niestroj gpmc,oe-off-ns = <54>; 169*e067379fSMarcin Niestroj gpmc,access-ns = <64>; 170*e067379fSMarcin Niestroj gpmc,rd-cycle-ns = <82>; 171*e067379fSMarcin Niestroj gpmc,wr-cycle-ns = <82>; 172*e067379fSMarcin Niestroj gpmc,bus-turnaround-ns = <0>; 173*e067379fSMarcin Niestroj gpmc,cycle2cycle-delay-ns = <0>; 174*e067379fSMarcin Niestroj gpmc,clk-activation-ns = <0>; 175*e067379fSMarcin Niestroj gpmc,wr-access-ns = <40>; 176*e067379fSMarcin Niestroj gpmc,wr-data-mux-bus-ns = <0>; 177*e067379fSMarcin Niestroj }; 178*e067379fSMarcin Niestroj}; 179