]> www.infradead.org Git - users/jedix/linux-maple.git/commit
arm64: dts: freescale: imx8mm-verdin: Add Ivy carrier board
authorJoão Paulo Gonçalves <joao.goncalves@toradex.com>
Tue, 24 Sep 2024 11:30:48 +0000 (13:30 +0200)
committerShawn Guo <shawnguo@kernel.org>
Thu, 17 Oct 2024 09:14:52 +0000 (17:14 +0800)
commitadca46171ff7b3613cd7975f81870ae9025a34cf
tree1c61824a17938a911cb59e4ae4acd88dfe8abc8a
parent0852cba2c39fd20c6e7d7a003995e7704128faf2
arm64: dts: freescale: imx8mm-verdin: Add Ivy carrier board

Add Toradex Verdin Ivy carrier board support. One notable feature of Ivy
is the analog inputs. These inputs are multiplexed, allowing the same
input to measure either voltage or current. For current measurements,
a GPIO switch enables or disables the shunt resistor. This process is
automatically managed by the Linux kernel using the IIO and MUX
subsystems. Voltage measurement is always enabled, but the voltage
measured by the ADC is scaled by a cascade voltage divider. In the
device tree, the equivalent gain of the voltage divider is used, which
can be calculated as follows:

               ------------
               +          |
                         .-.
              R1=30K     | |
                         | |
                         '-'
                          |-------------------
    Analog Input (AIN)    |                  |
                         .-.                .-.
                  R2=10K | |         R3=30K | |
                         | |                | |
                         '-'                '-'
                          |                  |
                          |                  |--------
                          |                 .-.      +
                          |          R4=10K | |
                          |                 | |      ADC Input (Channels 0 and 1)
                          |                 '-'
               -          |                  |       -
               -----------|                  |--------
                         ===                ===
                         GND                GND

Vin  = Analog Input (AIN)
Vout = ADC Input
Rth  = Thevenin Equiv. Resistance
Vth  = Thevenin Equiv. Voltage
RL   = Load Resistor

R1 = 30K, R2 = 10K, R3 = 30K, R4 = 10K
RL = R4 = 10K

Rth  = (R1 // R2) + R3 = 37500 Ohms
Vth  = (Vin * R2) / (R1 + R2) = Vin/4;
Vout = (Vth * RL)/ (Rth + RL) = Vth/4.75 = Vin/19
Gain = Vout/Vin = 1/19

https://www.toradex.com/products/carrier-board/ivy-carrier-board

Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8mm-verdin-ivy.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-verdin-nonwifi-ivy.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi-ivy.dts [new file with mode: 0644]