summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
5 daysarm64: dts: ti: k3-am69-aquila: adjust SOM connector pinstoradex_ti-linux-6.1.yParth Pancholi
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>
8 daysarm64: dts: ti: k3-am69-aquila: add ethernet, PCIE and related SERDESParth Pancholi
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>
13 daysarm64: dts: ti: k3-am62-verdin-dahlia: support sleep-mociStefan Eichenberger
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>
13 daysarm64: dts: ti: k3-am62-verdin: replace sleep-moci hog with regulatorStefan Eichenberger
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>
13 daystoradex_defconfig: add USB_ONBOARD_HUBStefan Eichenberger
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>
2024-04-26toradex_defconfig: enable user-space i/o driver for hid subsystemMarcel Ziswiler
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>
2024-04-23watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety marginFrancesco Dolcini
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>
2024-04-22Bluetooth: btnxpuart: fix recv_buf() return valueFrancesco Dolcini
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>
2024-04-19ASoC: ti: davinci-mcasp: Fix race condition during probeJoao Paulo Goncalves
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>
2024-04-19arm64: dts: ti: k3-am69-aquila: add IO expander, adjust pinmuxParth Pancholi
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>
2024-04-18arm64: dts: k3-am625-verdin: enable nau8822 pllAndrejs Cainikovs
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>
2024-04-18ASoC: nau8822: add MCLK supportAndrejs Cainikovs
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>
2024-04-18ASoC: nau8822: move nau8822_set_dai_sysclk()Andrejs Cainikovs
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>
2024-04-16phy: ti: gmii-sel: Enable SGMII mode for J784S4Parth Pancholi
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>
2024-04-16net: ethernet: ti: am65-cpsw: Enable SGMII mode for J784S4 CPSW9GParth Pancholi
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>
2024-04-15arm64: dts: ti: k3-am69-aquila: add dev carrier board peripheralsParth Pancholi
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>
2024-04-05watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate 5% safety marginJudith Mendez
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>
2024-04-05arm64: dts: ti: k3-am69-aquila: add buses, gpio, mcu, sd-card et alParth Pancholi
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>
2024-03-28Revert "Revert "drm/bridge: lt8912b: set hdmi or dvi mode""Francesco Dolcini
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>
2024-03-27arm64: dts: ti: k3-am625-verdin: add PCIe reset gpio hogFrancesco Dolcini
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>
2024-03-27arm64: dts: ti: verdin-am62: mallow: fix GPIOs pinctrlFrancesco Dolcini
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>
2024-03-27arm64: dts: ti: add aquila am69Parth Pancholi
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>
2024-03-27dt-bindings: arm: ti: Add Toradex Aquila AM69Parth Pancholi
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>
2024-03-26ASoC: nau8822: add speaker Bridge Tied Output configurationEmanuele Ghidoli
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>
2024-03-26ASoC: dt-bindings: nau8822: add nuvoton,spk-btl property to dtschemaEmanuele Ghidoli
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>
2024-03-26ASoC: dt-bindings: nau8822: convert to the dtschemaEmanuele Ghidoli
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>
2024-03-25mmc core block.c: avoid negative index with array accessMikko Rapeli
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>
2024-03-25mmc core block.c: initialize mmc_blk_ioc_dataMikko Rapeli
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>
2024-03-22Merge tag '09.02.00.009' into dev/toradex_ti-linux-6.1.y-merge-09.02.00.009Francesco Dolcini
RC Release 09.02.00.009
2024-03-20net: ethernet: ti: icssg-prueth: Fix RX frame drops in XDPMD Danish Anwar
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>
2024-03-20arm: dts: dt-overlays: Enable I2C5 for OV10635 camera on am57xx-evmSukrut Bellary
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>
2024-03-20HACK: arm64: dts: ti: k3-am69-sk: Add serdes_dp_link max-bit-rateJayesh Choudhary
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>
2024-03-19arm64: dts: ti: k3-am69-sk: Update Serdes0 to support Multilink PCIe ↵Dasnavis Sabiya
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>
2024-03-19phy: cadence-torrent: Add PCIe multilink + USB with same SSC register config ↵Dasnavis Sabiya
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>
2024-03-19phy: cadence-torrent: Add multi link PCIe configuration for 100MHz refclkDasnavis Sabiya
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>
2024-03-16toradex_defconfig: refresh after mergeFrancesco Dolcini
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>
2024-03-16Merge tag '09.02.00.008' into dev/toradex_ti-linux-6.1.y-merge-09.02.00.008Francesco Dolcini
RC Release 09.02.00.008
2024-03-15arm64: dts: ti: verdin-am62: dahlia: fix audio clockAndrejs Cainikovs
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>
2024-03-14net: ethernet: ti: am65-cpsw/cpts: Add workaround for errata i2401Chintan Vankar
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>
2024-03-14dt-bindings: media: i2c: ovti,ox05b: add OX05B1S sensorAbhishek Sharma
Add OX05B1S device tree bindings. Signed-off-by: Abhishek Sharma <abhishek.sharma@ti.com>
2024-03-14arm64: boot: dts: ti: k3-am62a7: Overlay for LI OX05B1SAbhishek Sharma
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>
2024-03-14arm64: defconfig: Enable OX05B1S driverAbhishek Sharma
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>
2024-03-14media: i2c: ox05b1s: add OmniVision OX05B1S driverAbhishek Sharma
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>
2024-03-14HACK: media: v4l2-core: v4l2-ctrls-defs: Add custom IR exposure/gainAbhishek Sharma
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>
2024-03-14arm64: dts: ti: k3-j721e: Add overlay for J721E Infotainment Expansion BoardTomi Valkeinen
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>
2024-03-14Merge tag '09.02.00.007' into toradex_ti-linux-6.1.yFrancesco Dolcini
RC Release 09.02.00.007
2024-03-13arm64: dts: ti: Add overlays for FPDLink IMX390 RCM on third CSI portVaishnav Achath
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>
2024-03-13arm64: dts: ti: k3-am69-sk: Add overlay for fusion EVM on CSI AUX portVaishnav Achath
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>
2024-03-13arm64: dts: ti: k3-j722s-evm: Add overlay for fusion boardVaishnav Achath
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>
2024-03-13arm64: dts: ti: k3-j722s-evm: Add overlay for dual v3link fusionVaishnav Achath
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>