Marek Vasut [Thu, 31 Aug 2023 18:20:19 +0000 (20:20 +0200)]
arm64: dts: imx8mp: Switch WiFI enable signal to mmc-pwrseq-simple on i.MX8MP DHCOM SoM
The reset-gpio is connected to WL_REG_EN signal of the WiFi MAC, the
mmc-pwrseq-simple driver is better suited to operate this signal as
it is tied to the slot instead of the MAC, and it can enable the MAC
before the brcmfmac driver binds to it. Make use of the MMC power
sequencer.
Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Adam Ford [Sun, 8 Oct 2023 14:02:38 +0000 (09:02 -0500)]
arm64: dts: imx8mp-beacon: Add DMIC support
The baseboard has a connector for a pulse density microphone.
This is connected via the micfil interface and uses the DMIC
audio codec with the simple-audio-card.
Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Adam Ford [Sun, 8 Oct 2023 14:02:37 +0000 (09:02 -0500)]
arm64: dts: imx8mn-beacon: Add DMIC support
The baseboard has a connector for a pulse density microphone.
This is connected via the micfil interface and uses the DMIC
audio codec with the simple-audio-card.
Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Adam Ford [Sun, 8 Oct 2023 14:02:36 +0000 (09:02 -0500)]
arm64: dts: imx8mm-beacon: Add DMIC support
The baseboard has a connector for a pulse density microphone.
This is connected via the micfil interface and uses the DMIC
audio codec with the simple-audio-card.
Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Adam Ford [Sun, 8 Oct 2023 14:02:35 +0000 (09:02 -0500)]
arm64: dts: imx8mm-beacon: Migrate sound card to simple-audio-card
Instead of using a custom glue layer connecting the wm8962 CODEC
to the SAI3 sound-dai, migrate the sound card to simple-audio-card.
This also brings this board in line with the imx8mn-beacon and
imx8mp-beacon.
Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Per wlf,wm8524.yaml, 'clocks' and 'clock-names' are not valid
properties.
Remove them to fix the following schema warning:
audio-codec: Unevaluated properties are not allowed ('clock-names', 'clocks' were unexpected)
from schema $id: http://devicetree.org/schemas/sound/wlf,wm8524.yaml#
Gregor Herburger [Mon, 2 Oct 2023 08:43:52 +0000 (10:43 +0200)]
arm64: dts: freescale: add initial device tree for TQMLS1043A/TQMLS1046A
This adds support for the TQMLS1043A and TQMLS1046A SOM and the
MBLS10xxA baseboard. TQMLS1043A and TQMLS1046A share a common layout
and can be used on the MBLS10xxA.
Signed-off-by: Gregor Herburger <gregor.herburger@ew.tq-group.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
The 8x RJ45 ports are connected with an 8-port PHY: Marvell 88E2580
supporting up to 5Gbps, while SoC and magnetics are limited to 2.5Gbps.
However 2500 speed is untested due to documentation and drivier
limitations. To avoid confusion the phy nodes have been explicitly
limited to 1000 for now.
The PCI nodes are disabled, but explicitly added to mark that this board
can have pci.
It is expected that the bootloader will patch the status property
"okay" and disable 2x RJ45 ports, according to active serdes configuration.
Josua Mayer [Sun, 1 Oct 2023 10:32:56 +0000 (12:32 +0200)]
arm64: dts: lx2160a: describe the SerDes block #2
Add description for the LX2160A second SerDes block.
It is functionally identical to the first one already added in
commit 3cbe93a1f540 ("arch: arm64: dts: lx2160a: describe the SerDes
block #1").
The SerDes driver currently updates the registers of all 8 lanes by
default during probe. Because currently this driver only supports
configuration of network protocols, this can lead to problems with
certain configurations.
Set status property to "disabled" by default so that existing boards are
not impacted.
Peng Fan [Sun, 1 Oct 2023 08:27:58 +0000 (16:27 +0800)]
arm64: dts: imx93: update gpio node
Per binding doc, i.MX93 GPIO supports two interrupts and one register
base, compatible with i.MX8ULP. The current fsl,imx7ulp-gpio compatible
could work for i.MX93 in gpio-vf610.c driver, it is based on the base
address are splited into two with offset added in device tree node.
Now following hardware design, using one register base in device tree node.
This may break users who use compatible fsl,imx7ulp-gpio to enable
i.MX93 GPIO.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Peng Fan [Sun, 1 Oct 2023 08:27:57 +0000 (16:27 +0800)]
arm64: dts: imx8ulp: update gpio node
The i.MX8ULP GPIO supports two interrupts and one register base,
the current fsl,imx7ulp-gpio compatible could work for i.MX8ULP in
gpio-vf610.c driver, it is based on the base address are splited
into two with offset added in device tree node. Now following
hardware design, using one register base in device tree node.
This may break users who use compatible fsl,imx7ulp-gpio to enable
i.MX8ULP GPIO.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arm64: dts: imx8mm-venice-gw790: Remove phy-mode from switch node
Per microchip,ksz.yaml, phy-mode is not a valid property in the
top-level switch node.
phy-mode = "rgmii-id" is already passed in the CPU port switch (port@5).
Remove it from the top-level switch node to fix the following
schema warning:
switch@5f: Unevaluated properties are not allowed ('phy-mode' was unexpected)
from schema $id: http://devicetree.org/schemas/net/dsa/microchip,ksz.yaml
arm64: dts: imx8mp-verdin: Remove invalid property from eqos
Per nxp,dwmac-imx.yaml, it is not valid to pass 'phy-supply'.
The reg_module_eth1phy regulator is marked with 'regulator-always-on',
so it is safe to remove it from the eqos node.
Remove it to fix the following schema warning:
imx8mp-verdin-nonwifi-dahlia.dtb: ethernet@30bf0000: Unevaluated properties are not allowed ('phy-supply' was unexpected)
from schema $id: http://devicetree.org/schemas/net/nxp,dwmac-imx.yaml#
The first compatible entry for the jpegenc should be 'nxp,imx8qm-jpgenc'.
Change it accordingly to fix the following schema warning:
imx8qm-apalis-eval.dtb: jpegenc@58450000: compatible: 'oneOf' conditional failed, one must be fixed:
'nxp,imx8qm-jpgdec' is not one of ['nxp,imx8qxp-jpgdec', 'nxp,imx8qxp-jpgenc']
'nxp,imx8qm-jpgenc' was expected
'nxp,imx8qxp-jpgdec' was expected
Per fsl-lpuart.yaml, the dmas and dma-names entries should be
'rx' followed by 'tx'.
Change the order to fix the following schema warning:
imx93-11x11-evk.dtb: serial@44380000: dma-names:0: 'rx' was expected
from schema $id: http://devicetree.org/schemas/serial/fsl-lpuart.yaml#
imx93-11x11-evk.dtb: serial@44380000: dma-names:1: 'tx' was expected
from schema $id: http://devicetree.org/schemas/serial/fsl-lpuart.yaml#
Per gateworks-gsc.yaml, #address-cells and #size-cells are mandatory
properties.
Pass them to fix the following schema warning:
imx8mm-venice-gw7903.dtb: gsc@20: '#address-cells' is a required property
from schema $id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml#
imx8mm-venice-gw7903.dtb: gsc@20: '#size-cells' is a required property
from schema $id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml#
Pass 'fsl,imx8dxl-sc-wdt' to fix the following schema warning:
system-controller: watchdog:compatible:0: 'fsl,imx8qxp-sc-wdt' was expected
from schema $id: http://devicetree.org/schemas/firmware/fsl,scu.yaml#
system-controller: watchdog:compatible: ['fsl,imx-sc-wdt'] is too short
from schema $id: http://devicetree.org/schemas/firmware/fsl,scu.yaml#
Pass 'fsl,imx8dxl-sc-thermal' to fix the following schema warning:
system-controller: thermal-sensor:compatible:0: 'fsl,imx8qxp-sc-thermal' was expected
from schema $id: http://devicetree.org/schemas/firmware/fsl,scu.yaml#
system-controller: thermal-sensor:compatible: ['fsl,imx-sc-thermal'] is too short
from schema $id: http://devicetree.org/schemas/firmware/fsl,scu.yaml#
Pass 'fsl,imx8dl-scu-pd' to fix the following schema warning:
system-controller: power-controller:compatible:0: 'fsl,scu-pd' is not one of ['fsl,imx8qm-scu-pd', 'fsl,imx8qxp-scu-pd']
from schema $id: http://devicetree.org/schemas/firmware/fsl,scu.yaml#
arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size
Wrap the usb controllers in an intermediate simple-bus and use it to
constrain the dma address size of these usb controllers to the 40b
that they generate toward the interconnect. This is required because
the SoC uses 48b address sizes and this mismatch would lead to smmu
context faults [1] because the usb generates 40b addresses while the
smmu page tables are populated with 48b wide addresses.
[1]
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
xhci-hcd xhci-hcd.0.auto: hcc params 0x0220f66d hci version 0x100 quirks 0x0000000002000010
xhci-hcd xhci-hcd.0.auto: irq 108, io mem 0x03100000
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
arm-smmu 5000000.iommu: Unhandled context fault: fsr=0x402, iova=0xffffffb000, fsynr=0x0, cbfrsynra=0xc01, cb=3
Shawn Guo [Tue, 10 Oct 2023 02:51:36 +0000 (10:51 +0800)]
Merge tag 'imx-fixes-6.6' into imx/dt64
i.MX fixes for 6.6:
- A couple of i.MX8MP device tree changes from Adam Ford to fix clock
configuration regressions caused by 16c984524862 ("arm64: dts: imx8mp:
don't initialize audio clocks from CCM node").
- Fix pmic-irq-hog GPIO line in imx93-tqma9352 device tree.
- Fix a mmemory leak with error handling path of imx_dsp_setup_channels()
in imx-dsp driver.
- Fix HDMI node in imx8mm-evk device tree.
- Add missing clock enable functionality for imx8mm_soc_uid() function
in soc-imx8m driver.
- Add missing imx8mm-prt8mm.dtb build target.
The Thermal Monitoring Unit (TMU) interrupt is number 83.
Describe it in the devicetree to fix the following schema warning:
imx93-11x11-evk.dtb: tmu@44482000: 'oneOf' conditional failed, one must be fixed:
'interrupts' is a required property
'interrupts-extended' is a required property
from schema $id: http://devicetree.org/schemas/thermal/qoriq-thermal.yaml#
Change it accordingly to fix the following schema warning:
imx8dxl-evk.dtb: i2c@5a800000: compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8dxl-lpi2c', 'fsl,imx8qxp-lpi2c', 'fsl,imx7ulp-lpi2c'] is too long
'fsl,imx8dxl-lpi2c' is not one of ['fsl,imx7ulp-lpi2c']
'fsl,imx7ulp-lpi2c' was expected
from schema $id: http://devicetree.org/schemas/i2c/i2c-imx-lpi2c.yaml#
Per fsl,scu-pinctrl.yaml, the pinctrl node names should end with 'grp'.
Change them to fix the following schema warning:
imx8qxp-colibri-iris-v2.dtb: pinctrl: 'enable_3v3_vmmc', 'lcd-lvds' do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/pinctrl/fsl,scu-pinctrl.yaml#
arm64: dts: imx8dxl-ss-conn: Complete the FEC compatibles
Use the full compatible list for the imx8dl FEC as per fsl,fec.yaml.
This fixes the following schema warning:
imx8dxl-evk.dtb: ethernet@5b040000: compatible: 'oneOf' conditional failed, one must be fixed:
['fsl,imx8qm-fec'] is too short
'fsl,imx8qm-fec' is not one of ['fsl,imx25-fec', 'fsl,imx27-fec', 'fsl,imx28-fec', 'fsl,imx6q-fec', 'fsl,mvf600-fec', 'fsl,s32v234-fec']
'fsl,imx8qm-fec' is not one of ['fsl,imx53-fec', 'fsl,imx6sl-fec']
'fsl,imx8qm-fec' is not one of ['fsl,imx35-fec', 'fsl,imx51-fec']
'fsl,imx8qm-fec' is not one of ['fsl,imx6ul-fec', 'fsl,imx6sx-fec']
'fsl,imx8qm-fec' is not one of ['fsl,imx7d-fec']
'fsl,imx8mq-fec' was expected
'fsl,imx8qm-fec' is not one of ['fsl,imx8mm-fec', 'fsl,imx8mn-fec', 'fsl,imx8mp-fec', 'fsl,imx93-fec']
'fsl,imx8qm-fec' is not one of ['fsl,imx8dxl-fec', 'fsl,imx8qxp-fec']
'fsl,imx8qm-fec' is not one of ['fsl,imx8ulp-fec']
from schema $id: http://devicetree.org/schemas/net/fsl,fec.yaml#
arm64: dts: imx8m: Remove 'nand-on-flash-bbt' from nand controller
The 'nand-on-flash-bbt' property is a property for the NAND device,
not for the GPMI nand controller.
Remove it to fix the following schema warnings:
imx8mm-ddr4-evk.dtb: nand-controller@33002000: Unevaluated properties are not allowed ('nand-on-flash-bbt' was unexpected)
from schema $id: http://devicetree.org/schemas/mtd/gpmi-nand.yaml#
imx8mn-bsh-smm-s2.dtb: nand-controller@33002000: Unevaluated properties are not allowed ('nand-on-flash-bbt' was unexpected)
from schema $id: http://devicetree.org/schemas/mtd/gpmi-nand.yaml#
The mac-address is passed as a subnode of the eeprom and its 'reg'
property describe a range of addresses in the eeprom.
Therefore, #size-cells should be set to 1 instead of 0.
This fixes the following schema warnings:
imx8mp-debix-som-a-bmb-08.dtb: eeprom@52: #size-cells:0:0: 1 was expected
from schema $id: http://devicetree.org/schemas/eeprom/at24.yaml#
imx8mp-debix-som-a-bmb-08.dtb: eeprom@52: mac-address@0:reg: [[0], [12]] is too long
from schema $id: http://devicetree.org/schemas/eeprom/at24.yaml#
imx8mp-debix-som-a-bmb-08.dtb: eeprom@52: mac-address@c:reg: [[12], [12]] is too long
from schema $id: http://devicetree.org/schemas/eeprom/at24.yaml#
imx8mp-debix-som-a-bmb-08.dtb: eeprom@52: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'mac-address@0', 'mac-address@c' were unexpected)
from schema $id: http://devicetree.org/schemas/eeprom/at24.yaml#
imx8qm-apalis-v1.1-ixora-v1.2.dtb: pwm@5d000000: 'oneOf' conditional failed, one must be fixed:
'interrupts' is a required property
'interrupts-extended' is a required property
from schema $id: http://devicetree.org/schemas/pwm/imx-pwm.yaml#
Per bq25890.yaml, 'phys', 'ti,use-vinmin-threshold', 'ti,vinmin-threshold'
are not valid properties.
Remove them to fix the following schema warning:
imx8mq-librem5-r2.dtb: charger@6a: Unevaluated properties are not allowed ('phys', 'ti,use-vinmin-threshold', 'ti,vinmin-threshold' were unexpected)
from schema $id: http://devicetree.org/schemas/power/supply/bq25890.yaml#
Per fsl-imx-gpio.yaml, 'pad-wakeup' and 'pad-wakeup-num' are not
valid properties/
Remove them to fix the following schema warning:
imx8qm-apalis-ixora-v1.1.dtb: gpio@5d0a0000: 'pad-wakeup', 'pad-wakeup-num' do not match any of the regexes: '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/gpio/fsl-imx-gpio.yaml#
Per fsl-imx-gpio.yaml, 'ngpios' is not a valid property.
Remove it to fix the following schema warning:
imx8qm-apalis-v1.1-ixora-v1.2.dtb: gpio@5d0d0000: 'ngpios' does not match any of the regexes: '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/gpio/fsl-imx-gpio.yaml#
Per mdio-gpio.yaml, the node name should be 'mdio'.
Change it accordingly to fix the following schema warning:
imx8mq-zii-ultra-zest.dtb: bitbang-mdio: $nodename:0: 'bitbang-mdio' does not match '^mdio(@.*)?'
from schema $id: http://devicetree.org/schemas/net/mdio-gpio.yaml#
According to st,st-sensors.yaml, the 'interrupt-names' property is
not a valid one.
Remove it to fix the following schema warnings:
imx8mp-venice-gw73xx-2x.dtb: accelerometer@19: 'interrupt-names' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/iio/st,st-sensors.yaml#
arm64: dts: imx8ulp: Fix the SPI clock-names order
spi-nxp-fspi.yaml expects the clock-names entries to be in
the following order: "fspi_en", "fspi".
Change it accordingly to fix the following schema warnings:
imx8ulp-evk.dtb: spi@29810000: clock-names:0: 'fspi_en' was expected
from schema $id: http://devicetree.org/schemas/spi/spi-nxp-fspi.yaml#
imx8ulp-evk.dtb: spi@29810000: clock-names:1: 'fspi' was expected
from schema $id: http://devicetree.org/schemas/spi/spi-nxp-fspi.yaml#
arm64: dts: imx8dxl-ss-conn: Move conn_enet0_root_clk outside of soc
The conn_enet0_root_clk node does not have any register associated with it,
so it should be moved outside of soc to fix schema warning from
simple-bus.yaml.
arm64: dts: imx8mp-phyboard-pollux: Add support for RS232/RS485
Add UART2 for RS232/RS485 support.
Signed-off-by: Teresa Remmet <t.remmet@phytec.de>
(Updated the node by not setting the reserved bits(BIT 0 and BIT 3)
and enabled internal pullup for RX and TX.) Signed-off-by: Yashwanth Varakala <y.varakala@phytec.de> Signed-off-by: Cem Tenruh <c.tenruh@phytec.de> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Alexander Stein [Tue, 22 Aug 2023 12:08:00 +0000 (14:08 +0200)]
arm64: dts: mba8mx: Add DSI-LVDS bridge nodes
This adds the DSI-LVDS bridge including the regulator, backlight and
an unspecified panel. It is expected to set the compatible when the
display chain is enabled.
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
imx8qm-apalis-ixora-v1.1.dtb: ethernet@5b040000: Unevaluated properties are not allowed ('fsl,rgmii_txc_dly' was unexpected)
from schema $id: http://devicetree.org/schemas/net/fsl,fec.yaml#
As per mmc-pwrseq-simple.yaml, the correct way to describe the GPIO
is by using the 'reset-gpios' property.
Change it accordingly to fix the following schema warning:
imx8mq-thor96.dtb: sdio-pwrseq: 'gpio' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/mmc/mmc-pwrseq-simple.yaml#
Pass the required '#clock-cells' property and remove the invalid
'interrupt-names' property to fix the following schema warnings:
imx8mq-pico-pi.dtb: pmic@4b: '#clock-cells' is a required property
from schema $id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
imx8mq-pico-pi.dtb: pmic@4b: 'interrupt-names' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
The 'lane-mapping' property is not a valid one and cause the following
schema warning:
imx8mq-librem5-r2.dtb: pmic-5v-hog: 'lane-mapping' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/gpio/gpio-hog.yaml#
Marek Vasut [Tue, 22 Aug 2023 00:50:07 +0000 (02:50 +0200)]
arm64: dts: imx8mp: Switch PCIe to HSIO PLL on i.MX8MP DHCOM PDK2 and generate clock from SoC
The PDK2 carrier board had to be manually patched to obtain working PCIe
with the i.MX8MP DHCOM SoM so far, because the PCIe clock generator has
not been connected to the PCIe block REF_PAD_CLK inputs.
Switch to use of HSIO PLL as the clock source for the PCIe block instead,
and use the REF_PAD_CLK as outputs to generate PCIe clock from the SoC.
This way, it is not necessary to patch the PDK2 in any way to obtain a
working PCIe.
Note that PDK3 has PCIe clock generator always connected to REF_PAD_CLK
and is not affected.
Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Tim Harvey [Tue, 11 Jul 2023 22:15:18 +0000 (15:15 -0700)]
arm64: dts: imx8mp: add imx8mp-venice-gw74xx-imx219 overlay for rpi v2 camera
Add support for the RaspberryPi Camera v2 which is an IMX219 8MP module:
- https://datasheets.raspberrypi.com/camera/camera-v2-schematics.pdf
- has its own on-board 24MHz osc so no clock required from baseboard
- pin 11 enables 1.8V and 2.8V LDO which is connected to
GW74xx MIPI_GPIO4 (IMX8MP GPIO1_IO4) so we use this as a gpio
Liu Ying [Mon, 14 Aug 2023 08:11:47 +0000 (16:11 +0800)]
arm64: dts: imx8mm-evk: Fix hdmi@3d node
The hdmi@3d node's compatible string is "adi,adv7535" instead of
"adi,adv7533" or "adi,adv751*".
Fix the hdmi@3d node by means of:
* Use default register addresses for "cec", "edid" and "packet", because
there is no need to use a non-default address map.
* Add missing interrupt related properties.
* Drop "adi,input-*" properties which are only valid for adv751*.
* Add VDDEXT_3V3 fixed regulator
* Add "*-supply" properties, since most are required.
* Fix label names - s/adv7533/adv7535/.
Nathan Rossi [Mon, 14 Aug 2023 01:57:00 +0000 (01:57 +0000)]
soc: imx8m: Enable OCOTP clock for imx8mm before reading registers
Commit 836fb30949d9 ("soc: imx8m: Enable OCOTP clock before reading the
register") added configuration to enable the OCOTP clock before
attempting to read from the associated registers.
This same kexec issue is present with the imx8m SoCs that use the
imx8mm_soc_uid function (e.g. imx8mp). This requires the imx8mm_soc_uid
function to configure the OCOTP clock before accessing the associated
registers. This change implements the same clock enable functionality
that is present in the imx8mq_soc_revision function for the
imx8mm_soc_uid function.
Commit 16c984524862 ("arm64: dts: imx8mp: don't initialize audio clocks
from CCM node") removed the Audio clocks from the main clock node, because
the intent is to force people to setup the audio PLL clocks per board
instead of having a common set of rates since not all boards may use
the various audio PLL clocks for audio devices.
This resulted in an incorrect clock rate when attempting to playback
audio, since the AUDIO_PLL2 wasn't set any longer. Fix this by
setting the AUDIO_PLL2 rate inside the SAI3 node since it's the SAI3
that needs it.
Fixes: 16c984524862 ("arm64: dts: imx8mp: don't initialize audio clocks from CCM node") Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Adam Ford [Sat, 19 Aug 2023 10:50:01 +0000 (05:50 -0500)]
arm64: dts: imx8mp: Fix SDMA2/3 clocks
Commit 16c984524862 ("arm64: dts: imx8mp: don't initialize audio clocks
from CCM node") removed the Audio clocks from the main clock node, because
the intent is to force people to setup the audio PLL clocks per board
instead of having a common set of rates, since not all boards may use
the various audio PLL clocks in the same way.
Unfortunately, with this parenting removed, the SDMA2 and SDMA3
clocks were slowed to 24MHz because the SDMA2/3 clocks are controlled
via the audio_blk_ctrl which is clocked from IMX8MP_CLK_AUDIO_ROOT,
and that clock is enabled by pgc_audio.
Per the TRM, "The SDMA2/3 target frequency is 400MHz IPG and 400MHz
AHB, always 1:1 mode, to make sure there is enough throughput for all
the audio use cases."
Instead of cluttering the clock node, place the clock rate and parent
information into the pgc_audio node.
With the parenting and clock rates restored for IMX8MP_CLK_AUDIO_AHB,
and IMX8MP_CLK_AUDIO_AXI_SRC, it appears the SDMA2 and SDMA3 run at
400MHz again.
Fixes: 16c984524862 ("arm64: dts: imx8mp: don't initialize audio clocks from CCM node") Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Christophe JAILLET [Sun, 15 Jan 2023 18:13:46 +0000 (19:13 +0100)]
firmware: imx-dsp: Fix an error handling path in imx_dsp_setup_channels()
If mbox_request_channel_byname() fails, the memory allocated a few lines
above still need to be freed before going to the error handling path.
Fixes: 046326989a18 ("firmware: imx: Save channel name for further use") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>