| From de7880016665afe7fa7d40e1fafa859260d53ba1 Mon Sep 17 00:00:00 2001 |
| From: Christian Lamparter <chunkeey@gmail.com> |
| Date: Thu, 28 Oct 2021 09:03:44 +0200 |
| Subject: [PATCH] ARM: BCM53016: MR32: convert to Broadcom iProc I2C Driver |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| replaces the bit-banged i2c-gpio provided i2c functionality |
| with the hardware in the SoC. |
| |
| During review of the MR32, Florian Fainelli pointed out that the |
| SoC has a real I2C-controller. Furthermore, the connected pins |
| (SDA and SCL) would line up perfectly for use. Back then I couldn't |
| get it working though and I left it with i2c-gpio (which worked). |
| |
| Now we know the reason: the interrupt was incorrectly specified. |
| (Hence, this patch depends on Florian Fainelli's |
| "ARM: dts: BCM5301X: Fix I2C controller interrupt" patch). |
| |
| Cc: Florian Fainelli <f.fainelli@gmail.com> |
| Cc: Rafał Miłecki <zajec5@gmail.com> |
| Cc: Matthew Hagan <mnhagan88@gmail.com> |
| Signed-off-by: Christian Lamparter <chunkeey@gmail.com> |
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |
| --- |
| arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 62 ++++++++++------------ |
| 1 file changed, 28 insertions(+), 34 deletions(-) |
| |
| --- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts |
| +++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts |
| @@ -84,40 +84,6 @@ |
| max-brightness = <255>; |
| }; |
| }; |
| - |
| - i2c { |
| - /* |
| - * The platform provided I2C does not budge. |
| - * This is a replacement until I can figure |
| - * out what are the missing bits... |
| - */ |
| - |
| - compatible = "i2c-gpio"; |
| - sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; |
| - scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; |
| - i2c-gpio,delay-us = <10>; /* close to 100 kHz */ |
| - #address-cells = <1>; |
| - #size-cells = <0>; |
| - |
| - current_sense: ina219@45 { |
| - compatible = "ti,ina219"; |
| - reg = <0x45>; |
| - shunt-resistor = <60000>; /* = 60 mOhms */ |
| - }; |
| - |
| - eeprom: eeprom@50 { |
| - compatible = "atmel,24c64"; |
| - reg = <0x50>; |
| - pagesize = <32>; |
| - read-only; |
| - #address-cells = <1>; |
| - #size-cells = <1>; |
| - |
| - mac_address: mac-address@66 { |
| - reg = <0x66 0x6>; |
| - }; |
| - }; |
| - }; |
| }; |
| |
| &uart0 { |
| @@ -228,3 +194,31 @@ |
| }; |
| }; |
| }; |
| + |
| +&i2c0 { |
| + status = "okay"; |
| + |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&pinmux_i2c>; |
| + |
| + clock-frequency = <100000>; |
| + |
| + current_sense: ina219@45 { |
| + compatible = "ti,ina219"; |
| + reg = <0x45>; |
| + shunt-resistor = <60000>; /* = 60 mOhms */ |
| + }; |
| + |
| + eeprom: eeprom@50 { |
| + compatible = "atmel,24c64"; |
| + reg = <0x50>; |
| + pagesize = <32>; |
| + read-only; |
| + #address-cells = <1>; |
| + #size-cells = <1>; |
| + |
| + mac_address: mac-address@66 { |
| + reg = <0x66 0x6>; |
| + }; |
| + }; |
| +}; |