/* * This is the Device Tree overlay for the IBB Home Automation Cape * for BeagleBone, BeagleBone Black and Beaglebone Green. * * Copyright (c) 2015 - Ingenieurbuero Budde * Copyright (c) 2026 - Vincent Schweiger * * 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/; #include #include /* * Helper to show loaded overlays under: /proc/device-tree/chosen/overlays/ */ &{/chosen} { overlays { cape-bone-ibb-00A0.kernel = __TIMESTAMP__; }; }; /* * Free up the pins used by the cape from the pinmux helpers. */ &ocp { P9_24_pinmux { status = "disabled"; }; /* uart1_txd.uart1_txd */ P9_26_pinmux { status = "disabled"; }; /* uart1_rxd.uart1_rxd */ P9_21_pinmux { status = "disabled"; }; /* spi0_d0.uart2_txd */ P9_22_pinmux { status = "disabled"; }; /* spi0_sclk.uart2_rxd */ P9_11_pinmux { status = "disabled"; }; /* gpmc_wait0.uart4_rxd_mux2 */ P9_13_pinmux { status = "disabled"; }; /* gpmc_wpn.uart4_txd_mux2 */ P9_15_pinmux { status = "disabled"; }; /* gpmc_a0.gpio1_16 */ }; &am33xx_pinmux { bb_uart1_pins: pinmux_uart1_pins { pinctrl-single,pins = < AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0) /* P9_24: uart1_txd.uart1_txd */ AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0) /* P9_26: uart1_rxd.uart1_rxd */ >; }; bb_uart2_pins: pinmux_uart2_pins { pinctrl-single,pins = < AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* P9_21: spi0_d0.uart2_txd */ AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE1) /* P9_22: spi0_sclk.uart2_rxd */ >; }; bb_uart4_pins: pinmux_uart4_pins { pinctrl-single,pins = < AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLUP, MUX_MODE6) /* P9_11: gpmc_wait0.uart4_rxd_mux2 */ AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE6) /* P9_13: gpmc_wait0.uart4_txd_mux2 */ >; }; bb_gpio1_16_pins: pinmux_gpio1_16_pins { pinctrl-single,pins = < AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_INPUT, MUX_MODE7) /* P9_15: gpmc_a0.gpio1_16 */ >; }; }; &uart1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bb_uart1_pins>; }; &uart2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bb_uart2_pins>; }; &uart4 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bb_uart4_pins>; }; &i2c2 { status = "okay"; clock-frequency = <400000>; /* shut up DTC warnings */ #address-cells = <1>; #size-cells = <0>; rtc@68 { compatible = "maxim,ds3231"; reg = <0x68>; }; /* PCA9546 I2C multiplexer */ i2cmux@70 { compatible = "nxp,pca9546"; #address-cells = <1>; #size-cells = <0>; reg = <0x70>; im0: bus@0 { compatible = "nxp,pca954x-bus"; reg = <0>; }; im1: bus@1 { compatible = "nxp,pca954x-bus"; reg = <1>; }; im2: bus@2 { compatible = "nxp,pca954x-bus"; reg = <2>; }; im3: bus@3 { compatible = "nxp,pca954x-bus"; reg = <3>; }; }; }; &{/} { gpio_keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&bb_gpio1_16_pins>; /* avoid stupid warning */ #address-cells = <1>; #size-celss = <0>; rtc_mfp@1 { label = "rtc_mfp"; gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; linux,code = <143>; /* System Wake Up */ gpio-key,wakeup; }; }; aliases { i2c3 = &im0; i2c4 = &im1; i2c5 = &im2; i2c6 = &im3; }; };