mbox series

[v2,00/24] ARM: dts: imx7-colibri: device tree improvements

Message ID 20220516134734.493065-1-marcel@ziswiler.com (mailing list archive)
Headers show
Series ARM: dts: imx7-colibri: device tree improvements | expand

Message

Marcel Ziswiler May 16, 2022, 1:47 p.m. UTC
From: Marcel Ziswiler <marcel.ziswiler@toradex.com>


This is a general update of the Colibri iMX7 device tree files.

The Toradex Colibri family is composed of a SoM that can be plugged on
various carrier boards, with carrier boards allowing multiple optional
accessories (e.g. display, camera, ...).

The device tree sources are structured into a SoM dtsi and a carrier dts
which then includes the SoM dtsi. The SoM dtsi defines and enables the
functionality self-contained on the SoM and prepares for the
functionality provided by the carrier HW or accessories so that the
carrier dts then can enable or amend nodes provided. Accessories are
enabled in overlays depending on HW configuration.

Please find the following colibri-imx7 device trees improvements:

- Display/Touch Functionality Overhaul
Rename display interface to match other modules to make it easier to
use device tree overlays.
The parallel RGB interface (lcdif) and all related stuff turn on in a
device tree overlay. Keep them disabled in the main devicetree.
As these subsystems are provided by module and not a part of boards,
move their definitions into the module-level devicetree.
Disable ad7879 touchscreen which turns on in a devic tree overlay.
Remains it disabled in the main devicetree.
The Toradex 7" Capacitive and 10" LVDS touch screens are Atmel MXT
peripherals available on the I2C bus for touchscreen events. Add
atmel_mxt_ts node to the module-level device tree. Also, provide pinmux
configuration for the INT/RST inputs from SODIMM pins 106/107 for most
carrier boards or an external touchscreen adapter inputs configured to
SODIMM pins 28/30.

- Ethernet Improvements
Add the MDIO bus with the respective PHY.
Add Ethernet aliases which is required to properly pass MAC address
from bootloader.
Add delay for on-module phy supply.

- USB Device/Host Switching
Add usb dual-role switching using extcon.

- MMC/SD
The original Colibri specification only defined 3.3 volt TTL signaling
and relied on external on-carrier pull-ups for the SD_DATA[0..3] lines.
The latest carrier boards like Iris V2 on the other hand are now UHS-I
compliant by leaving such external on-carrier pull-ups away relying on
module- or even SoC-level ones which pull up to resp. signaling voltage.
In such cases, the carrier board-level device tree may explicitly delete
the no-1-8-v property to enable full UHS-I support.
Also, fix SD/MMC regulator for the carrier boards using UHS-I modes.

- Add Iris and Iris V2 Carrier Board Device Trees
Add support for Toradex Iris carrier boards.

Changes in v2:
- Add Krzysztof's acked-by. Thanks!
- Revert change on arch/arm/boot/dts/imx6dl-colibri-iris.dts which
  slipped into this patch set by error.
- Re-based on top of Shawn's for-next.

Marcel Ziswiler (18):
  ARM: dts: imx7-colibri: overhaul display/touch functionality
  ARM: dts: imx7-colibri: add mdio phy node
  ARM: dts: imx7-colibri: move aliases, chosen, extcon and gpio-keys
  ARM: dts: imx7-colibri: move regulators
  ARM: dts: imx7-colibri: clean-up usdhc1 and add sleep config
  ARM: dts: imx7-colibri: move rtc node
  ARM: dts: imx7d-colibri-emmc: add cpu1 supply
  ARM: dts: imx7-colibri-eval-v3: correct can controller comment
  ARM: dts: imx7-colibri: disable adc2
  ARM: dts: imx7-colibri-aster: add ssp aka spi cs aka ss pins
  ARM: dts: imx7-colibri: add clarifying comments
  ARM: dts: imx7-colibri: alphabetical re-order
  ARM: dts: imx7-colibri: clean-up device enabling/disabling
  ARM: dts: imx7-colibri: remove leading zero from reg address
  ARM: dts: imx7-colibri: set regulator-name properties
  ARM: dts: imx7-colibri: clean-up iomuxc pinctrl group naming
  dt-bindings: arm: fsl: add toradex,colibri-imx7s/d/d-emmc-iris/-v2
  ARM: dts: imx7-colibri: add support for Toradex Iris carrier boards

Max Krummenacher (1):
  ARM: dts: imx7-colibri: add ethernet aliases

Oleksandr Suvorov (3):
  ARM: dts: imx7-colibri: improve licensing and compatible strings
  ARM: dts: imx7-colibri: improve wake-up with gpio key
  ARM: dts: imx7-colibri: add delay for on-module phy supply

Philippe Schenker (1):
  ARM: dts: imx7-colibri: add usb dual-role switching using extcon

Stefan Agner (1):
  ARM: dts: imx7-colibri: set lcdif clock source to video pll

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 arch/arm/boot/dts/Makefile                    |   6 +
 arch/arm/boot/dts/imx7-colibri-aster.dtsi     | 142 +--
 arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi   | 156 +---
 arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi   | 112 +++
 arch/arm/boot/dts/imx7-colibri-iris.dtsi      | 108 +++
 arch/arm/boot/dts/imx7-colibri.dtsi           | 830 +++++++++++-------
 arch/arm/boot/dts/imx7d-colibri-aster.dts     |  30 +-
 .../arm/boot/dts/imx7d-colibri-emmc-aster.dts |  10 +-
 .../boot/dts/imx7d-colibri-emmc-eval-v3.dts   |  10 +-
 .../boot/dts/imx7d-colibri-emmc-iris-v2.dts   |  21 +
 arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts |  21 +
 arch/arm/boot/dts/imx7d-colibri-emmc.dtsi     |  17 +-
 arch/arm/boot/dts/imx7d-colibri-eval-v3.dts   |  45 +-
 arch/arm/boot/dts/imx7d-colibri-iris-v2.dts   |  83 ++
 arch/arm/boot/dts/imx7d-colibri-iris.dts      |  56 ++
 arch/arm/boot/dts/imx7d-colibri.dtsi          |  13 +-
 arch/arm/boot/dts/imx7s-colibri-aster.dts     |  27 +-
 arch/arm/boot/dts/imx7s-colibri-eval-v3.dts   |  43 +-
 arch/arm/boot/dts/imx7s-colibri-iris-v2.dts   |  78 ++
 arch/arm/boot/dts/imx7s-colibri-iris.dts      |  51 ++
 arch/arm/boot/dts/imx7s-colibri.dtsi          |   5 +-
 22 files changed, 1291 insertions(+), 579 deletions(-)
 create mode 100644 arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi
 create mode 100644 arch/arm/boot/dts/imx7-colibri-iris.dtsi
 create mode 100644 arch/arm/boot/dts/imx7d-colibri-emmc-iris-v2.dts
 create mode 100644 arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts
 create mode 100644 arch/arm/boot/dts/imx7d-colibri-iris-v2.dts
 create mode 100644 arch/arm/boot/dts/imx7d-colibri-iris.dts
 create mode 100644 arch/arm/boot/dts/imx7s-colibri-iris-v2.dts
 create mode 100644 arch/arm/boot/dts/imx7s-colibri-iris.dts

Comments

Shawn Guo June 11, 2022, 9:16 a.m. UTC | #1
On Mon, May 16, 2022 at 03:47:10PM +0200, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> 
> This is a general update of the Colibri iMX7 device tree files.
> 
> The Toradex Colibri family is composed of a SoM that can be plugged on
> various carrier boards, with carrier boards allowing multiple optional
> accessories (e.g. display, camera, ...).
> 
> The device tree sources are structured into a SoM dtsi and a carrier dts
> which then includes the SoM dtsi. The SoM dtsi defines and enables the
> functionality self-contained on the SoM and prepares for the
> functionality provided by the carrier HW or accessories so that the
> carrier dts then can enable or amend nodes provided. Accessories are
> enabled in overlays depending on HW configuration.
> 
> Please find the following colibri-imx7 device trees improvements:
> 
> - Display/Touch Functionality Overhaul
> Rename display interface to match other modules to make it easier to
> use device tree overlays.
> The parallel RGB interface (lcdif) and all related stuff turn on in a
> device tree overlay. Keep them disabled in the main devicetree.
> As these subsystems are provided by module and not a part of boards,
> move their definitions into the module-level devicetree.
> Disable ad7879 touchscreen which turns on in a devic tree overlay.
> Remains it disabled in the main devicetree.
> The Toradex 7" Capacitive and 10" LVDS touch screens are Atmel MXT
> peripherals available on the I2C bus for touchscreen events. Add
> atmel_mxt_ts node to the module-level device tree. Also, provide pinmux
> configuration for the INT/RST inputs from SODIMM pins 106/107 for most
> carrier boards or an external touchscreen adapter inputs configured to
> SODIMM pins 28/30.
> 
> - Ethernet Improvements
> Add the MDIO bus with the respective PHY.
> Add Ethernet aliases which is required to properly pass MAC address
> from bootloader.
> Add delay for on-module phy supply.
> 
> - USB Device/Host Switching
> Add usb dual-role switching using extcon.
> 
> - MMC/SD
> The original Colibri specification only defined 3.3 volt TTL signaling
> and relied on external on-carrier pull-ups for the SD_DATA[0..3] lines.
> The latest carrier boards like Iris V2 on the other hand are now UHS-I
> compliant by leaving such external on-carrier pull-ups away relying on
> module- or even SoC-level ones which pull up to resp. signaling voltage.
> In such cases, the carrier board-level device tree may explicitly delete
> the no-1-8-v property to enable full UHS-I support.
> Also, fix SD/MMC regulator for the carrier boards using UHS-I modes.
> 
> - Add Iris and Iris V2 Carrier Board Device Trees
> Add support for Toradex Iris carrier boards.
> 
> Changes in v2:
> - Add Krzysztof's acked-by. Thanks!
> - Revert change on arch/arm/boot/dts/imx6dl-colibri-iris.dts which
>   slipped into this patch set by error.
> - Re-based on top of Shawn's for-next.
> 
> Marcel Ziswiler (18):
>   ARM: dts: imx7-colibri: overhaul display/touch functionality
>   ARM: dts: imx7-colibri: add mdio phy node
>   ARM: dts: imx7-colibri: move aliases, chosen, extcon and gpio-keys
>   ARM: dts: imx7-colibri: move regulators
>   ARM: dts: imx7-colibri: clean-up usdhc1 and add sleep config
>   ARM: dts: imx7-colibri: move rtc node
>   ARM: dts: imx7d-colibri-emmc: add cpu1 supply
>   ARM: dts: imx7-colibri-eval-v3: correct can controller comment
>   ARM: dts: imx7-colibri: disable adc2
>   ARM: dts: imx7-colibri-aster: add ssp aka spi cs aka ss pins
>   ARM: dts: imx7-colibri: add clarifying comments
>   ARM: dts: imx7-colibri: alphabetical re-order
>   ARM: dts: imx7-colibri: clean-up device enabling/disabling
>   ARM: dts: imx7-colibri: remove leading zero from reg address
>   ARM: dts: imx7-colibri: set regulator-name properties
>   ARM: dts: imx7-colibri: clean-up iomuxc pinctrl group naming
>   dt-bindings: arm: fsl: add toradex,colibri-imx7s/d/d-emmc-iris/-v2
>   ARM: dts: imx7-colibri: add support for Toradex Iris carrier boards
> 
> Max Krummenacher (1):
>   ARM: dts: imx7-colibri: add ethernet aliases
> 
> Oleksandr Suvorov (3):
>   ARM: dts: imx7-colibri: improve licensing and compatible strings
>   ARM: dts: imx7-colibri: improve wake-up with gpio key
>   ARM: dts: imx7-colibri: add delay for on-module phy supply
> 
> Philippe Schenker (1):
>   ARM: dts: imx7-colibri: add usb dual-role switching using extcon
> 
> Stefan Agner (1):
>   ARM: dts: imx7-colibri: set lcdif clock source to video pll

Applied all, thanks!
Rob Herring June 14, 2022, 3 p.m. UTC | #2
On Sat, Jun 11, 2022 at 3:16 AM Shawn Guo <shawnguo@kernel.org> wrote:
>
> On Mon, May 16, 2022 at 03:47:10PM +0200, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >
> >
> > This is a general update of the Colibri iMX7 device tree files.
> >
> > The Toradex Colibri family is composed of a SoM that can be plugged on
> > various carrier boards, with carrier boards allowing multiple optional
> > accessories (e.g. display, camera, ...).
> >
> > The device tree sources are structured into a SoM dtsi and a carrier dts
> > which then includes the SoM dtsi. The SoM dtsi defines and enables the
> > functionality self-contained on the SoM and prepares for the
> > functionality provided by the carrier HW or accessories so that the
> > carrier dts then can enable or amend nodes provided. Accessories are
> > enabled in overlays depending on HW configuration.
> >
> > Please find the following colibri-imx7 device trees improvements:
> >
> > - Display/Touch Functionality Overhaul
> > Rename display interface to match other modules to make it easier to
> > use device tree overlays.
> > The parallel RGB interface (lcdif) and all related stuff turn on in a
> > device tree overlay. Keep them disabled in the main devicetree.
> > As these subsystems are provided by module and not a part of boards,
> > move their definitions into the module-level devicetree.
> > Disable ad7879 touchscreen which turns on in a devic tree overlay.
> > Remains it disabled in the main devicetree.
> > The Toradex 7" Capacitive and 10" LVDS touch screens are Atmel MXT
> > peripherals available on the I2C bus for touchscreen events. Add
> > atmel_mxt_ts node to the module-level device tree. Also, provide pinmux
> > configuration for the INT/RST inputs from SODIMM pins 106/107 for most
> > carrier boards or an external touchscreen adapter inputs configured to
> > SODIMM pins 28/30.
> >
> > - Ethernet Improvements
> > Add the MDIO bus with the respective PHY.
> > Add Ethernet aliases which is required to properly pass MAC address
> > from bootloader.
> > Add delay for on-module phy supply.
> >
> > - USB Device/Host Switching
> > Add usb dual-role switching using extcon.
> >
> > - MMC/SD
> > The original Colibri specification only defined 3.3 volt TTL signaling
> > and relied on external on-carrier pull-ups for the SD_DATA[0..3] lines.
> > The latest carrier boards like Iris V2 on the other hand are now UHS-I
> > compliant by leaving such external on-carrier pull-ups away relying on
> > module- or even SoC-level ones which pull up to resp. signaling voltage.
> > In such cases, the carrier board-level device tree may explicitly delete
> > the no-1-8-v property to enable full UHS-I support.
> > Also, fix SD/MMC regulator for the carrier boards using UHS-I modes.
> >
> > - Add Iris and Iris V2 Carrier Board Device Trees
> > Add support for Toradex Iris carrier boards.
> >
> > Changes in v2:
> > - Add Krzysztof's acked-by. Thanks!
> > - Revert change on arch/arm/boot/dts/imx6dl-colibri-iris.dts which
> >   slipped into this patch set by error.
> > - Re-based on top of Shawn's for-next.
> >
> > Marcel Ziswiler (18):
> >   ARM: dts: imx7-colibri: overhaul display/touch functionality
> >   ARM: dts: imx7-colibri: add mdio phy node
> >   ARM: dts: imx7-colibri: move aliases, chosen, extcon and gpio-keys
> >   ARM: dts: imx7-colibri: move regulators
> >   ARM: dts: imx7-colibri: clean-up usdhc1 and add sleep config
> >   ARM: dts: imx7-colibri: move rtc node
> >   ARM: dts: imx7d-colibri-emmc: add cpu1 supply
> >   ARM: dts: imx7-colibri-eval-v3: correct can controller comment
> >   ARM: dts: imx7-colibri: disable adc2
> >   ARM: dts: imx7-colibri-aster: add ssp aka spi cs aka ss pins
> >   ARM: dts: imx7-colibri: add clarifying comments
> >   ARM: dts: imx7-colibri: alphabetical re-order
> >   ARM: dts: imx7-colibri: clean-up device enabling/disabling
> >   ARM: dts: imx7-colibri: remove leading zero from reg address
> >   ARM: dts: imx7-colibri: set regulator-name properties
> >   ARM: dts: imx7-colibri: clean-up iomuxc pinctrl group naming
> >   dt-bindings: arm: fsl: add toradex,colibri-imx7s/d/d-emmc-iris/-v2
> >   ARM: dts: imx7-colibri: add support for Toradex Iris carrier boards
> >
> > Max Krummenacher (1):
> >   ARM: dts: imx7-colibri: add ethernet aliases
> >
> > Oleksandr Suvorov (3):
> >   ARM: dts: imx7-colibri: improve licensing and compatible strings
> >   ARM: dts: imx7-colibri: improve wake-up with gpio key
> >   ARM: dts: imx7-colibri: add delay for on-module phy supply
> >
> > Philippe Schenker (1):
> >   ARM: dts: imx7-colibri: add usb dual-role switching using extcon
> >
> > Stefan Agner (1):
> >   ARM: dts: imx7-colibri: set lcdif clock source to video pll
>
> Applied all, thanks!

Not completely sure, but I think this series adds a warning to linux-next:

./Documentation/devicetree/bindings/arm/fsl.yaml:684:111: [warning]
line too long (111 > 110 characters) (line-length)
Francesco Dolcini June 14, 2022, 3:16 p.m. UTC | #3
On Tue, Jun 14, 2022 at 09:00:26AM -0600, Rob Herring wrote:
> On Sat, Jun 11, 2022 at 3:16 AM Shawn Guo <shawnguo@kernel.org> wrote:
> >
> > On Mon, May 16, 2022 at 03:47:10PM +0200, Marcel Ziswiler wrote:
> > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > >
> > >
> > > This is a general update of the Colibri iMX7 device tree files.
...
> > Applied all, thanks!
> 
> Not completely sure, but I think this series adds a warning to linux-next:
> 
> ./Documentation/devicetree/bindings/arm/fsl.yaml:684:111: [warning]
> line too long (111 > 110 characters) (line-length)

The warning is from

  bb0fa1533715 ("dt-bindings: arm: fsl: correct 1g vs. 1gb in toradex,colibri-imx6ull-*")

that is already merged in master/torvalds, not related to this series.

We (Toradex) introduced it, and I guess we can easily fix it, Marcel?
We'll send a patch.

Francesco
Shawn Guo June 19, 2022, 1:34 a.m. UTC | #4
On Tue, Jun 14, 2022 at 09:00:26AM -0600, Rob Herring wrote:
> On Sat, Jun 11, 2022 at 3:16 AM Shawn Guo <shawnguo@kernel.org> wrote:
> >
> > On Mon, May 16, 2022 at 03:47:10PM +0200, Marcel Ziswiler wrote:
> > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > >
> > >
> > > This is a general update of the Colibri iMX7 device tree files.
> > >
> > > The Toradex Colibri family is composed of a SoM that can be plugged on
> > > various carrier boards, with carrier boards allowing multiple optional
> > > accessories (e.g. display, camera, ...).
> > >
> > > The device tree sources are structured into a SoM dtsi and a carrier dts
> > > which then includes the SoM dtsi. The SoM dtsi defines and enables the
> > > functionality self-contained on the SoM and prepares for the
> > > functionality provided by the carrier HW or accessories so that the
> > > carrier dts then can enable or amend nodes provided. Accessories are
> > > enabled in overlays depending on HW configuration.
> > >
> > > Please find the following colibri-imx7 device trees improvements:
> > >
> > > - Display/Touch Functionality Overhaul
> > > Rename display interface to match other modules to make it easier to
> > > use device tree overlays.
> > > The parallel RGB interface (lcdif) and all related stuff turn on in a
> > > device tree overlay. Keep them disabled in the main devicetree.
> > > As these subsystems are provided by module and not a part of boards,
> > > move their definitions into the module-level devicetree.
> > > Disable ad7879 touchscreen which turns on in a devic tree overlay.
> > > Remains it disabled in the main devicetree.
> > > The Toradex 7" Capacitive and 10" LVDS touch screens are Atmel MXT
> > > peripherals available on the I2C bus for touchscreen events. Add
> > > atmel_mxt_ts node to the module-level device tree. Also, provide pinmux
> > > configuration for the INT/RST inputs from SODIMM pins 106/107 for most
> > > carrier boards or an external touchscreen adapter inputs configured to
> > > SODIMM pins 28/30.
> > >
> > > - Ethernet Improvements
> > > Add the MDIO bus with the respective PHY.
> > > Add Ethernet aliases which is required to properly pass MAC address
> > > from bootloader.
> > > Add delay for on-module phy supply.
> > >
> > > - USB Device/Host Switching
> > > Add usb dual-role switching using extcon.
> > >
> > > - MMC/SD
> > > The original Colibri specification only defined 3.3 volt TTL signaling
> > > and relied on external on-carrier pull-ups for the SD_DATA[0..3] lines.
> > > The latest carrier boards like Iris V2 on the other hand are now UHS-I
> > > compliant by leaving such external on-carrier pull-ups away relying on
> > > module- or even SoC-level ones which pull up to resp. signaling voltage.
> > > In such cases, the carrier board-level device tree may explicitly delete
> > > the no-1-8-v property to enable full UHS-I support.
> > > Also, fix SD/MMC regulator for the carrier boards using UHS-I modes.
> > >
> > > - Add Iris and Iris V2 Carrier Board Device Trees
> > > Add support for Toradex Iris carrier boards.
> > >
> > > Changes in v2:
> > > - Add Krzysztof's acked-by. Thanks!
> > > - Revert change on arch/arm/boot/dts/imx6dl-colibri-iris.dts which
> > >   slipped into this patch set by error.
> > > - Re-based on top of Shawn's for-next.
> > >
> > > Marcel Ziswiler (18):
> > >   ARM: dts: imx7-colibri: overhaul display/touch functionality
> > >   ARM: dts: imx7-colibri: add mdio phy node
> > >   ARM: dts: imx7-colibri: move aliases, chosen, extcon and gpio-keys
> > >   ARM: dts: imx7-colibri: move regulators
> > >   ARM: dts: imx7-colibri: clean-up usdhc1 and add sleep config
> > >   ARM: dts: imx7-colibri: move rtc node
> > >   ARM: dts: imx7d-colibri-emmc: add cpu1 supply
> > >   ARM: dts: imx7-colibri-eval-v3: correct can controller comment
> > >   ARM: dts: imx7-colibri: disable adc2
> > >   ARM: dts: imx7-colibri-aster: add ssp aka spi cs aka ss pins
> > >   ARM: dts: imx7-colibri: add clarifying comments
> > >   ARM: dts: imx7-colibri: alphabetical re-order
> > >   ARM: dts: imx7-colibri: clean-up device enabling/disabling
> > >   ARM: dts: imx7-colibri: remove leading zero from reg address
> > >   ARM: dts: imx7-colibri: set regulator-name properties
> > >   ARM: dts: imx7-colibri: clean-up iomuxc pinctrl group naming
> > >   dt-bindings: arm: fsl: add toradex,colibri-imx7s/d/d-emmc-iris/-v2
> > >   ARM: dts: imx7-colibri: add support for Toradex Iris carrier boards
> > >
> > > Max Krummenacher (1):
> > >   ARM: dts: imx7-colibri: add ethernet aliases
> > >
> > > Oleksandr Suvorov (3):
> > >   ARM: dts: imx7-colibri: improve licensing and compatible strings
> > >   ARM: dts: imx7-colibri: improve wake-up with gpio key
> > >   ARM: dts: imx7-colibri: add delay for on-module phy supply
> > >
> > > Philippe Schenker (1):
> > >   ARM: dts: imx7-colibri: add usb dual-role switching using extcon
> > >
> > > Stefan Agner (1):
> > >   ARM: dts: imx7-colibri: set lcdif clock source to video pll
> >
> > Applied all, thanks!
> 
> Not completely sure, but I think this series adds a warning to linux-next:
> 
> ./Documentation/devicetree/bindings/arm/fsl.yaml:684:111: [warning]
> line too long (111 > 110 characters) (line-length)

Thanks for spotting it, Rob!

It seems to be another separate patch [1].  I will fix it.

Shawn

[1] https://lore.kernel.org/linux-arm-kernel/20220506145720.291735-1-marcel@ziswiler.com/