forked from RobertCNelson/bb.org-overlays
-
Notifications
You must be signed in to change notification settings - Fork 174
/
BB-I2C1-PCA9685-00A0.dts
122 lines (104 loc) · 2.53 KB
/
BB-I2C1-PCA9685-00A0.dts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
* Copyright (C) 2015 Robert Nelson <robertcnelson@gmail.com>
*
* 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 <dt-bindings/board/am335x-bbw-bbb-base.h>
#include <dt-bindings/pinctrl/am33xx.h>
#include <dt-bindings/gpio/gpio.h>
/ {
/*
* Helper to show loaded overlays under: /proc/device-tree/chosen/overlays/
*/
fragment@0 {
target-path="/";
__overlay__ {
chosen {
overlays {
BB-I2C1-PCA9685-00A0 = __TIMESTAMP__;
};
};
};
};
/*
* Free up the pins used by the cape from the pinmux helpers.
*/
fragment@1 {
target = <&ocp>;
__overlay__ {
P9_17_pinmux { status = "disabled"; }; /* i2c1_scl */
P9_18_pinmux { status = "disabled"; }; /* i2c1_sda */
P9_23_pinmux { status = "disabled"; }; /* gpio1_17 */
P9_27_pinmux { status = "disabled"; }; /* gpio3_19 */
};
};
fragment@2 {
target = <&am33xx_pinmux>;
__overlay__ {
bb_pca9685_oe0_pins: pinmux_bb_pca9685_oe0_pins {
pinctrl-single,pins = <
BONE_P9_23 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a1.gpio1_17 */
BONE_P9_27 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mcasp0_fsr.gpio3_19 */
>;
};
bb_i2c1_pins: pinmux_bb_i2c1_pins {
pinctrl-single,pins = <
BONE_P9_18 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_d1.i2c1_sda */
BONE_P9_17 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_scl */
>;
};
};
};
fragment@3 {
target-path="/";
__overlay__ {
leds {
pinctrl-names = "default";
pinctrl-0 = <&bb_pca9685_oe0_pins>;
compatible = "gpio-leds";
pca9685-oe@0 {
label = "pca9685-oe0";
gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
pca9685-oe@1 {
label = "pca9685-oe1";
gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
};
};
fragment@4 {
target = <&i2c1>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&bb_i2c1_pins>;
/* this is the configuration part */
clock-frequency = <100000>;
#address-cells = <1>;
#size-cells = <0>;
/* pca9685 pwm module 0 */
pca@40 {
compatible = "nxp,pca9685-pwm";
#pwm-cells = <2>;
reg = <0x40>;
/* invert; */
/* open-drain; */
};
/* pca9685 pwm module 1 */
pca@41 {
compatible = "nxp,pca9685-pwm";
#pwm-cells = <2>;
reg = <0x41>;
/* invert; */
/* open-drain; */
};
};
};
};