// Copyright 2013 // Charles Steinkuehler // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA /dts-v1/; /plugin/; / { compatible = "ti,beaglebone"; /* identification */ part-number = "NOEMMC"; version = "00A0"; /* state the resources this cape uses */ exclusive-use = "P8.3", /* emmc */ "P8.4", /* emmc */ "P8.5", /* emmc */ "P8.6", /* emmc */ "P8.20", /* emmc */ "P8.21", /* emmc */ "P8.22", /* emmc */ "P8.23", /* emmc */ "P8.24", /* emmc */ "P8.25"; /* emmc */ fragment@0 { target = <&am33xx_pinmux>; __overlay__ { /************************/ /* P8 Header */ /************************/ /* P8_01 GND */ /* P8_02 GND */ /* P8_03 (ZCZ ball R9 ) emmc */ P8_03_default_pin: pinmux_P8_03_default_pin { pinctrl-single,pins = <0x018 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_03_gpio_pin: pinmux_P8_03_gpio_pin { pinctrl-single,pins = <0x018 0x2F>; }; /* Mode 7, RxActive */ P8_03_gpio_pu_pin: pinmux_P8_03_gpio_pu_pin { pinctrl-single,pins = <0x018 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_03_gpio_pd_pin: pinmux_P8_03_gpio_pd_pin { pinctrl-single,pins = <0x018 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_04 (ZCZ ball T9 ) emmc */ P8_04_default_pin: pinmux_P8_04_default_pin { pinctrl-single,pins = <0x01c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_04_gpio_pin: pinmux_P8_04_gpio_pin { pinctrl-single,pins = <0x01c 0x2F>; }; /* Mode 7, RxActive */ P8_04_gpio_pu_pin: pinmux_P8_04_gpio_pu_pin { pinctrl-single,pins = <0x01c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_04_gpio_pd_pin: pinmux_P8_04_gpio_pd_pin { pinctrl-single,pins = <0x01c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_05 (ZCZ ball R8 ) emmc */ P8_05_default_pin: pinmux_P8_05_default_pin { pinctrl-single,pins = <0x008 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_05_gpio_pin: pinmux_P8_05_gpio_pin { pinctrl-single,pins = <0x008 0x2F>; }; /* Mode 7, RxActive */ P8_05_gpio_pu_pin: pinmux_P8_05_gpio_pu_pin { pinctrl-single,pins = <0x008 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_05_gpio_pd_pin: pinmux_P8_05_gpio_pd_pin { pinctrl-single,pins = <0x008 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_06 (ZCZ ball T8 ) emmc */ P8_06_default_pin: pinmux_P8_06_default_pin { pinctrl-single,pins = <0x00c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_06_gpio_pin: pinmux_P8_06_gpio_pin { pinctrl-single,pins = <0x00c 0x2F>; }; /* Mode 7, RxActive */ P8_06_gpio_pu_pin: pinmux_P8_06_gpio_pu_pin { pinctrl-single,pins = <0x00c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_06_gpio_pd_pin: pinmux_P8_06_gpio_pd_pin { pinctrl-single,pins = <0x00c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_20 (ZCZ ball V9 ) emmc */ P8_20_default_pin: pinmux_P8_20_default_pin { pinctrl-single,pins = <0x084 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_20_gpio_pin: pinmux_P8_20_gpio_pin { pinctrl-single,pins = <0x084 0x2F>; }; /* Mode 7, RxActive */ P8_20_gpio_pu_pin: pinmux_P8_20_gpio_pu_pin { pinctrl-single,pins = <0x084 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_20_gpio_pd_pin: pinmux_P8_20_gpio_pd_pin { pinctrl-single,pins = <0x084 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_20_pruout_pin: pinmux_P8_20_pruout_pin { pinctrl-single,pins = <0x084 0x25>; }; /* Mode 5, Pull-Down, RxActive */ P8_20_pruin_pin: pinmux_P8_20_pruin_pin { pinctrl-single,pins = <0x084 0x26>; }; /* Mode 6, Pull-Down, RxActive */ /* P8_21 (ZCZ ball U9 ) emmc */ P8_21_default_pin: pinmux_P8_21_default_pin { pinctrl-single,pins = <0x080 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_21_gpio_pin: pinmux_P8_21_gpio_pin { pinctrl-single,pins = <0x080 0x2F>; }; /* Mode 7, RxActive */ P8_21_gpio_pu_pin: pinmux_P8_21_gpio_pu_pin { pinctrl-single,pins = <0x080 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_21_gpio_pd_pin: pinmux_P8_21_gpio_pd_pin { pinctrl-single,pins = <0x080 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_21_pruout_pin: pinmux_P8_21_pruout_pin { pinctrl-single,pins = <0x080 0x25>; }; /* Mode 5, Pull-Down, RxActive */ P8_21_pruin_pin: pinmux_P8_21_pruin_pin { pinctrl-single,pins = <0x080 0x26>; }; /* Mode 6, Pull-Down, RxActive */ /* P8_22 (ZCZ ball V8 ) emmc */ P8_22_default_pin: pinmux_P8_22_default_pin { pinctrl-single,pins = <0x014 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_22_gpio_pin: pinmux_P8_22_gpio_pin { pinctrl-single,pins = <0x014 0x2F>; }; /* Mode 7, RxActive */ P8_22_gpio_pu_pin: pinmux_P8_22_gpio_pu_pin { pinctrl-single,pins = <0x014 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_22_gpio_pd_pin: pinmux_P8_22_gpio_pd_pin { pinctrl-single,pins = <0x014 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_23 (ZCZ ball U8 ) emmc */ P8_23_default_pin: pinmux_P8_23_default_pin { pinctrl-single,pins = <0x010 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_23_gpio_pin: pinmux_P8_23_gpio_pin { pinctrl-single,pins = <0x010 0x2F>; }; /* Mode 7, RxActive */ P8_23_gpio_pu_pin: pinmux_P8_23_gpio_pu_pin { pinctrl-single,pins = <0x010 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_23_gpio_pd_pin: pinmux_P8_23_gpio_pd_pin { pinctrl-single,pins = <0x010 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_24 (ZCZ ball V7 ) emmc */ P8_24_default_pin: pinmux_P8_24_default_pin { pinctrl-single,pins = <0x004 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_24_gpio_pin: pinmux_P8_24_gpio_pin { pinctrl-single,pins = <0x004 0x2F>; }; /* Mode 7, RxActive */ P8_24_gpio_pu_pin: pinmux_P8_24_gpio_pu_pin { pinctrl-single,pins = <0x004 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_24_gpio_pd_pin: pinmux_P8_24_gpio_pd_pin { pinctrl-single,pins = <0x004 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_25 (ZCZ ball U7 ) emmc */ P8_25_default_pin: pinmux_P8_25_default_pin { pinctrl-single,pins = <0x000 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_25_gpio_pin: pinmux_P8_25_gpio_pin { pinctrl-single,pins = <0x000 0x2F>; }; /* Mode 7, RxActive */ P8_25_gpio_pu_pin: pinmux_P8_25_gpio_pu_pin { pinctrl-single,pins = <0x000 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_25_gpio_pd_pin: pinmux_P8_25_gpio_pd_pin { pinctrl-single,pins = <0x000 0x27>; }; /* Mode 7, Pull-Down, RxActive */ }; }; /************************/ /* Pin Multiplexing */ /************************/ fragment@1 { target = <&ocp>; __overlay__ { /************************/ /* P8 Header */ /************************/ P8_03_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_03_default_pin>; pinctrl-1 = <&P8_03_gpio_pin>; pinctrl-2 = <&P8_03_gpio_pu_pin>; pinctrl-3 = <&P8_03_gpio_pd_pin>; }; P8_04_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_04_default_pin>; pinctrl-1 = <&P8_04_gpio_pin>; pinctrl-2 = <&P8_04_gpio_pu_pin>; pinctrl-3 = <&P8_04_gpio_pd_pin>; }; P8_05_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_05_default_pin>; pinctrl-1 = <&P8_05_gpio_pin>; pinctrl-2 = <&P8_05_gpio_pu_pin>; pinctrl-3 = <&P8_05_gpio_pd_pin>; }; P8_06_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_06_default_pin>; pinctrl-1 = <&P8_06_gpio_pin>; pinctrl-2 = <&P8_06_gpio_pu_pin>; pinctrl-3 = <&P8_06_gpio_pd_pin>; }; P8_20_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin"; pinctrl-0 = <&P8_20_default_pin>; pinctrl-1 = <&P8_20_gpio_pin>; pinctrl-2 = <&P8_20_gpio_pu_pin>; pinctrl-3 = <&P8_20_gpio_pd_pin>; pinctrl-4 = <&P8_20_pruout_pin>; pinctrl-5 = <&P8_20_pruin_pin>; }; P8_21_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin"; pinctrl-0 = <&P8_21_default_pin>; pinctrl-1 = <&P8_21_gpio_pin>; pinctrl-2 = <&P8_21_gpio_pu_pin>; pinctrl-3 = <&P8_21_gpio_pd_pin>; pinctrl-4 = <&P8_21_pruout_pin>; pinctrl-5 = <&P8_21_pruin_pin>; }; P8_22_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_22_default_pin>; pinctrl-1 = <&P8_22_gpio_pin>; pinctrl-2 = <&P8_22_gpio_pu_pin>; pinctrl-3 = <&P8_22_gpio_pd_pin>; }; P8_23_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_23_default_pin>; pinctrl-1 = <&P8_23_gpio_pin>; pinctrl-2 = <&P8_23_gpio_pu_pin>; pinctrl-3 = <&P8_23_gpio_pd_pin>; }; P8_24_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_24_default_pin>; pinctrl-1 = <&P8_24_gpio_pin>; pinctrl-2 = <&P8_24_gpio_pu_pin>; pinctrl-3 = <&P8_24_gpio_pd_pin>; }; P8_25_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd"; pinctrl-0 = <&P8_25_default_pin>; pinctrl-1 = <&P8_25_gpio_pin>; pinctrl-2 = <&P8_25_gpio_pu_pin>; pinctrl-3 = <&P8_25_gpio_pd_pin>; }; }; }; fragment@2 { target = <&ocp>; __overlay__ { // !!!WARNING!!! // gpio-of-helper &gpio pointers are off-by-one vs. the hardware: // hardware GPIO bank 0 = &gpio1 cape-universal { compatible = "gpio-of-helper"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <>; P8_03 { gpio-name = "P8_03"; gpio = <&gpio2 6 0>; input; dir-changeable; }; P8_04 { gpio-name = "P8_04"; gpio = <&gpio2 7 0>; input; dir-changeable; }; P8_05 { gpio-name = "P8_05"; gpio = <&gpio2 2 0>; input; dir-changeable; }; P8_06 { gpio-name = "P8_06"; gpio = <&gpio2 3 0>; input; dir-changeable; }; P8_20 { gpio-name = "P8_20"; gpio = <&gpio2 31 0>; input; dir-changeable; }; P8_21 { gpio-name = "P8_21"; gpio = <&gpio2 30 0>; input; dir-changeable; }; P8_22 { gpio-name = "P8_22"; gpio = <&gpio2 5 0>; input; dir-changeable; }; P8_23 { gpio-name = "P8_23"; gpio = <&gpio2 4 0>; input; dir-changeable; }; P8_24 { gpio-name = "P8_24"; gpio = <&gpio2 1 0>; input; dir-changeable; }; P8_25 { gpio-name = "P8_25"; gpio = <&gpio2 0 0>; input; dir-changeable; }; }; }; }; };