/* * support for the bosch am335x based shc c3 board * * Copyright, C) 2015 Heiko Schocher * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; #include "am33xx.dtsi" #include / { model = "Bosch SHC"; compatible = "ti,am335x-shc", "ti,am335x-bone", "ti,am33xx"; aliases { mmcblk0 = &mmc1; mmcblk1 = &mmc2; }; cpus { cpu@0 { /* * To consider voltage drop between PMIC and SoC, * tolerance value is reduced to 2% from 4% and * voltage value is increased as a precaution. */ operating-points = < /* kHz uV */ 594000 1225000 294000 1125000 >; voltage-tolerance = <2>; /* 2 percentage */ cpu0-supply = <&dcdc2_reg>; }; }; gpio_keys { compatible = "gpio-keys"; back_button { label = "Back Button"; gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; linux,code = ; debounce-interval = <1000>; wakeup-source; }; front_button { label = "Front Button"; gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>; linux,code = ; debounce-interval = <1000>; wakeup-source; }; }; leds { pinctrl-names = "default"; pinctrl-0 = <&user_leds_s0>; compatible = "gpio-leds"; led1 { label = "shc:power:red"; gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led2 { label = "shc:power:bl"; gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; linux,default-trigger = "timer"; default-state = "on"; }; led3 { label = "shc:lan:red"; gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led4 { label = "shc:lan:bl"; gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led5 { label = "shc:cloud:red"; gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led6 { label = "shc:cloud:bl"; gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; default-state = "off"; }; }; memory@80000000 { device_type = "memory"; reg = <0x80000000 0x20000000>; /* 512 MB */ }; vmmcsd_fixed: fixedregulator0 { compatible = "regulator-fixed"; regulator-name = "vmmcsd_fixed"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; }; &aes { status = "okay"; }; &cppi41dma { status = "okay"; }; &davinci_mdio { pinctrl-names = "default", "sleep"; pinctrl-0 = <&davinci_mdio_default>; pinctrl-1 = <&davinci_mdio_sleep>; status = "okay"; ethernetphy0: ethernet-phy@0 { reg = <0>; smsc,disable-energy-detect; }; }; &epwmss1 { status = "okay"; ehrpwm1: pwm@48302200 { pinctrl-names = "default"; pinctrl-0 = <&ehrpwm1_pins>; status = "okay"; }; }; &gpio1 { hmtc_rst { gpio-hog; gpios = <24 GPIO_ACTIVE_LOW>; output-high; line-name = "homematic_reset"; }; hmtc_prog { gpio-hog; gpios = <27 GPIO_ACTIVE_LOW>; output-high; line-name = "homematic_program"; }; }; &gpio3 { zgb_rst { gpio-hog; gpios = <18 GPIO_ACTIVE_LOW>; output-low; line-name = "zigbee_reset"; }; zgb_boot { gpio-hog; gpios = <19 GPIO_ACTIVE_HIGH>; output-high; line-name = "zigbee_boot"; }; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; clock-frequency = <400000>; tps: tps@24 { reg = <0x24>; }; at24@50 { compatible = "atmel,24c32"; pagesize = <32>; reg = <0x50>; }; pcf8563@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; }; &mac { pinctrl-names = "default", "sleep"; pinctrl-0 = <&cpsw_default>; pinctrl-1 = <&cpsw_sleep>; status = "okay"; slaves = <1>; cpsw_emac0: slave@4a100200 { phy_id = <&davinci_mdio>, <0>; phy-mode = "mii"; phy-handle = <ðernetphy0>; }; }; &mmc1 { pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; bus-width = <0x4>; cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; cd-inverted; max-frequency = <26000000>; vmmc-supply = <&vmmcsd_fixed>; status = "okay"; }; &mmc2 { pinctrl-names = "default"; pinctrl-0 = <&emmc_pins>; bus-width = <8>; max-frequency = <26000000>; sd-uhs-sdr25; vmmc-supply = <&vmmcsd_fixed>; status = "okay"; }; &mmc3 { pinctrl-names = "default"; pinctrl-0 = <&mmc3_pins>; bus-width = <4>; cap-power-off-card; max-frequency = <26000000>; sd-uhs-sdr25; vmmc-supply = <&vmmcsd_fixed>; status = "okay"; }; &rtc { ti,no-init; }; &sham { status = "okay"; }; &tps { compatible = "ti,tps65217"; ti,pmic-shutdown-controller; regulators { #address-cells = <1>; #size-cells = <0>; dcdc1_reg: regulator@0 { reg = <0>; regulator-name = "vdds_dpr"; regulator-compatible = "dcdc1"; regulator-min-microvolt = <1300000>; regulator-max-microvolt = <1450000>; regulator-boot-on; regulator-always-on; }; dcdc2_reg: regulator@1 { reg = <1>; /* * VDD_MPU voltage limits 0.95V - 1.26V with * +/-4% tolerance */ regulator-compatible = "dcdc2"; regulator-name = "vdd_mpu"; regulator-min-microvolt = <925000>; regulator-max-microvolt = <1375000>; regulator-boot-on; regulator-always-on; regulator-ramp-delay = <70000>; }; dcdc3_reg: regulator@2 { reg = <2>; /* * VDD_CORE voltage limits 0.95V - 1.1V with * +/-4% tolerance */ regulator-name = "vdd_core"; regulator-compatible = "dcdc3"; regulator-min-microvolt = <925000>; regulator-max-microvolt = <1125000>; regulator-boot-on; regulator-always-on; }; ldo1_reg: regulator@3 { reg = <3>; regulator-name = "vio,vrtc,vdds"; regulator-compatible = "ldo1"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo2_reg: regulator@4 { reg = <4>; regulator-name = "vdd_3v3aux"; regulator-compatible = "ldo2"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; ldo3_reg: regulator@5 { reg = <5>; regulator-name = "vdd_1v8"; regulator-compatible = "ldo3"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo4_reg: regulator@6 { reg = <6>; regulator-name = "vdd_3v3a"; regulator-compatible = "ldo4"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; }; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>; status = "okay"; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; status = "okay"; }; &uart2 { pinctrl-names = "default"; pinctrl-0 = <&uart2_pins>; status = "okay"; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; status = "okay"; }; &usb { status = "okay"; }; &usb_ctrl_mod { status = "okay"; }; &usb1_phy { status = "okay"; }; &usb1 { status = "okay"; dr_mode = "host"; }; &am33xx_pinmux { pinctrl-names = "default"; pinctrl-0 = <&clkout2_pin>; clkout2_pin: pinmux_clkout2_pin { pinctrl-single,pins = < /* xdma_event_intr1.clkout2 */ AM33XX_IOPAD(0x9b4, PIN_INPUT | MUX_MODE6) >; }; cpsw_default: cpsw_default { pinctrl-single,pins = < /* Slave 1 */ AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE0) AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE0) >; }; cpsw_sleep: cpsw_sleep { pinctrl-single,pins = < /* Slave 1 reset value */ AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; davinci_mdio_default: davinci_mdio_default { pinctrl-single,pins = < /* mdio_data.mdio_data */ AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_clk.mdio_clk */ AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) >; }; davinci_mdio_sleep: davinci_mdio_sleep { pinctrl-single,pins = < /* MDIO reset value */ AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; ehrpwm1_pins: pinmux_ehrpwm1 { pinctrl-single,pins = < AM33XX_IOPAD(0x84c, PIN_OUTPUT | MUX_MODE6) /* gpmc_a3.gpio1_19 */ >; }; emmc_pins: pinmux_emmc_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x880, PIN_INPUT | MUX_MODE2) AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) >; }; i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x988, PIN_INPUT | MUX_MODE0) AM33XX_IOPAD(0x98c, PIN_INPUT | MUX_MODE0) >; }; mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE5) >; }; mmc3_pins: pinmux_mmc3_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x830, PIN_INPUT | MUX_MODE3) AM33XX_IOPAD(0x834, PIN_INPUT | MUX_MODE3) AM33XX_IOPAD(0x838, PIN_INPUT | MUX_MODE3) AM33XX_IOPAD(0x83c, PIN_INPUT | MUX_MODE3) AM33XX_IOPAD(0x888, PIN_INPUT | MUX_MODE3) AM33XX_IOPAD(0x88c, PIN_INPUT | MUX_MODE3) >; }; uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x968, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x96c, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x970, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0) >; }; uart1_pins: pinmux_uart1 { pinctrl-single,pins = < AM33XX_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE0) AM33XX_IOPAD(0x97C, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE0) AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0) >; }; uart2_pins: pinmux_uart2_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) >; }; uart4_pins: pinmux_uart4_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6) AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE6) >; }; user_leds_s0: user_leds_s0 { pinctrl-single,pins = < AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x840, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x844, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLUP | MUX_MODE7) AM33XX_IOPAD(0x860, PIN_INPUT | MUX_MODE7) AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7) AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7) AM33XX_IOPAD(0x86c, PIN_INPUT | MUX_MODE7) AM33XX_IOPAD(0x878, PIN_OUTPUT_PULLUP | MUX_MODE7) AM33XX_IOPAD(0x87c, PIN_INPUT | MUX_MODE7) AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x894, PIN_INPUT | MUX_MODE7) AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x958, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x95c, PIN_OUTPUT | MUX_MODE7) AM33XX_IOPAD(0x964, PIN_OUTPUT_PULLUP | MUX_MODE7) AM33XX_IOPAD(0x9a0, PIN_OUTPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x9a4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x9a8, PIN_INPUT_PULLDOWN | MUX_MODE7) AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE7) >; }; };