Age | Commit message (Collapse) | Author |
|
Aquila AM69 SOM board connector pins are revised, adjusting
the device tree to incorporate hardware changes. This change
also modifies the Aquila ETH_2 PHY address and keeps the
ETH_2 PHY handle to the Aquila development carrier board
device tree.
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
This change adds ETH_1 (on-module) and ETH_2 (dev carrier board)
along with its MDIO configurations for Toradex Aquila AM69 SOMs.
In addition, AM69 Serdes lane configurations are done as per the
below table for Aquila AM69. Associated PCIe and xGMII interfaces
are added accordingly.
--------------------------------------------------------------------------
|SERDES# | SERDES LANE# | AM69 SOC IP | Toradex Aquila AM69 Interface |
--------------------------------------------------------------------------
|SERDES0 | LANE0 | PCIE1_LANE0 | Aquila PCIE_2 L0 |
| | LANE1 | PCIE1_LANE1 | Aquila PCIE_2 L1 |
| | LANE2 | PCIE3_LANE0 | On-module PCIe Wi-Fi |
| | LANE3 | USB0 SS | Aquila USB0 SS |
--------------------------------------------------------------------------
|SERDES1 | LANE0 | PCIE0_LANE0 | Aquila PCIE_1 L0 |
| | LANE1 | PCIE0_LANE1 | Aquila PCIE_1 L1 |
| | LANE2 | PCIE2_LANE0 | On-module PCIe USB bridge |
| | LANE3 | QSGMII_LANE2 | Aquila ETH_2 xGMII |
--------------------------------------------------------------------------
|SERDES2 | LANE0 | QSGMII_LANE5 | Aquila SGMII MSP_6 |
| | LANE1 | QSGMII_LANE6 | Aquila SGMII MSP_7 |
| | LANE2 | QSGMII_LANE7 | Aquila SGMII MSP_8 |
| | LANE3 | QSGMII_LANE8 | Aquila SGMII MSP_9 |
--------------------------------------------------------------------------
|SERDES4 | LANE0 | EDP_LANE0 | Aquila DP L0 |
| | LANE1 | EDP_LANE1 | Aquila DP L1 |
| | LANE2 | EDP_LANE2 | Aquila DP L2 |
| | LANE3 | EDP_LANE3 | Aquila DP L3 |
--------------------------------------------------------------------------
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
Previously, we had the sleep-moci pin set to always on. However, the
Dahlia carrier board supports disabling the sleep-moci when the system
is suspended to power down peripherals that support it. This reduces
overall power consumption. This commit adds support for this feature by
disabling the reg_force_sleep_moci regulator and adding a new regulator
for the USB hub that can be turned off when the system is suspended.
Upstream-Status: Submitted [https://lore.kernel.org/linux-devicetree/20240301084901.16656-1-eichest@gmail.com/]
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
|
|
The Verdin family has a signal called sleep-moci which can be used to
turn off peripherals on the carrier board when the SoM goes into
suspend. So far we have hogged this signal, which means the peripherals
are always on and it is not possible to add peripherals that depend on
the sleep-moci to be on. With this change, we replace the hog with a
regulator so that peripherals can add their own regulators that use the
same gpio. Carrier boards that allow peripherals to be powered off in
suspend can disable this regulator and implement their own regulator to
control the sleep-moci.
Upstream-Status: Submitted [https://lore.kernel.org/linux-devicetree/20240301084901.16656-1-eichest@gmail.com/]
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
|
|
We need CONFIG_USB_ONBOARD_HUB enabled to support sleep-moci on some
carrier boards.
Upstream-Status: Inappropriate [Configuration]
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
|
|
Enable user-space I/O driver support for HID subsystem (CONFIG_UHID=m)
as e.g. required for Bluetooth keyboards.
Related-to: ELB-5738
Upstream-Status: Inappropriate [Configuration]
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
On AM62x, the watchdog is pet before the valid window is open. Fix
min_hw_heartbeat and accommodate a 2% + static offset safety margin.
The static offset accounts for max hardware error.
Remove the hack in the driver which shifts the open window boundary,
since it is no longer necessary due to the fix mentioned above.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240417205700.3947408-1-jm@ti.com/]
cc: stable@vger.kernel.org
Fixes: 5527483f8f7c ("watchdog: rti-wdt: attach to running watchdog during probe")
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
|
|
Serdev recv_buf() callback is supposed to return the amount of bytes
consumed, therefore an int in between 0 and count.
Do not return a negative number in case of issue, just print an error
and return count. Before this change, in case of error, the returned
negative number was internally converted to 0 in ttyport_receive_buf,
now when the receive buffer is corrupted we return the size of the whole
received data (`count`). This should allow for better recovery in case
receiver/transmitter get out of sync if some data is lost.
This fixes a WARN in ttyport_receive_buf().
Bluetooth: hci0: Frame reassembly failed (-84)
------------[ cut here ]------------
serial serial0: receive_buf returns -84 (count = 6)
WARNING: CPU: 0 PID: 37 at drivers/tty/serdev/serdev-ttyport.c:37 ttyport_receive_buf+0xd8/0xf8
Modules linked in: mwifiex_sdio(+) ...
CPU: 0 PID: 37 Comm: kworker/u4:2 Not tainted 6.7.0-rc2-00147-gf1a09972a45a #1
Hardware name: Toradex Verdin AM62 WB on Verdin Development Board (DT)
Workqueue: events_unbound flush_to_ldisc
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : ttyport_receive_buf+0xd8/0xf8
lr : ttyport_receive_buf+0xd8/0xf8
...
Call trace:
ttyport_receive_buf+0xd8/0xf8
flush_to_ldisc+0xbc/0x1a4
process_scheduled_works+0x16c/0x28c
Upstream-Status: Backport [94d05394254401e503867c16aff561d3e687dfdc]
Closes: https://lore.kernel.org/all/ZWEIhcUXfutb5SY6@francesco-nb.int.toradex.com/
Fixes: 689ca16e5232 ("Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
|
|
When using davinci-mcasp as CPU DAI with simple-card, there are some
conditions that cause simple-card to finish registering a sound card before
davinci-mcasp finishes registering all sound components. This creates a
non-working sound card from userspace with no problem indication apart
from not being able to play/record audio on a PCM stream. The issue
arises during simultaneous probe execution of both drivers. Specifically,
the simple-card driver, awaiting a CPU DAI, proceeds as soon as
davinci-mcasp registers its DAI. However, this process can lead to the
client mutex lock (client_mutex in soc-core.c) being held or davinci-mcasp
being preempted before PCM DMA registration on davinci-mcasp finishes.
This situation occurs when the probes of both drivers run concurrently.
Below is the code path for this condition. To solve the issue, defer
davinci-mcasp CPU DAI registration to the last step in the audio part of
it. This way, simple-card CPU DAI parsing will be deferred until all
audio components are registered.
Fail Code Path:
simple-card.c: probe starts
simple-card.c: simple_dai_link_of: simple_parse_node(..,cpu,..) returns EPROBE_DEFER, no CPU DAI yet
davinci-mcasp.c: probe starts
davinci-mcasp.c: devm_snd_soc_register_component() register CPU DAI
simple-card.c: probes again, finish CPU DAI parsing and call devm_snd_soc_register_card()
simple-card.c: finish probe
davinci-mcasp.c: *dma_pcm_platform_register() register PCM DMA
davinci-mcasp.c: probe finish
Upstream-Status: Submitted [https://lore.kernel.org/lkml/20240417184138.1104774-1-jpaulo.silvagoncalves@gmail.com/]
Cc: stable@vger.kernel.org
Fixes: 9fbd58cf4ab0 ("ASoC: davinci-mcasp: Choose PCM driver based on configured DMA controller")
Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
|
|
Adds the support for Aquila AM69 on-module IO expander TCA6408
and adjusts the pin muxing of a couple of signals.
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
In current configuration, nau8822 codec on development carrier board
provides distorted audio output. This happens due to reference clock
is fixed to 25MHz and no PLL is enabled. Following is the calculation
of deviation error for different frequencies:
44100Hz:
fs = 256 (fixed)
prescaler = 2
target frequency = 44100 * 256 * 2 = 22579200
deviation = 22579200 vs 25000000 = 9.6832%
48000Hz:
fs = 256 (fixed)
prescaler = 2
target frequency = 48000 * 256 * 2 = 24576000
deviation = 24576000 vs 25000000 = 1.696%
Enabling nau822 PLL via providing mclk-fs property to simple-audio-card
configures clocks properly, but also adjusts audio reference clock
(mclk), which in case of TI AM62 should be avoided, as it only
supports 25MHz output [1][2].
This change enables PLL on nau8822 by providing mclk-fs, and moves
away audio reference clock from DAI configuration, which prevents
simple-audio-card to adjust it before every playback [3].
[1]: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1175479/processor-sdk-am62x-output-audio_ext_refclk0-as-mclk-for-codec-and-mcbsp/4444986#4444986
[2]: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1188051/am625-audio_ext_refclk1-clock-output---dts-support/4476322#4476322
[3]: sound/soc/generic/simple-card-utils.c#L441
Upstream-Status: Submitted [https://lore.kernel.org/all/20240418105730.120913-1-andrejs.cainikovs@gmail.com/]
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
This change adds MCLK clock handling directly within driver.
When used in combination with simple-audio-card, and mclk-fs is set,
simple-audio-card will change MCLK frequency before configuring PLL.
In some cases, however, MCLK reference clock should be static (see [1]),
which means it needs to be moved away from simple-audio-card.
[1]: https://lore.kernel.org/all/ZfBdxrzX3EnPuGOn@ediswmail9.ad.cirrus.com/
Upstream-Status: Submitted [https://lore.kernel.org/all/20240409121719.337709-3-andrejs.cainikovs@gmail.com/]
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
Next commit in series makes a change which calls nau8822_set_pll() from
nau8822_set_dai_sysclk(). Moving latter after the former would avoid a
forward declaration, and this is exactly what this change does.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240409121719.337709-2-andrejs.cainikovs@gmail.com/]
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
TI's J784S4 SoC supports SGMII mode for CPSW9G instance's MAC ports.
Add SGMII mode to the extra_modes member of J784S4's SoC data.
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
TI's J784S4 SoC supports SGMII mode. Add SGMII mode to the
extra_modes member of the J784S4 SoC data.
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
This change adds support to the below-listed peripherals on Aquila
development carrier board.
- ETH_2 and related RGMII PHY on the carrier board
- I2C devices such as EEPROM, Fan-controller, hwmon-INA226A and
Temperature Sensor
- OSPI flash memory
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
On AM62x, the watchdog is pet before the valid window
is open. Fix min_hw_heartbeat and accommodate a 5% safety
margin with the exception of open window size < 10%,
which shall use <5% due to the smaller open window size.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240403212426.582727-1-jm@ti.com/]
Signed-off-by: Judith Mendez <jm@ti.com>
|
|
This change adds below listed peripherals and respective pin-muxes for
Toradex Aquila AM69 SOM board and associated Aquila development carrier
board.
- ADC (Aquila ADC channels 1 to 4)
- CAN buses (Aquila CAN_1, CAN_2, CAN_3 and CAN_4)
- GPIO names as per Aquila AM69 B2B connector pins
- I2C buses (On-module WKUP_I2C0, Aquila I2C_1, I2C_2, I2C_3, I2C_4, I2C_5 and I2C_6)
- MCUs and associated reserved memory (R5 and C71 cores)
- On-module I2C devices - EEPROM, RTC, Temp-sens, SPI device - TPM
- PWMs (Aquila PWM_1, PWM_2, PWM_3 and PWM_4)
- SD card (Aquila SD_1 and related regulators)
- SPI buses (On-module TPM_SPI, Aquila SPI_1 and SPI_2)
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
This reverts commit 34a7716e046916220534baff7ec73341bf355aa6.
At least one monitor is just not working fine without this HDMI
bit set, so let's keep this aligned with mainline till we have a better
understanding of the issue.
Upstream-Status: Inappropriate [other]
This is just making the code the same as it is upstream.
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Add a GPIO hog to release PCIe reset on the carrier board, this is
required to use M.2 or mPCIe cards.
Verdin AM62 does not have any PCIe interface, however the Verdin family
has PCIe and normally an M.2 or mPCIe slot is available in the carrier
board that can be used with cards that use only the USB interface toward
the host CPU, for example cellular network modem.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240327182801.5997-3-francesco@dolcini.it/]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
Generic GPIOs pinctrl nodes are not correct, gpio[1-4] are into the MCU
domain and should be into &mcu_gpio0, gpio[5-8] were missing and are added
in this commit.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240327182801.5997-2-francesco@dolcini.it/]
Fixes: 7698622fbcf4 ("arm64: dts: ti: Add verdin am62 mallow board")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
This adds the basic device tree skeleton for Toradex Aquila
AM69 module (upcoming) which can be used with Toradex Aquila
development board.
For now, this change adds Aquila AM69 UARTs and on module EMMC
support as a minimal feature set.
Upstream-Status: Pending
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
add toradex,aquila-am69 for Toradex Aquila AM69 SoM
(upcoming) and associated Aquila development carrier board.
Upstream-Status: Pending
Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69
Link: https://www.toradex.com/products/carrier-board/aquila-development-board-kit
Link: https://developer.toradex.com/hardware/aquila-som-family/modules/aquila-am69/
Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
|
|
Allow configuring the two loudspeaker outputs as a
single Bridge Tied Load output getting higher output power.
Upstream-Status: Backport [968b42069fe5dab362b623c6b8a1565709a12f5b]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://lore.kernel.org/r/20230104140412.35575-4-francesco@dolcini.it
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Add nuvoton,spk-btl to configure the two loudspeaker outputs
as Bridge Tied Load
Upstream-Status: Backport [af20f01e4d1d8fdb0ef14dcb95bd76fa8006dfdd]
Cc: David Lin <CTLIN0@nuvoton.com>
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230104195350.149300-1-francesco@dolcini.it
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Convert nau8822 devicetree binding to dtschema.
Change file name to match dtschema naming.
Upstream-Status: Backport [76fa6279eff931b43482f0bef5d65cdcf325de87]
Cc: David Lin <CTLIN0@nuvoton.com>
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230104140412.35575-2-francesco@dolcini.it
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Commit "mmc: core: Use mrq.sbc in close-ended ffu" assigns
prev_idata = idatas[i - 1] but doesn't check that int iterator
i is greater than zero. Add the check.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240313133744.2405325-1-mikko.rapeli@linaro.org/]
Fixes: 4d0c8d0aef63 ("mmc: core: Use mrq.sbc in close-ended ffu")
Link: https://lore.kernel.org/all/20231129092535.3278-1-avri.altman@wdc.com/
Cc: Avri Altman <avri.altman@wdc.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: linux-mmc@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
|
|
Commit "mmc: core: Use mrq.sbc in close-ended ffu" adds flags uint to
struct mmc_blk_ioc_data but it does not get initialized for RPMB ioctls
which now fail.
Fix this by always initializing the struct and flags to zero.
Fixes access to RPMB storage.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240313133744.2405325-1-mikko.rapeli@linaro.org/]
Fixes: 4d0c8d0aef63 ("mmc: core: Use mrq.sbc in close-ended ffu")
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218587
Link: https://lore.kernel.org/all/20231129092535.3278-1-avri.altman@wdc.com/
Cc: Avri Altman <avri.altman@wdc.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: linux-mmc@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
|
|
RC Release 09.02.00.009
|
|
The driver drops RX frames due to flags not being cleared during XDP
buffer init. XDP framework provides helper APIs to initialize and
prepare XDP buffer.
Fix the RX frame drops by calling these helper APIs.
Fixes: 78264a1200f8 ("net: ethernet: ti: icssg_prueth: Add AF_XDP support")
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
|
|
Enable I2C5 node for OV10635 camera EVM so that it can standalone work
with the am57xx-beagle-x15.dtb.
Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
|
|
Add missing 'cdns,max-bit-rate' property for mhdp phy. If not
specified, the default value taken is 8100 Mbps which often leads to
phy link training errors like "CR: max swing reached" and eventually
falls back to 1620 Mbps which limits the maximum supported resolution
to 1920x1200 which is way less than what hardware can actually support
theoretically i.e. 4K.
Adding 2700 (as a HACK) instead of 5400 like other platforms as the
latter causes CRTC SYNC LOST issue for 3840x2160@60fps resolution.
So limiting the phy-rate for max resolution of 3840x2160@30fps as it
is better to have a stable low fps than flaky high fps.
The HACK can be removed when 4K@60fps is stable.
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
|
|
configuration
AM69-SK has a 2 Lane PCIe M.2 Key M PCIe instance (PCIe1) and a 1 Lane
PCIe M.2 Key E PCIe instance (PCIe3), both of which are interfaced via a
shared Serdes instance namely Serdes0. Update the Serdes0 link to enable
Multilink PCIe configuration.
Signed-off-by: Dasnavis Sabiya <sabiya.d@ti.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
|
|
for 100MHz refclk
From: Swapnil Jakhade <sjakhade@cadence.com>
Add register sequences for PCIe multilink + USB configuration for 100MHz
reference clock. The same SSC is used for both PCIe and USB.
Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com>
Signed-off-by: Dasnavis Sabiya <sabiya.d@ti.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
|
|
From: Swapnil Jakhade <sjakhade@cadence.com>
Add register sequences to support multi link PCIe configuration for
100MHz refclk. Maximum two PCIe links are supported.
Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com>
Signed-off-by: Dasnavis Sabiya <sabiya.d@ti.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
|
|
TI commit 390df90762fb ("arm64: defconfig: Enable OX05B1S driver")
enabled OX05B1S driver as module.
Upstream-Status: Inappropriate [Configuration]
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
|
|
RC Release 09.02.00.008
|
|
In current configuration, wm8904 codec on Dahlia carrier board provides
distorted audio output. This happens due to reference clock is fixed to
25MHz and no FLL is enabled. During playback following parameters are set:
44100Hz:
[ 310.276924] wm8904 1-001a: Target BCLK is 1411200Hz
[ 310.276990] wm8904 1-001a: Using 25000000Hz MCLK
[ 310.277001] wm8904 1-001a: CLK_SYS is 12500000Hz
[ 310.277018] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
[ 310.277026] wm8904 1-001a: Selected SAMPLE_RATE of 44100Hz
[ 310.277034] wm8904 1-001a: Selected BCLK_DIV of 80 for 1562500Hz BCLK
[ 310.277044] wm8904 1-001a: LRCLK_RATE is 35
Deviation = 1411200 vs 1562500 = 10.721%
Also, LRCLK_RATE is 35, should be 32.
48000Hz:
[ 302.449970] wm8904 1-001a: Target BCLK is 1536000Hz
[ 302.450037] wm8904 1-001a: Using 25000000Hz MCLK
[ 302.450049] wm8904 1-001a: CLK_SYS is 12500000Hz
[ 302.450065] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
[ 302.450074] wm8904 1-001a: Selected SAMPLE_RATE of 48000Hz
[ 302.450083] wm8904 1-001a: Selected BCLK_DIV of 80 for 1562500Hz BCLK
[ 302.450092] wm8904 1-001a: LRCLK_RATE is 32
Deviation = 1536000 vs 1562500 = 1.725%
Enabling wm8904 FLL via providing mclk-fs property to simple-audio-card
configures clocks properly, but also adjusts audio reference clock
(mclk), which in case of TI AM62 should be avoided, as it only
supports 25MHz output [1][2].
This change enables FLL on wm8904 by providing mclk-fs, and drops
audio reference clock out of DAI configuration, which prevents
simple-audio-card to adjust it before every playback [3].
41000Hz:
[ 111.820533] wm8904 1-001a: FLL configured for 25000000Hz->11289600Hz
[ 111.820597] wm8904 1-001a: Clock source is 0 at 11289600Hz
[ 111.820651] wm8904 1-001a: Using 11289600Hz FLL clock
[ 111.820703] wm8904 1-001a: CLK_SYS is 11289600Hz
[ 111.820798] wm8904 1-001a: Target BCLK is 1411200Hz
[ 111.820847] wm8904 1-001a: Using 11289600Hz FLL clock
[ 111.820894] wm8904 1-001a: CLK_SYS is 11289600Hz
[ 111.820933] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
[ 111.820971] wm8904 1-001a: Selected SAMPLE_RATE of 44100Hz
[ 111.821009] wm8904 1-001a: Selected BCLK_DIV of 80 for 1411200Hz BCLK
[ 111.821051] wm8904 1-001a: LRCLK_RATE is 32
48000Hz:
[ 144.119254] wm8904 1-001a: FLL configured for 25000000Hz->12288000Hz
[ 144.119309] wm8904 1-001a: Clock source is 0 at 12288000Hz
[ 144.119364] wm8904 1-001a: Using 12288000Hz FLL clock
[ 144.119413] wm8904 1-001a: CLK_SYS is 12288000Hz
[ 144.119512] wm8904 1-001a: Target BCLK is 1536000Hz
[ 144.119561] wm8904 1-001a: Using 12288000Hz FLL clock
[ 144.119608] wm8904 1-001a: CLK_SYS is 12288000Hz
[ 144.119646] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
[ 144.119685] wm8904 1-001a: Selected SAMPLE_RATE of 48000Hz
[ 144.119723] wm8904 1-001a: Selected BCLK_DIV of 80 for 1536000Hz BCLK
[ 144.119764] wm8904 1-001a: LRCLK_RATE is 32
[1]: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1175479/processor-sdk-am62x-output-audio_ext_refclk0-as-mclk-for-codec-and-mcbsp/4444986#4444986
[2]: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1188051/am625-audio_ext_refclk1-clock-output---dts-support/4476322#4476322
[3]: sound/soc/generic/simple-card-utils.c#L441
Upstream-Status: Submitted [https://lore.kernel.org/all/20240315102500.18492-1-andrejs.cainikovs@gmail.com/]
Fixes: f5bf894c865b ("arm64: dts: ti: verdin-am62: dahlia: add sound card")
Suggested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
The CPSW Ethernet Switch on TI's K3 SoCs supports two mechanisms to
timestamp packets received on external ports. The first mechanism which
is currently enabled by the am65-cpsw-nuss driver is that of timestamping
all received packets by setting the "TSTAMP_EN" bit in the CPTS_CONTROL
register, which directs the CPTS module to timestamp all received packets,
followed by passing the timestamps via the DMA descriptors. This mechanism
is responsible for triggering errata i2401:
"CPSW: Host Timestamps Cause CPSW Port to Lock up"
The workaround is to use the second mechanism for timestamping received
packets. The second mechanism utilizes the CPTS Event FIFO that records
timestamps corresponding to certain events, with one such event being the
reception of an Ethernet packet with the EtherType field set to Precision
Time Protocol (PTP).
Hence, switch to the second mechanism to address the errata.
The errata affects all K3 SoCs. Link to errata for AM64x:
https://www.ti.com/lit/er/sprz457h/sprz457h.pdf
Fixes: b1f66a5bee07 ("net: ethernet: ti: am65-cpsw-nuss: enable packet timestamping support")
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
|
|
Add OX05B1S device tree bindings.
Signed-off-by: Abhishek Sharma <abhishek.sharma@ti.com>
|
|
OX05B1S is a raw (4x4 RGB-IR bayer) sensor. The LI-OX05B1S-MIPI-137H
module [1] uses a LI-FPC22-IPEX-PI [2] adapter cable for connection
with CSI port on the board.
[1] Link: https://www.mouser.com/ProductDetail/Leopard-Imaging/
LI-OX05B1S-MIPI-137H?qs=VJzv269c%252BPbBVMoFtZszhQ%3D%3D
[2] Link: https://www.leopardimaging.com/product/nvidia-jetson-cameras/
nvidia-jetson-orin-nx-camera-kit/li-fpc22-ipex-pi/
Signed-off-by: Abhishek Sharma <abhishek.sharma@ti.com>
|
|
As of now, only AM62A supports the OX05B1S sensor. The sensor module
can be connected to a single CSI port on AM62A.
Enable the driver for OX05B1S.
Signed-off-by: Abhishek Sharma <abhishek.sharma@ti.com>
|
|
OmniVision OX05B1S is an RGB-IR sensor, i.e. it uses a 4x4 R,G,B,Ir bayer
pattern to capture both visible and near-infrared light. Every alternate
frame, the sensor changes the exposure and the analogue/digital gain
registers to stream an -
A. IR-dominant frame on CSI-2 virtual channel 0
B. RGB-dominant frame on CSI-2 virtual channel 1
Both of these streams are captured at a resolution of 2592x1944, 30 fps
each (60fps total).
This driver also supports a few v4l2 controls like exposure and gain
controls. The RGB dominant stream uses the normal v4l2 control
identifiers (CIDs) for exposure and gain change while custom CIDs have been
defined for the IR dominant stream.
Signed-off-by: Abhishek Sharma <abhishek.sharma@ti.com>
|
|
The OX05B1S camera sensor supports both RGB and IR stream exposure/gain
controls.
The sensor has one source pad which gives out 2 streams: IR
dominant (stream 0) and RGB dominant stream (stream 1). When programming
the exposure/gain settings for the camera from a user space application
like V4L2 user space API, we are unable to specify the stream for
which the exposure/gain change is required.
Hence, we have defined 3 custom control IDs for IR channel exposure,
anologue and digital gain control. These custom controls added for IR
channel are not an upstream acceptable solution and a better solution is
required in the V4L2 framework for exposure/gain control in multistream
sensors to remove this HACK.
Signed-off-by: Abhishek Sharma <abhishek.sharma@ti.com>
|
|
J721E common processor board can be interfaced with the infotainment
expansion board[0] to enable the following audio/video interfaces in
addition to the peripherals provided by the common processor board:
- Two Audio codecs each with three Stereo Inputs and four Stereo Outputs
- Audio input over FPD Link III
- Digital Audio Interface TX/RX
- HDMI/FPD LINK III Display out
- LI/OV Camera input
Add support for TFP410 HDMI bridge located on the Infotainment Expansion
Board (connected to J46 & J51).
Add a HDMI connector node and connect the endpoints as below:
DSS => TFP410 bridge => HDMI connector
Also add the pinmux data and board muxes for DPI.
Rest of the peripherals are missing as of now.
[0]: <https://www.ti.com/lit/ug/spruit0a/spruit0a.pdf>
Link: <https://git.ti.com/cgit/ti-linux-kernel/ti-upstream-tools/commit/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board-infotainment.dtso?id=da742e7e0043555c6705ea75dcda55c1d29a0520>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
[j-choudhary@ti.com: minor cleanup]
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
|
|
RC Release 09.02.00.007
|
|
IMX390 is a 2.1MP raw (bayer) sensor, the rugged camera module by D3 [1]
packages it with an FPDLink-III serializer (DS90UB953) for use with
sensor fusion setups using FPDLink-III deserializer boards. Add overlays
for the cases when the modules are connected to ports on the DS90UB960
deserializer in fusion EVM when connected to third CSI port in a device
like J784S4 or AM69. This helps to enable 12 camera use cases on AM69 SK.
1 - https://www.d3engineering.co/product/designcore-d3rcm-imx390-953-rugged-camera-module/
Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Acked-by: Jai Luthra <j-luthra@ti.com>
Tested-by: Abhay Chirania <a-chirania@ti.com>
|
|
Fusion application board [1] can be used to connect multiple FPDLink-III
based sensors to TI EVMs. Upto 12x sensors can simultaneously stream
over the three CSI RX ports on J784S4/AM69, add an overlay to support
the fusion board connected to CSI port 2(CSI_AUX port) on AM69 SK to
enable 12 camera applications with AM69 SK.
Link: https://svtronics.com/portfolio/evm577pfusion-v1-0-fusion/ [1]
Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Acked-by: Jai Luthra <j-luthra@ti.com>
Tested-by: Abhay Chirania <a-chirania@ti.com>
|
|
Fusion application board [1] can be used to connect multiple FPDLink-III
based sensors to TI EVMs. Upto 8x sensors can simultaneously stream
over the two CSI RX ports on J722S EVM.
Link: https://svtronics.com/portfolio/evm577pfusion-v1-0-fusion/ [1]
Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Acked-by: Jai Luthra <j-luthra@ti.com>
Tested-by: Abhay Chirania <a-chirania@ti.com>
|
|
Arducam's UC-A09 is a V3Link "mini" fusion board. [1]
It can be used to connect multiple V3Link (and FPD-III)
based cameras to TI EVMs using a single 22-pin FFC (4-lane)
CSI2 connector. Add an overlay to support it on J722S EVM.
[1] https://www.arducam.com/downloads/datasheet/Arducam_V3Link_Datasheet.pdf
Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Acked-by: Jai Luthra <j-luthra@ti.com>
Tested-by: Abhay Chirania <a-chirania@ti.com>
|