mbox series

[V4,0/6] ARM: dts: imx6ull: Add chargebyte Tarragon support

Message ID 20230331210840.4061-1-stefan.wahren@chargebyte.com
Headers show
Series ARM: dts: imx6ull: Add chargebyte Tarragon support | expand

Message

Stefan Wahren March 31, 2023, 9:08 p.m. UTC
This series adds the support for chargebyte Tarragon, which is an Electrical
Vehicle Supply Equipment (EVSE) for AC charging stations
(according to IEC 61851, ISO 15118).

The Tarragon board is based on an i.MX6ULL SoC and is available in
4 variants (Master, Slave, SlaveXT, Micro), which provide more or
less peripherals.

Supported features:
  * 512 MB DDR RAM
  * eMMC
  * Debug UART
  * 100 Mbit Ethernet
  * USB 2.0 Host interface
  * Powerline communication (QCA700x)
  * 2x RS485
  * Digital in- and outputs (12 V)
  * One-Wire master for external temp sensors
  * 2x relay outputs
  * 2x motor interfaces
  
The Tarragon hardware is bundled with a charging stack under the name Charge Control C: 
https://chargebyte.com/products/charging-station-communication/charge-control-c

This series is rebased on top of:
https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git?h=for-next

Changes in V4:
- introduce dedicated dt-binding for Maxim I2C to 1-W bridges
- add Krzysztof's Acked-by

Changes in V3:
- dropped already applied iio patches
- renamed pinctrl_qca700x_mains_spi to pinctrl_ecspi4
- dropped Tarragon container nodes as suggested by Shawn
- sort the pinctrl groups alphabetically also suggested by Shawn

Changes in V2:
- after fixing technical problems send patches directly from chargebyte address
  and drop the related signed-off-by
- add Krzysztof's Acked-by
- improve commit messages (patch 3, 4, 5)
- make iis328dq fallback to lis331dl as suggested by Jonathan
- fix order of Tarragon entries in FSL schema
- improve Tarragon led node names and drop label as suggested by Krzysztof
- change Tarragon SVNS pinctrl settings after internal discussion
  with chargebyte hardware team
- drop broken-cd in Tarragon common DTSI which is not necessary for eMMC
- add no-sd and no-sdio for eMMC interface of Tarragon

Stefan Wahren (6):
  dt-bindings: vendor-prefixes: add chargebyte
  dt-bindings: w1: Add DS2482/DS2484 I2C to 1-W bridges
  w1: ds2482: add i2c id for DS2484
  dt-bindings: ARM: fsl: Add chargebyte Tarragon
  ARM: dts: imx6ull: Add chargebyte Tarragon support
  ARM: imx_v6_v7_defconfig: Enable Tarragon peripheral drivers

 .../devicetree/bindings/arm/fsl.yaml          |   9 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 .../devicetree/bindings/w1/maxim,ds2482.yaml  |  43 +
 arch/arm/boot/dts/Makefile                    |   4 +
 .../arm/boot/dts/imx6ull-tarragon-common.dtsi | 852 ++++++++++++++++++
 arch/arm/boot/dts/imx6ull-tarragon-master.dts |  82 ++
 arch/arm/boot/dts/imx6ull-tarragon-micro.dts  |  10 +
 arch/arm/boot/dts/imx6ull-tarragon-slave.dts  |  32 +
 .../arm/boot/dts/imx6ull-tarragon-slavext.dts |  64 ++
 arch/arm/configs/imx_v6_v7_defconfig          |   6 +
 drivers/w1/masters/ds2482.c                   |   1 +
 11 files changed, 1105 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
 create mode 100644 arch/arm/boot/dts/imx6ull-tarragon-common.dtsi
 create mode 100644 arch/arm/boot/dts/imx6ull-tarragon-master.dts
 create mode 100644 arch/arm/boot/dts/imx6ull-tarragon-micro.dts
 create mode 100644 arch/arm/boot/dts/imx6ull-tarragon-slave.dts
 create mode 100644 arch/arm/boot/dts/imx6ull-tarragon-slavext.dts

Comments

Krzysztof Kozlowski April 2, 2023, 10:28 a.m. UTC | #1
On 31/03/2023 23:08, Stefan Wahren wrote:
> Even this binding look trivial, the actual hardware supports more
> features (e.g. sleep mode control GPIO). So add this as a dedicated
> devicetree binding for the Maxim DS2482/DS2484 I2C to 1-W bridges,
> which can be extended later.
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@chargebyte.com>
> ---
>  .../devicetree/bindings/w1/maxim,ds2482.yaml  | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
> 
> diff --git a/Documentation/devicetree/bindings/w1/maxim,ds2482.yaml b/Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
> new file mode 100644
> index 000000000000..fd692a3a7400
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
> @@ -0,0 +1,43 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---

This is still incomplete as it does not allow children, but you
mentioned it in commit msg and other two bindings are limited as well,
so sounds ok:

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
Rob Herring (Arm) April 3, 2023, 6:14 p.m. UTC | #2
On Fri, Mar 31, 2023 at 11:08:36PM +0200, Stefan Wahren wrote:
> Even this binding look trivial, the actual hardware supports more
> features (e.g. sleep mode control GPIO). So add this as a dedicated
> devicetree binding for the Maxim DS2482/DS2484 I2C to 1-W bridges,
> which can be extended later.
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@chargebyte.com>
> ---
>  .../devicetree/bindings/w1/maxim,ds2482.yaml  | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
> 
> diff --git a/Documentation/devicetree/bindings/w1/maxim,ds2482.yaml b/Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
> new file mode 100644
> index 000000000000..fd692a3a7400
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/w1/maxim,ds2482.yaml
> @@ -0,0 +1,43 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/w1/maxim,ds2482.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim One wire bus master controller
> +
> +maintainers:
> +  - Stefan Wahren <stefan.wahren@chargebyte.com>
> +
> +description: |
> +  I2C to 1-wire bridges
> +
> +  https://www.analog.com/media/en/technical-documentation/data-sheets/ds2482-100.pdf
> +  https://www.analog.com/media/en/technical-documentation/data-sheets/DS2482-800.pdf
> +  https://www.analog.com/media/en/technical-documentation/data-sheets/DS2484.pdf
> +
> +properties:
> +  compatible:
> +    enum:
> +      - maxim,ds2482
> +      - maxim,ds2484
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false

To allow children, all that's needed for 1-wire is:

additionalProperties:
  type: object

> +
> +examples:
> +  - |
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      onewire@18 {
> +        compatible = "maxim,ds2484";
> +        reg = <0x18>;
> +      };
> +    };
> -- 
> 2.17.1
>