brcm2708: update linux 4.4 patches to latest version
[librecmc/librecmc.git] / target / linux / brcm2708 / patches-4.4 / 0231-RPi-config-Add-CONFIG_PWM_PCA9685-for-NXP-PCA9685-dr.patch
1 From 6273867fcddb010a62be4d1d5dcba124b1661681 Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <6by9@users.noreply.github.com>
3 Date: Fri, 1 Apr 2016 15:28:46 +0100
4 Subject: [PATCH 231/304] RPi config: Add CONFIG_PWM_PCA9685 for NXP PCA9685
5  driver over I2C
6
7 Includes DT overlay to configure it.
8
9 Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com>
10 ---
11  arch/arm/boot/dts/overlays/Makefile                |  1 +
12  arch/arm/boot/dts/overlays/README                  |  6 +++++
13  .../boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts | 26 ++++++++++++++++++++++
14  arch/arm/configs/bcm2709_defconfig                 |  1 +
15  arch/arm/configs/bcmrpi_defconfig                  |  1 +
16  5 files changed, 35 insertions(+)
17  create mode 100644 arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
18
19 --- a/arch/arm/boot/dts/overlays/Makefile
20 +++ b/arch/arm/boot/dts/overlays/Makefile
21 @@ -30,6 +30,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo
22  dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo
23  dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo
24  dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo
25 +dtbo-$(RPI_DT_OVERLAYS) += i2c-pwm-pca9685a.dtbo
26  dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo
27  dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo
28  dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo
29 --- a/arch/arm/boot/dts/overlays/README
30 +++ b/arch/arm/boot/dts/overlays/README
31 @@ -366,6 +366,12 @@ Load:   dtoverlay=i2c-mux-pca9548a,<para
32  Params: addr                    I2C address of PCA9548A (default 0x70)
33  
34  
35 +Name:   i2c-pwm-pca9685a
36 +Info:   Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm
37 +Load:   dtoverlay=i2c-pwm-pca9685a,<param>=<val>
38 +Params: addr                    I2C address of PCA9685A (default 0x40)
39 +
40 +
41  Name:   i2c-rtc
42  Info:   Adds support for a number of I2C Real Time Clock devices
43  Load:   dtoverlay=i2c-rtc,<param>=<val>
44 --- /dev/null
45 +++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
46 @@ -0,0 +1,26 @@
47 +// Definitions for NXP PCA9685A I2C PWM controller on ARM I2C bus.
48 +/dts-v1/;
49 +/plugin/;
50 +
51 +/{
52 +       compatible = "brcm,bcm2708";
53 +
54 +       fragment@0 {
55 +               target = <&i2c_arm>;
56 +               __overlay__ {
57 +                       #address-cells = <1>;
58 +                       #size-cells = <0>;
59 +                       status = "okay";
60 +
61 +                       pca: pca@40 {
62 +                               compatible = "nxp,pca9685";
63 +                               #pwm-cells = <2>;
64 +                               reg = <0x40>;
65 +                               status = "okay";
66 +                       };
67 +               };
68 +       };
69 +       __overrides__ {
70 +               addr = <&pca>,"reg:0";
71 +       };
72 +};
73 --- a/arch/arm/configs/bcm2709_defconfig
74 +++ b/arch/arm/configs/bcm2709_defconfig
75 @@ -1122,6 +1122,7 @@ CONFIG_MCP320X=m
76  CONFIG_MCP3422=m
77  CONFIG_DHT11=m
78  CONFIG_PWM_BCM2835=m
79 +CONFIG_PWM_PCA9685=m
80  CONFIG_RASPBERRYPI_FIRMWARE=y
81  CONFIG_EXT4_FS=y
82  CONFIG_EXT4_FS_POSIX_ACL=y
83 --- a/arch/arm/configs/bcmrpi_defconfig
84 +++ b/arch/arm/configs/bcmrpi_defconfig
85 @@ -1129,6 +1129,7 @@ CONFIG_MCP320X=m
86  CONFIG_MCP3422=m
87  CONFIG_DHT11=m
88  CONFIG_PWM_BCM2835=m
89 +CONFIG_PWM_PCA9685=m
90  CONFIG_RASPBERRYPI_FIRMWARE=y
91  CONFIG_EXT4_FS=y
92  CONFIG_EXT4_FS_POSIX_ACL=y