/* * Copyright (C) 2013 * * 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/; /plugin/; / { compatible = "ti,beaglebone", "ti,beaglebone-black"; /* identification */ part-number = "BB-SPEAKJET"; version = "00A0"; /* state the resources this cape uses */ exclusive-use = /* the pin header uses */ "P9.11", /* E0 gpio0_30 */ "P9.12", /* E1 gpio1_28 */ "P9.13", /* E2 gpio0_31 */ "P9.14", /* E3 gpio1_18 */ "P9.15", /* E4 gpio1_16 */ "P9.16", /* E5 gpio1_19 */ "P8.19", /* E6 gpio0_22 */ "P8.13", /* E7 gpio0_23 */ "P9.17", /* RDY gpio0_5 */ "P9.18", /* SPK gpio0_4 */ "P9.21", /* uart2_txd */ "P9.22", /* BHF gpio0_2 */ /* the hardware IP uses */ "gpio0_30", "gpio1_28", "gpio0_31", "gpio1_18", "gpio1_16", "gpio0_22", "gpio0_23", "gpio0_5", "gpio0_4", "gpio0_2", "uart2"; fragment@0 { target = <&am33xx_pinmux>; __overlay__ { gpio_helper_pins: pinmux_gpio_helper_pins { pinctrl-single,pins = < 0x070 0x0f /* P9 11 GPIO0_30 | MODE7 | OUTPUT | E0 */ 0x078 0x0f /* P9 12 GPIO1_28 | MODE7 | OUTPUT | E1 */ 0x074 0x0f /* P9 13 GPIO0_31 | MODE7 | OUTPUT | E2 */ 0x048 0x0f /* P9 14 GPIO1_18 | MODE7 | OUTPUT | E3 */ 0x040 0x0f /* P9 15 GPIO1_16 | MODE7 | OUTPUT | E4 */ 0x04c 0x0f /* P9 16 GPIO1_19 | MODE7 | OUTPUT | E5 */ 0x020 0x0f /* P8 19 GPIO0_22 | MODE7 | OUTPUT | E6 */ 0x024 0x0f /* P8 13 GPIO0_23 | MODE7 | OUTPUT | E7 */ 0x15c 0x2f /* P9 17 GPIO0_5 | MODE7 | INPUT */ 0x158 0x2f /* P9 18 GPIO0_4 | MODE7 | INPUT */ 0x150 0x2f /* P9 22 GPIO0_2 | MODE7 | INPUT */ >; }; bb_uart2_pins: pinmux_bb_uart2_pins { pinctrl-single,pins = < 0x154 0x01 /* spi0_d0.uart2_txd | MODE1 */ >; }; }; }; fragment@1 { target = <&ocp>; __overlay__ { gpio_helper { compatible = "gpio-of-helper"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&gpio_helper_pins>; /* declare your gpios */ E0 { gpio-name = "E0"; gpio = <&gpio1 30 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E1 { gpio-name = "E1"; gpio = <&gpio2 28 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E2 { gpio-name = "E2"; gpio = <&gpio1 31 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E3 { gpio-name = "E3"; gpio = <&gpio2 18 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E4 { gpio-name = "E4"; gpio = <&gpio2 16 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E5 { gpio-name = "E5"; gpio = <&gpio2 19 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E6 { gpio-name = "E6"; gpio = <&gpio1 22 0x00>; /* gpio4 is gpio3 */ output; init-low; }; E7 { gpio-name = "E7"; gpio = <&gpio1 23 0x00>; /* gpio4 is gpio3 */ output; init-low; }; ready { gpio-name = "ready"; gpio = <&gpio1 5 0x00>; /* gpio4 is gpio3 */ input; count-rising-edge; count-falling-edge; }; speaking { gpio-name = "speaking"; gpio = <&gpio1 4 0x00>; /* gpio4 is gpio3 */ input; count-rising-edge; count-falling-edge; }; bhf { /* Buffer Half Full */ gpio-name = "bhf"; gpio = <&gpio1 2 0x00>; /* gpio4 is gpio3 */ input; count-rising-edge; count-falling-edge; }; }; }; }; fragment@2 { target = <&uart3>; /* really uart2 */ __overlay__ { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bb_uart2_pins>; }; }; };