platform/kernel/linux-rpi.git
15 months agoarm64: dts: freescale: imx8qxp-mek: enable cadence usb3
Frank Li [Mon, 27 Mar 2023 14:55:23 +0000 (10:55 -0400)]
arm64: dts: freescale: imx8qxp-mek: enable cadence usb3

Enable USB3 controller, phy and typec related nodes.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8qxp: add cadence usb3 support
Frank Li [Mon, 27 Mar 2023 14:55:22 +0000 (10:55 -0400)]
arm64: dts: imx8qxp: add cadence usb3 support

There are cadence usb3.0 controller in 8qxp and 8qm.
Add usb3 node at common connect subsystem.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: add missing #clock-cells
Peng Fan [Tue, 28 Mar 2023 06:11:23 +0000 (14:11 +0800)]
arm64: dts: imx8mq-librem5: add missing #clock-cells

'#clock-cells' is a dependency of 'clock-output-names', following
binding doc, add it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mm-prt8mm: update pinctrl to match dtschema
Peng Fan [Tue, 28 Mar 2023 03:36:40 +0000 (11:36 +0800)]
arm64: dts: imx8mm-prt8mm: update pinctrl to match dtschema

The dtschema requires 'grp' in the end, so update the name

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mn-bsh-smm: update pinctrl to match dtschema
Peng Fan [Tue, 28 Mar 2023 03:36:39 +0000 (11:36 +0800)]
arm64: dts: imx8mn-bsh-smm: update pinctrl to match dtschema

The dtschema requires 'grp' in the end, so update the name

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mm-emcon: update pinctrl to match dtschema
Peng Fan [Tue, 28 Mar 2023 03:36:38 +0000 (11:36 +0800)]
arm64: dts: imx8mm-emcon: update pinctrl to match dtschema

The dtschema requires 'grp' in the end, so update the name

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: update pinctrl to match dtschema
Peng Fan [Tue, 28 Mar 2023 03:36:37 +0000 (11:36 +0800)]
arm64: dts: imx8mq-librem5: update pinctrl to match dtschema

The dtschema requires 'grp' in the end, so update the name.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mm-ddr4-evk: update gpmi pinctrl to match dtschema
Peng Fan [Tue, 28 Mar 2023 03:36:36 +0000 (11:36 +0800)]
arm64: dts: imx8mm-ddr4-evk: update gpmi pinctrl to match dtschema

The dtschema requires 'grp' in the end, so update the name.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mn-evk: update i2c pinctrl to match dtschema
Peng Fan [Tue, 28 Mar 2023 03:36:35 +0000 (11:36 +0800)]
arm64: dts: imx8mn-evk: update i2c pinctrl to match dtschema

The dtschema requires 'grp' in the end, so update the name.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Add GPT blocks
Uwe Kleine-König [Mon, 27 Mar 2023 17:35:26 +0000 (19:35 +0200)]
arm64: dts: imx8mp: Add GPT blocks

The i.MX8MP includes the same GPT blocks as the i.MX6DL. Add all 6
instances.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8-apalis-v1.1: drop ci-disable-lpm
Peng Fan [Wed, 22 Mar 2023 05:25:03 +0000 (13:25 +0800)]
arm64: dts: imx8-apalis-v1.1: drop ci-disable-lpm

This is an NXP downstream property. And no binding doc, and no
driver use this property. So drop it

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8dxl: drop clocks from scu clock controller
Peng Fan [Thu, 23 Mar 2023 11:19:51 +0000 (19:19 +0800)]
arm64: dts: imx8dxl: drop clocks from scu clock controller

The clocks and clock-names are not documented and not used, drop them.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: verdin-yavia: drop disable-over-current
Peng Fan [Wed, 22 Mar 2023 08:07:22 +0000 (16:07 +0800)]
arm64: dts: imx8mp: verdin-yavia: drop disable-over-current

disable-over-current is for chipidea IP, i.MX8MQ use dwc3, this property
is not valid. Drop it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq: tqma8mq-mba8mx: drop disable-over-current
Peng Fan [Wed, 22 Mar 2023 08:07:21 +0000 (16:07 +0800)]
arm64: dts: imx8mq: tqma8mq-mba8mx: drop disable-over-current

disable-over-current is for chipidea IP, i.MX8MQ use dwc3, this property
is not valid. Drop it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Add support for DH electronics i.MX8M Plus DHCOM and PDK3
Marek Vasut [Fri, 17 Mar 2023 09:47:25 +0000 (10:47 +0100)]
arm64: dts: imx8mp: Add support for DH electronics i.MX8M Plus DHCOM and PDK3

Add support for DH electronics i.MX8M Plus DHCOM SoM on PDK3 carrier board.
Currently supported are serial console, EQoS and FEC ethernets, eMMC, SD,
SPI NOR, CAN, M.2 E-Key or M.2 M-Key PCIe, USB .

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add iris v2 carrier board
Philippe Schenker [Tue, 14 Mar 2023 10:24:09 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Add iris v2 carrier board

Add the Toradex Iris V2 Carrier Board for Colibri iMX8X, small form-factor
production ready board.

Additional details available at:
https://www.toradex.com/products/carrier-boards/iris-carrier-board

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add iris carrier board
Philippe Schenker [Tue, 14 Mar 2023 10:24:08 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Add iris carrier board

Add the Toradex Iris Carrier Board for Colibri iMX8X, small form-factor
production ready board.

Additional details available at:
https://www.toradex.com/products/carrier-boards/iris-carrier-board

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add aster carrier board
Philippe Schenker [Tue, 14 Mar 2023 10:24:07 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Add aster carrier board

Add the Toradex Aster Carrier Board for Colibri iMX8X, small form-factor
with header compatible with Arduino Uno and Raspberry Pi (RPi) maker
boards.

Additional details available at:
https://www.toradex.com/products/carrier-boards/aster-carrier-board

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add todo comments
Philippe Schenker [Tue, 14 Mar 2023 10:24:05 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Add todo comments

Highlight what is still missing.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Move gpio-keys to som level
Philippe Schenker [Tue, 14 Mar 2023 10:24:04 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Move gpio-keys to som level

SODIMM_45 that is connected to "&lsio_gpio3 10" is defined in the
Colibri standard to be a wakeup pin.
Move this to the SoM level device-tree and keep it disabled by default
but do enable it again on the carrier-board.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Set thermal thresholds
Philippe Schenker [Tue, 14 Mar 2023 10:24:03 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Set thermal thresholds

Set critical/alert thermal thresholds for all relevant SOC
temperature trips to the IT value (max T_junction 105 degree
Celsius) in accordance with the IT grade of the SOM.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add no-1-8-v to sd-card
Philippe Schenker [Tue, 14 Mar 2023 10:24:02 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Add no-1-8-v to sd-card

Many Colibri carrier boards are using 3.3V pull-up resistors on the
SD-Card connector. Letting it switch to 1.8V is an invalid state.

Do prevent this from happening by keeping the signaling voltage at 3.3V.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: eval: Add spi-to-can
Philippe Schenker [Tue, 14 Mar 2023 10:24:01 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: eval: Add spi-to-can

Add mcp2515 spi-to-can to &lpspi2.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add colibri pwm b, c, d
Philippe Schenker [Tue, 14 Mar 2023 10:24:00 +0000 (11:24 +0100)]
arm64: dts: colibri-imx8x: Add colibri pwm b, c, d

Add Colibri PWM_B, PWM_C, PWM_D to the module-level device-tree and set
the status to ok on the eval-board.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add jpegenc/dec
Philippe Schenker [Tue, 14 Mar 2023 10:23:59 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add jpegenc/dec

jpeg encoder and decoder are available. Do enable them in the module
level device-tree since those are self-contained.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Disable touchscreen by default
Philippe Schenker [Tue, 14 Mar 2023 10:23:58 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Disable touchscreen by default

Do not enable the touchscreen. By default it is not used but should be
kept to enable it from a file that includes imx8x-colibri.dtsi.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add gpio-line-names
Philippe Schenker [Tue, 14 Mar 2023 10:23:57 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add gpio-line-names

This commit adds gpio-line-names in line with other SoM from Toradex.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add SPI
Philippe Schenker [Tue, 14 Mar 2023 10:23:56 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add SPI

Add Colibri SPI to the board. lpspi2 is being exposed on the SoM edge.
Add settings to the module-level but finally enable it on the eval-board
dtsi.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add pinctrl group for hdmi hpd
Philippe Schenker [Tue, 14 Mar 2023 10:23:55 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add pinctrl group for hdmi hpd

The colibri imx8x contains a dedicated gpio meant for HDMI
hot-plug-detect. Add a pinctrl group to make this usable.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add separate pinctrl group for cs2
Philippe Schenker [Tue, 14 Mar 2023 10:23:54 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add separate pinctrl group for cs2

Add a separate pinctrl group for chip-select 2 for Colibri SPI. That way
one is able to use it separately.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Correct pull on lcdif
Philippe Schenker [Tue, 14 Mar 2023 10:23:53 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Correct pull on lcdif

The pads USDHC1_RESET_B and MCLK_IN1 need a pull-down instead of
pull-disabled. Correct this.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Split pinctrl_hog1
Philippe Schenker [Tue, 14 Mar 2023 10:23:52 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Split pinctrl_hog1

Split pinctrl_hog1 into a second group so CSI_MCLK can be muxed to a
gpio on its own.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add pinctrl group for csi_mclk
Philippe Schenker [Tue, 14 Mar 2023 10:23:51 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add pinctrl group for csi_mclk

Add missing pinctrl groups that can be used to enable the correct
muxing if csi_mclk is needed on SODIMM 75.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Add atmel pinctrl groups
Philippe Schenker [Tue, 14 Mar 2023 10:23:50 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Add atmel pinctrl groups

Add pinctrl groups for enabling atmel touchscreen support.
Remove the pads out of pinctrl_hog0 as they now can be enabled more
specific using pinctrl_atmel_conn label.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Use new bracket format
Philippe Schenker [Tue, 14 Mar 2023 10:23:49 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Use new bracket format

Use the new bracket format as described by Rob since this seems the
format that we're heading in the future.

https://lore.kernel.org/all/CAL_JsqKqQdRZC08-BGJqTjzJZ8aWA41LHMbv0QyyVePVm0co7A@mail.gmail.com/

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Update spdx license
Philippe Schenker [Tue, 14 Mar 2023 10:23:48 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Update spdx license

GPL-2.0+ is deprecated, update it to GPL-2.0-or-later.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: colibri-imx8x: Prepare for qxp and dx variants
Philippe Schenker [Tue, 14 Mar 2023 10:23:47 +0000 (11:23 +0100)]
arm64: dts: colibri-imx8x: Prepare for qxp and dx variants

Toradex sells the Colibri iMX8X module in variants with the i.MX 8QXP
and i.MX8DX SoC. Prepare for this by moving majority of stuff from
imx8qxp-colibri.dtsi into imx8x-colibri.dtsi.

Remove DX from the model string.

This commit intends no functional change.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Add 166MHz to DDRC OPP table
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:08 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Add 166MHz to DDRC OPP table

This is the lowest frequency supported by older iMX8MQ SoC
revisions.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Reduce I2C frequency to 384kHz
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:07 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Reduce I2C frequency to 384kHz

According to imx8mq errata (ERR007805):

> To meet the clock low period requirement in fast speed mode,
> SCL must be configured to 384KHz or less.

Note that the imx i2c driver already implements this erratum and works
around it. This is only for the description to reflect reality.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Bump BUCK1 suspend voltage to 0.81V
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:06 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Bump BUCK1 suspend voltage to 0.81V

0.8V is outside of the operating voltage specified for imx8mq, see
chapter 3.1.4 "Operating ranges" of the IMX8MDQLQCEC document.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Remove dis_u3_susphy_quirk from usb_dwc3_0
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:05 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Remove dis_u3_susphy_quirk from usb_dwc3_0

This reduces power consumption in system suspend by about 10%.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Adjust proximity sensor's near levels
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:04 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Adjust proximity sensor's near levels

Based on tests with my left ear (which appears to require lower levels
than the right one), one Birch, one Dogwood and three Evergreens.

It seems that the sensor reacts very weakly to hair, so let's make
the thresholds rather generous to compensate.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Bump usdhc2 frequency to 100MHz
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:03 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Bump usdhc2 frequency to 100MHz

RS9116 card already limits itself to 50MHz by being a high-speed card,
while AP6275S can work at 100MHz just fine (technically it should work
at 200MHz as well since it's a SDR104 card, but it doesn't appear to be
the case in practice and further research will be needed to find out why).

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: add the magnetometer mount matrix
Angus Ainslie [Thu, 9 Mar 2023 20:46:02 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: add the magnetometer mount matrix

Userland needs the mount matrix to know the correct orientation of
the part.

Signed-off-by: Angus Ainslie <angus@akkea.ca>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Set the DVS voltages lower
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:01 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Set the DVS voltages lower

They're still in the operating range according to i.MX 8M Quad
datasheet. There's some headroom added over minimal values to
account for voltage drop.

Operational ranges (min - typ - max [selected]):
 - VDD_SOC (BUCK1): 0.81 - 0.9 - 0.99 [0.88]
 - VDD_ARM (BUCK2): 0.81 - 0.9 - 1.05 [0.84] (1000MHz)
                    0.90 - 1.0 - 1.05 [0.93] (1500MHz)
 - VDD_GPU (BUCK3): 0.81 - 0.9 - 1.05 [0.85] (800MHz)
                    0.90 - 1.0 - 1.05 [ -- ] (1000MHz)
 - VDD_VPU (BUCK4): 0.81 - 0.9 - 1.05 [ -- ] (550/500/588MHz)
                    0.90 - 1.0 - 1.05 [0.93] (660/600/800MHz)

Idle power consumption doesn't appear to be influenced much,
but a simple load test (`cat /dev/urandom | pigz - > /dev/null`
combined with running Animatch) seems to show about 0.3W of
difference.

Care is advised, as there may be differences between each
units in how low can they be undervolted - in my experience,
reaching that point usually makes the phone fail to boot.
In my case, it appears that my Birch phone can go down the most.

This is a somewhat conservative set of values that I've seen
working well on all my devices; I haven't tried very hard to
optimize it, so more experiments are welcome.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Set charger parameters for each batch
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:46:00 +0000 (21:46 +0100)]
arm64: dts: imx8mq-librem5: Set charger parameters for each batch

Correctly set regulation-voltage, termination-current and charge-current
for the different librem 5 board revisions.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: add brightness levels to led-backlight
Martin Kepplinger [Thu, 9 Mar 2023 20:45:59 +0000 (21:45 +0100)]
arm64: dts: imx8mq-librem5: add brightness levels to led-backlight

Add brightness-levels and default-brightness-level properties to
the librem5 board description that have been used for a long time.

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: Describe MIC_2V4 regulator
Sebastian Krzyszkowiak [Thu, 9 Mar 2023 20:45:58 +0000 (21:45 +0100)]
arm64: dts: imx8mq-librem5: Describe MIC_2V4 regulator

No functional change, but it describes the hardware better.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: fix audio-1v8 regulator name
Martin Kepplinger [Thu, 9 Mar 2023 20:45:57 +0000 (21:45 +0100)]
arm64: dts: imx8mq-librem5: fix audio-1v8 regulator name

Fix the regulator name for the audio-1v8 regulator.

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: describe the clock for the csi sensors
Martin Kepplinger [Thu, 9 Mar 2023 20:45:56 +0000 (21:45 +0100)]
arm64: dts: imx8mq-librem5: describe the clock for the csi sensors

The CLKO2 clock is used for both camera CSI interfaces as the
driving clock for the connected sensors. In order for it to be
available, use this hog. We can't simply add it to 2 different
sensor descriptions.

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq-librem5: lower the mipi csi 1 frequencies
Martin Kepplinger [Thu, 9 Mar 2023 20:45:55 +0000 (21:45 +0100)]
arm64: dts: imx8mq-librem5: lower the mipi csi 1 frequencies

No frames are streamed when using the default frequencies. I'm not yet
sure why the fastest ones don't work here but we've been using these
frequencies successfully for a long time now.

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8: align thermal node names with bindings
Krzysztof Kozlowski [Sun, 12 Mar 2023 20:13:35 +0000 (21:13 +0100)]
arm64: dts: imx8: align thermal node names with bindings

Bindings expect thermal node names to end with '-thermal':

  imx8qxp-mek.dtb: thermal-zones: 'pmic-thermal0' does not match any of the regexes: '^[a-zA-Z][a-zA-Z0-9\\-]{1,12}-thermal$', 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp-tqma8mpql-mba8mpxl: Enable wakeup-source for GPIO buttons
Alexander Stein [Thu, 9 Mar 2023 15:04:10 +0000 (16:04 +0100)]
arm64: dts: imx8mp-tqma8mpql-mba8mpxl: Enable wakeup-source for GPIO buttons

These buttons are capable of waking up a suspended system, add the
appropriate property for both.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx93: add missing tpm pwm instances
Markus Niebel [Wed, 8 Mar 2023 12:48:29 +0000 (13:48 +0100)]
arm64: dts: imx93: add missing tpm pwm instances

TPM1/TPM3 are missing, add them.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp-debix: add USB host support
Lucas Stach [Tue, 28 Feb 2023 17:02:47 +0000 (18:02 +0100)]
arm64: dts: imx8mp-debix: add USB host support

This adds support for the 4 USB3 host ports on the board, which are
connected to the i.MX8MP SoC via a Realtek RTS5411 hub.

As the schematic for the board is not available, I could not validate
that this really reflects the reality, but I modeled things after the
hacked in usage of the GPIOs in the downstream kernel.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx93: Add FlexSPI support
Alexander Stein [Tue, 28 Feb 2023 09:17:57 +0000 (10:17 +0100)]
arm64: dts: imx93: Add FlexSPI support

Add FlexSPI node for i.MX93.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Reorder clock and reg properties
Marek Vasut [Mon, 27 Feb 2023 15:54:23 +0000 (16:54 +0100)]
arm64: dts: imx8mp: Reorder clock and reg properties

Align the clock and reg properties order with example bindings
and the rest of the imx8mp.dtsi . No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Drop simple-bus from fsl,imx8mp-media-blk-ctrl
Marek Vasut [Mon, 27 Feb 2023 15:54:22 +0000 (16:54 +0100)]
arm64: dts: imx8mp: Drop simple-bus from fsl,imx8mp-media-blk-ctrl

This block should not be compatible with simple-bus and misuse it that way.
Instead, the driver should scan its subnodes and bind drivers to them.

Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Liu Ying <victor.liu@nxp.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Fixes: 94e6197dadc9 ("arm64: dts: imx8mp: Add LCDIF2 & LDB nodes")
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mq: Add UART DMA support
Sebastian Krzyszkowiak [Tue, 21 Feb 2023 08:04:08 +0000 (09:04 +0100)]
arm64: dts: imx8mq: Add UART DMA support

UART ports have DMA capability. Describe the UART DMA properties.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Add FEC RMII pin mux on i.MX8MP DHCOM
Marek Vasut [Fri, 17 Feb 2023 19:26:47 +0000 (20:26 +0100)]
arm64: dts: imx8mp: Add FEC RMII pin mux on i.MX8MP DHCOM

The i.MX8MP DHCOM SoM may come with either external RGMII PHY or
LAN8740Ai RMII PHY on the SoM attached to FEC MAC. Add pin mux
settings for both options, so that DT overlay can override these
settings on SoM variant with the LAN8740Ai PHY.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Add EQoS RMII pin mux on i.MX8MP DHCOM
Marek Vasut [Fri, 17 Feb 2023 19:26:46 +0000 (20:26 +0100)]
arm64: dts: imx8mp: Add EQoS RMII pin mux on i.MX8MP DHCOM

The i.MX8MP DHCOM SoM may come with either KSZ9131RNXI RGMII PHY
or LAN8740Ai RMII PHY on the SoM attached to EQoS MAC. Add pin
mux settings for both options, so that DT overlay can override
these settings on SoM variant with the LAN8740Ai PHY.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Adjust EQoS PHY address on i.MX8MP DHCOM
Marek Vasut [Fri, 17 Feb 2023 19:26:45 +0000 (20:26 +0100)]
arm64: dts: imx8mp: Adjust EQoS PHY address on i.MX8MP DHCOM

The current variant of the SoM has LAN8740Ai PHY connected to EQoS
strapped to MDIO address 0 , adjust the MDIO address to match the
hardware.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Adjust EQoS reset comment on i.MX8MP DHCOM
Marek Vasut [Fri, 17 Feb 2023 19:26:44 +0000 (20:26 +0100)]
arm64: dts: imx8mp: Adjust EQoS reset comment on i.MX8MP DHCOM

Fix copy-paste error in the EQoS reset comment, align with SoM schematic.
No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Do not delete PHY nodes on i.MX8MP DHCOM PDK2
Marek Vasut [Fri, 17 Feb 2023 19:26:43 +0000 (20:26 +0100)]
arm64: dts: imx8mp: Do not delete PHY nodes on i.MX8MP DHCOM PDK2

The PHY nodes may be activated via DTO in case another SoM variant
is populated into the development kit. Do not delete the nodes.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Update GPIO M to CLKOUT1 on DH electronics i.MX8M Plus DHCOM...
Marek Vasut [Fri, 17 Feb 2023 19:25:45 +0000 (20:25 +0100)]
arm64: dts: imx8mp: Update GPIO M to CLKOUT1 on DH electronics i.MX8M Plus DHCOM and PDK2

The GPIO M SoM pin is connected to CLKOUT1, while CLKOUT2 is used as a supply
for TC9595 bridge chip clock. Update the comment. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp: Add PCIe support to DH electronics i.MX8M Plus DHCOM and PDK2
Marek Vasut [Fri, 17 Feb 2023 19:24:44 +0000 (20:24 +0100)]
arm64: dts: imx8mp: Add PCIe support to DH electronics i.MX8M Plus DHCOM and PDK2

Add PCIe support for DH electronics i.MX8M Plus DHCOM SoM on PDK2 carrier board.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: freescale: imx8mm-phyboard: Add I2C4 pinmuxing
Laurent Pinchart [Wed, 15 Feb 2023 23:32:26 +0000 (01:32 +0200)]
arm64: dts: freescale: imx8mm-phyboard: Add I2C4 pinmuxing

The I2C4 bus is exposed on the camera connector. Add and select the
corresponding pinmux entries and set the default frequency. The device
is left disabled, to be enabled from camera overlays.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Teresa Remmet <t.remmet@phytec.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: Add i.MX8MP PCIe EP support
Richard Zhu [Wed, 15 Feb 2023 06:18:35 +0000 (14:18 +0800)]
arm64: dts: Add i.MX8MP PCIe EP support

Add i.MX8MP PCIe EP support.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: Add i.MX8MQ PCIe EP support
Richard Zhu [Wed, 15 Feb 2023 06:18:34 +0000 (14:18 +0800)]
arm64: dts: Add i.MX8MQ PCIe EP support

Add i.MX8MQ PCIe EP support.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: Add i.MX8MM PCIe EP support
Richard Zhu [Wed, 15 Feb 2023 06:18:33 +0000 (14:18 +0800)]
arm64: dts: Add i.MX8MM PCIe EP support

Add i.MX8MM PCIe EP support.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx93: Add the bbnsm dts node
Jacky Bai [Wed, 15 Feb 2023 02:41:17 +0000 (10:41 +0800)]
arm64: dts: imx93: Add the bbnsm dts node

Add the bbnsm node for RTC & ON/OFF button support

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp-verdin: add 88W8997 serdev to uart4
Stefan Eichenberger [Mon, 13 Feb 2023 12:09:26 +0000 (13:09 +0100)]
arm64: dts: imx8mp-verdin: add 88W8997 serdev to uart4

Use the serdev feature to load the driver for the 88W8997 bluetooth
driver.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: layerscape: Fix GICv3 ITS node names
Rob Herring [Wed, 8 Feb 2023 18:34:38 +0000 (12:34 -0600)]
arm64: dts: layerscape: Fix GICv3 ITS node names

The GICv3 ITS is an MSI controller, therefore its node name should be
'msi-controller'.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: imx8mp-verdin-yavia: trivial minor updates
Marcel Ziswiler [Wed, 8 Feb 2023 06:59:47 +0000 (07:59 +0100)]
arm64: dts: imx8mp-verdin-yavia: trivial minor updates

Capitalise Yavia in comment and add missing whitespace.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
15 months agoarm64: dts: verdin-imx8mp: add pcie support
Marcel Ziswiler [Wed, 8 Feb 2023 06:59:46 +0000 (07:59 +0100)]
arm64: dts: verdin-imx8mp: add pcie support

Add PCIe support on the Verdin iMX8M Plus.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: freescale: add apalis imx8 aka quadmax carrier board support
Marcel Ziswiler [Wed, 8 Feb 2023 06:56:41 +0000 (07:56 +0100)]
arm64: dts: freescale: add apalis imx8 aka quadmax carrier board support

The previous patch added the device tree to support Toradex Apalis
iMX8 [1] aka QuadMax a computer on module which can be used on
different carrier boards which this patch introduces.

The module consists of an NXP i.MX 8 family SoC (either i.MX 8QuadMax or
8QuadPlus), two PF8100 PMICs, a KSZ9131 Gigabit Ethernet PHY, 2, 4 or 8
GB of LPDDR4 RAM, an eMMC, an SGTL5000 analogue audio codec, an USB3503A
USB HSIC hub, an optional I2C EEPROM plus an optional Bluetooth/Wi-Fi
module.

Anything that is not self-contained on the module is disabled by
default.

The carrier board device trees contained in this patch include the
module's device tree and enable the supported peripherals of the
carrier board.

Some level of display functionality just landed upstream but requires
further integration/testing on our side. Therefore, currently only
basic console UART, eMMC and Ethernet functionality work fine.

As there is no i.MX 8QuadPlus device tree upstream those have been
dropped. However, apart from an error message during boot about it
failing to bring up the second Cortex-A72 core this boots fine on
QuadPlus' as well.

[1] https://www.toradex.com/computer-on-modules/apalis-arm-family/nxp-imx-8

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: freescale: add initial apalis imx8 aka quadmax module support
Marcel Ziswiler [Wed, 8 Feb 2023 06:56:40 +0000 (07:56 +0100)]
arm64: dts: freescale: add initial apalis imx8 aka quadmax module support

This patch adds the device tree to support Toradex Apalis iMX8 [1] aka
QuadMax a computer on module which can be used on different carrier
boards.

The module consists of an NXP i.MX 8 family SoC (either i.MX 8QuadMax or
8QuadPlus), two PF8100 PMICs, a KSZ9131 Gigabit Ethernet PHY, 2, 4 or 8
GB of LPDDR4 RAM, an eMMC, an SGTL5000 analogue audio codec, an USB3503A
USB HSIC hub, an optional I2C EEPROM plus an optional Bluetooth/Wi-Fi
module.

Anything that is not self-contained on the module is disabled by
default.

The carrier board device trees in the next patch will include the
module's device tree and enable the supported peripherals of the
carrier board.

Some level of display functionality just landed upstream but requires
further integration/testing on our side. Therefore, currently only
basic console UART, eMMC and Ethernet functionality work fine.

As there is no i.MX 8QuadPlus device tree upstream those have been
dropped. However, apart from an error message during boot about it
failing to bring up the second Cortex-A72 core this boots fine on
QuadPlus' as well.

[1] https://www.toradex.com/computer-on-modules/apalis-arm-family/nxp-imx-8

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: imx8qm: add vpu decoder and encoder
Zhou Peng [Wed, 8 Feb 2023 06:56:38 +0000 (07:56 +0100)]
arm64: dts: imx8qm: add vpu decoder and encoder

Enable VPU decoder and encoder functionality.

Signed-off-by: Zhou Peng <eagle.zhou@nxp.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: imx8qm: add can node in devicetree
Joakim Zhang [Wed, 8 Feb 2023 06:56:37 +0000 (07:56 +0100)]
arm64: dts: imx8qm: add can node in devicetree

Add CAN node for imx8qm in devicetree.

Unlike on the i.MX 8QXP where the flexcan clocks are shared between
multiple CAN instances, the i.MX 8QM has separate flexcan clock slices.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: imx8qxp: add flexcan in adma
Joakim Zhang [Wed, 8 Feb 2023 06:56:36 +0000 (07:56 +0100)]
arm64: dts: imx8qxp: add flexcan in adma

Add FlexCAN decive in adma subsystem.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> # TQMa8XQP
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: freescale: imx8-ss-dma: set lpspi0 max frequency to 60mhz
Philippe Schenker [Wed, 8 Feb 2023 06:56:34 +0000 (07:56 +0100)]
arm64: dts: freescale: imx8-ss-dma: set lpspi0 max frequency to 60mhz

60MHz is the maximum frequency mentioned in the datasheet for
master mode. Set that to 60MHz to match lpspi2.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: imx8-ss-dma: add io-channel-cells to adc nodes
Max Krummenacher [Wed, 8 Feb 2023 06:56:33 +0000 (07:56 +0100)]
arm64: dts: imx8-ss-dma: add io-channel-cells to adc nodes

This commit adds io-channel-cells property to the ADC nodes. This
property is required in order for an IIO consumer driver to work.
Especially required for Apalis iMX8 QM, as the touchscreen driver
uses ADC channels with the ADC driver based on IIO framework.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoarm64: dts: freescale: imx8-ss-lsio: add support for lsio_pwm0-3
Philippe Schenker [Wed, 8 Feb 2023 06:56:32 +0000 (07:56 +0100)]
arm64: dts: freescale: imx8-ss-lsio: add support for lsio_pwm0-3

Add support for lsio_pwm0-3.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
16 months agoLinux 6.3-rc1
Linus Torvalds [Sun, 5 Mar 2023 22:52:03 +0000 (14:52 -0800)]
Linux 6.3-rc1

16 months agocpumask: re-introduce constant-sized cpumask optimizations
Linus Torvalds [Sat, 4 Mar 2023 21:35:43 +0000 (13:35 -0800)]
cpumask: re-introduce constant-sized cpumask optimizations

Commit aa47a7c215e7 ("lib/cpumask: deprecate nr_cpumask_bits") resulted
in the cpumask operations potentially becoming hugely less efficient,
because suddenly the cpumask was always considered to be variable-sized.

The optimization was then later added back in a limited form by commit
6f9c07be9d02 ("lib/cpumask: add FORCE_NR_CPUS config option"), but that
FORCE_NR_CPUS option is not useful in a generic kernel and more of a
special case for embedded situations with fixed hardware.

Instead, just re-introduce the optimization, with some changes.

Instead of depending on CPUMASK_OFFSTACK being false, and then always
using the full constant cpumask width, this introduces three different
cpumask "sizes":

 - the exact size (nr_cpumask_bits) remains identical to nr_cpu_ids.

   This is used for situations where we should use the exact size.

 - the "small" size (small_cpumask_bits) is the NR_CPUS constant if it
   fits in a single word and the bitmap operations thus end up able
   to trigger the "small_const_nbits()" optimizations.

   This is used for the operations that have optimized single-word
   cases that get inlined, notably the bit find and scanning functions.

 - the "large" size (large_cpumask_bits) is the NR_CPUS constant if it
   is an sufficiently small constant that makes simple "copy" and
   "clear" operations more efficient.

   This is arbitrarily set at four words or less.

As a an example of this situation, without this fixed size optimization,
cpumask_clear() will generate code like

        movl    nr_cpu_ids(%rip), %edx
        addq    $63, %rdx
        shrq    $3, %rdx
        andl    $-8, %edx
        callq   memset@PLT

on x86-64, because it would calculate the "exact" number of longwords
that need to be cleared.

In contrast, with this patch, using a MAX_CPU of 64 (which is quite a
reasonable value to use), the above becomes a single

movq $0,cpumask

instruction instead, because instead of caring to figure out exactly how
many CPU's the system has, it just knows that the cpumask will be a
single word and can just clear it all.

Note that this does end up tightening the rules a bit from the original
version in another way: operations that set bits in the cpumask are now
limited to the actual nr_cpu_ids limit, whereas we used to do the
nr_cpumask_bits thing almost everywhere in the cpumask code.

But if you just clear bits, or scan for bits, we can use the simpler
compile-time constants.

In the process, remove 'cpumask_complement()' and 'for_each_cpu_not()'
which were not useful, and which fundamentally have to be limited to
'nr_cpu_ids'.  Better remove them now than have somebody introduce use
of them later.

Of course, on x86-64 with MAXSMP there is no sane small compile-time
constant for the cpumask sizes, and we end up using the actual CPU bits,
and will generate the above kind of horrors regardless.  Please don't
use MAXSMP unless you really expect to have machines with thousands of
cores.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 months agoMerge tag 'v6.3-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Linus Torvalds [Sun, 5 Mar 2023 19:32:30 +0000 (11:32 -0800)]
Merge tag 'v6.3-p2' of git://git./linux/kernel/git/herbert/crypto-2.6

Pull crypto fix from Herbert Xu:
 "Fix a regression in the caam driver"

* tag 'v6.3-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: caam - Fix edesc/iv ordering mixup

16 months agoMerge tag 'x86-urgent-2023-03-05' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sun, 5 Mar 2023 19:27:48 +0000 (11:27 -0800)]
Merge tag 'x86-urgent-2023-03-05' of git://git./linux/kernel/git/tip/tip

Pull x86 updates from Thomas Gleixner:
 "A small set of updates for x86:

   - Return -EIO instead of success when the certificate buffer for SEV
     guests is not large enough

   - Allow STIPB to be enabled with legacy IBSR. Legacy IBRS is cleared
     on return to userspace for performance reasons, but the leaves user
     space vulnerable to cross-thread attacks which STIBP prevents.
     Update the documentation accordingly"

* tag 'x86-urgent-2023-03-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  virt/sev-guest: Return -EIO if certificate buffer is not large enough
  Documentation/hw-vuln: Document the interaction between IBRS and STIBP
  x86/speculation: Allow enabling STIBP with legacy IBRS

16 months agoMerge tag 'irq-urgent-2023-03-05' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sun, 5 Mar 2023 19:19:16 +0000 (11:19 -0800)]
Merge tag 'irq-urgent-2023-03-05' of git://git./linux/kernel/git/tip/tip

Pull irq updates from Thomas Gleixner:
 "A set of updates for the interrupt susbsystem:

   - Prevent possible NULL pointer derefences in
     irq_data_get_affinity_mask() and irq_domain_create_hierarchy()

   - Take the per device MSI lock before invoking code which relies on
     it being hold

   - Make sure that MSI descriptors are unreferenced before freeing
     them. This was overlooked when the platform MSI code was converted
     to use core infrastructure and results in a fals positive warning

   - Remove dead code in the MSI subsystem

   - Clarify the documentation for pci_msix_free_irq()

   - More kobj_type constification"

* tag 'irq-urgent-2023-03-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  genirq/msi, platform-msi: Ensure that MSI descriptors are unreferenced
  genirq/msi: Drop dead domain name assignment
  irqdomain: Add missing NULL pointer check in irq_domain_create_hierarchy()
  genirq/irqdesc: Make kobj_type structures constant
  PCI/MSI: Clarify usage of pci_msix_free_irq()
  genirq/msi: Take the per-device MSI lock before validating the control structure
  genirq/ipi: Fix NULL pointer deref in irq_data_get_affinity_mask()

16 months agoMerge tag 'pull-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Linus Torvalds [Sun, 5 Mar 2023 19:11:52 +0000 (11:11 -0800)]
Merge tag 'pull-misc' of git://git./linux/kernel/git/viro/vfs

Pull vfs update from Al Viro:
 "Adding Christian Brauner as VFS co-maintainer"

* tag 'pull-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  Adding VFS co-maintainer

16 months agoMerge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Linus Torvalds [Sun, 5 Mar 2023 19:07:58 +0000 (11:07 -0800)]
Merge tag 'pull-fixes' of git://git./linux/kernel/git/viro/vfs

Pull VM_FAULT_RETRY fixes from Al Viro:
 "Some of the page fault handlers do not deal with the following case
  correctly:

   - handle_mm_fault() has returned VM_FAULT_RETRY

   - there is a pending fatal signal

   - fault had happened in kernel mode

  Correct action in such case is not "return unconditionally" - fatal
  signals are handled only upon return to userland and something like
  copy_to_user() would end up retrying the faulting instruction and
  triggering the same fault again and again.

  What we need to do in such case is to make the caller to treat that as
  failed uaccess attempt - handle exception if there is an exception
  handler for faulting instruction or oops if there isn't one.

  Over the years some architectures had been fixed and now are handling
  that case properly; some still do not. This series should fix the
  remaining ones.

  Status:

   - m68k, riscv, hexagon, parisc: tested/acked by maintainers.

   - alpha, sparc32, sparc64: tested locally - bug has been reproduced
     on the unpatched kernel and verified to be fixed by this series.

   - ia64, microblaze, nios2, openrisc: build, but otherwise completely
     untested"

* tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  openrisc: fix livelock in uaccess
  nios2: fix livelock in uaccess
  microblaze: fix livelock in uaccess
  ia64: fix livelock in uaccess
  sparc: fix livelock in uaccess
  alpha: fix livelock in uaccess
  parisc: fix livelock in uaccess
  hexagon: fix livelock in uaccess
  riscv: fix livelock in uaccess
  m68k: fix livelock in uaccess

16 months agoRemove Intel compiler support
Masahiro Yamada [Sun, 16 Oct 2022 18:23:49 +0000 (03:23 +0900)]
Remove Intel compiler support

include/linux/compiler-intel.h had no update in the past 3 years.

We often forget about the third C compiler to build the kernel.

For example, commit a0a12c3ed057 ("asm goto: eradicate CC_HAS_ASM_GOTO")
only mentioned GCC and Clang.

init/Kconfig defines CC_IS_GCC and CC_IS_CLANG but not CC_IS_ICC,
and nobody has reported any issue.

I guess the Intel Compiler support is broken, and nobody is caring
about it.

Harald Arnesen pointed out ICC (classic Intel C/C++ compiler) is
deprecated:

    $ icc -v
    icc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is
    deprecated and will be removed from product release in the second half
    of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended
    compiler moving forward. Please transition to use this compiler. Use
    '-diag-disable=10441' to disable this message.
    icc version 2021.7.0 (gcc version 12.1.0 compatibility)

Arnd Bergmann provided a link to the article, "Intel C/C++ compilers
complete adoption of LLVM".

lib/zstd/common/compiler.h and lib/zstd/compress/zstd_fast.c were kept
untouched for better sync with https://github.com/facebook/zstd

Link: https://www.intel.com/content/www/us/en/developer/articles/technical/adoption-of-llvm-complete-icx.html
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 months agoAdding VFS co-maintainer
Al Viro [Sun, 5 Mar 2023 01:27:29 +0000 (20:27 -0500)]
Adding VFS co-maintainer

Acked-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
16 months agoMerge tag 'i2c-for-6.3-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sat, 4 Mar 2023 22:48:29 +0000 (14:48 -0800)]
Merge tag 'i2c-for-6.3-rc1-part2' of git://git./linux/kernel/git/wsa/linux

Pull more i2c updates from Wolfram Sang:
 "Some improvements/fixes for the newly added GXP driver and a Kconfig
  dependency fix"

* tag 'i2c-for-6.3-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  i2c: gxp: fix an error code in probe
  i2c: gxp: return proper error on address NACK
  i2c: gxp: remove "empty" switch statement
  i2c: Disable I2C_APPLE when I2C_PASEMI is a builtin

16 months agomm: avoid gcc complaint about pointer casting
Linus Torvalds [Sat, 4 Mar 2023 22:03:27 +0000 (14:03 -0800)]
mm: avoid gcc complaint about pointer casting

The migration code ends up temporarily stashing information of the wrong
type in unused fields of the newly allocated destination folio.  That
all works fine, but gcc does complain about the pointer type mis-use:

    mm/migrate.c: In function ‘__migrate_folio_extract’:
    mm/migrate.c:1050:20: note: randstruct: casting between randomized structure pointer types (ssa): ‘struct anon_vma’ and ‘struct address_space’

     1050 |         *anon_vmap = (void *)dst->mapping;
          |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

and gcc is actually right to complain since it really doesn't understand
that this is a very temporary special case where this is ok.

This could be fixed in different ways by just obfuscating the assignment
sufficiently that gcc doesn't see what is going on, but the truly
"proper C" way to do this is by explicitly using a union.

Using unions for type conversions like this is normally hugely ugly and
syntactically nasty, but this really is one of the few cases where we
want to make it clear that we're not doing type conversion, we're really
re-using the value bit-for-bit just using another type.

IOW, this should not become a common pattern, but in this one case using
that odd union is probably the best way to document to the compiler what
is conceptually going on here.

[ Side note: there are valid cases where we convert pointers to other
  pointer types, notably the whole "folio vs page" situation, where the
  types actually have fundamental commonalities.

  The fact that the gcc note is limited to just randomized structures
  means that we don't see equivalent warnings for those cases, but it
  migth also mean that we miss other cases where we do play these kinds
  of dodgy games, and this kind of explicit conversion might be a good
  idea. ]

I verified that at least for an allmodconfig build on x86-64, this
generates the exact same code, apart from line numbers and assembler
comment changes.

Fixes: 64c8902ed441 ("migrate_pages: split unmap_and_move() to _unmap() and _move()")
Cc: Huang, Ying <ying.huang@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 months agoMerge tag 'mm-hotfixes-stable-2023-03-04-13-12' of git://git.kernel.org/pub/scm/linux...
Linus Torvalds [Sat, 4 Mar 2023 21:32:50 +0000 (13:32 -0800)]
Merge tag 'mm-hotfixes-stable-2023-03-04-13-12' of git://git./linux/kernel/git/akpm/mm

Pull misc fixes from Andrew Morton:
 "17 hotfixes.

  Eight are for MM and seven are for other parts of the kernel. Seven
  are cc:stable and eight address post-6.3 issues or were judged
  unsuitable for -stable backporting"

* tag 'mm-hotfixes-stable-2023-03-04-13-12' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
  mailmap: map Dikshita Agarwal's old address to his current one
  mailmap: map Vikash Garodia's old address to his current one
  fs/cramfs/inode.c: initialize file_ra_state
  fs: hfsplus: fix UAF issue in hfsplus_put_super
  panic: fix the panic_print NMI backtrace setting
  lib: parser: update documentation for match_NUMBER functions
  kasan, x86: don't rename memintrinsics in uninstrumented files
  kasan: test: fix test for new meminstrinsic instrumentation
  kasan: treat meminstrinsic as builtins in uninstrumented files
  kasan: emit different calls for instrumentable memintrinsics
  ocfs2: fix non-auto defrag path not working issue
  ocfs2: fix defrag path triggering jbd2 ASSERT
  mailmap: map Georgi Djakov's old Linaro address to his current one
  mm/hwpoison: convert TTU_IGNORE_HWPOISON to TTU_HWPOISON
  lib/zlib: DFLTCC deflate does not write all available bits for Z_NO_FLUSH
  mm/damon/paddr: fix missing folio_put()
  mm/mremap: fix dup_anon_vma() in vma_merge() case 4

16 months agoMerge tag 'powerpc-6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
Linus Torvalds [Sat, 4 Mar 2023 19:20:42 +0000 (11:20 -0800)]
Merge tag 'powerpc-6.3-2' of git://git./linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:

 - Drop orphaned VAS MAINTAINERS entry

 - Fix build errors with clang and KCSAN

 - Avoid build errors seen with LD_DEAD_CODE_DATA_ELIMINATION together
   with recordmcount

Thanks to Nathan Chancellor.

* tag 'powerpc-6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
  powerpc: Avoid dead code/data elimination when using recordmcount
  powerpc/vmlinux.lds: Add .text.asan/tsan sections
  powerpc: Drop orphaned VAS MAINTAINERS entry

16 months agoMerge tag 'sound-fix-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
Linus Torvalds [Sat, 4 Mar 2023 18:53:59 +0000 (10:53 -0800)]
Merge tag 'sound-fix-6.3-rc1' of git://git./linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "A collection of various small fixes that have been gathered since the
  last PR.

  The majority of changes are for ASoC, and there is a small change in
  ASoC PCM core, but the rest are all for driver- specific fixes /
  quirks / updates"

* tag 'sound-fix-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (32 commits)
  ALSA: ice1712: Delete unreachable code in aureon_add_controls()
  ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
  ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC
  ALSA: hda/realtek: Improve support for Dell Precision 3260
  ASoC: mediatek: mt8195: add missing initialization
  ASoC: mediatek: mt8188: add missing initialization
  ASoC: amd: yc: Add DMI entries to support HP OMEN 16-n0xxx (8A43)
  ASoC: zl38060 add gpiolib dependency
  ASoC: sam9g20ek: Disable capture unless building with microphone input
  ASoC: mt8192: Fix range for sidetone positive gain
  ASoC: mt8192: Report an error if when an invalid sidetone gain is written
  ASoC: mt8192: Fix event generation for controls
  ASoC: mt8192: Remove spammy log messages
  ASoC: mchp-pdmc: fix poc noise at capture startup
  ASoC: dt-bindings: sama7g5-pdmc: add microchip,startup-delay-us binding
  ASoC: soc-pcm: add option to start DMA after DAI
  ASoC: mt8183: Fix event generation for I2S DAI operations
  ASoC: mt8183: Remove spammy logging from I2S DAI driver
  ASoC: mt6358: Remove undefined HPx Mux enumeration values
  ASoC: mt6358: Validate Wake on Voice 2 writes
  ...

16 months agoMerge tag 'for-v6.3-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux...
Linus Torvalds [Sat, 4 Mar 2023 00:33:28 +0000 (16:33 -0800)]
Merge tag 'for-v6.3-part2' of git://git./linux/kernel/git/sre/linux-power-supply

Pull more power supply updates from Sebastian Reichel:

 - Fix DT binding for Richtek RT9467

 - Fix a NULL pointer check in the power-supply core

 - Document meaning of absent "present" property

* tag 'for-v6.3-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
  dt-bindings: power: supply: Revise Richtek RT9467 compatible name
  ABI: testing: sysfs-class-power: Document absence of "present" property
  power: supply: fix null pointer check order in __power_supply_register

16 months agoMerge tag '6.3-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6
Linus Torvalds [Sat, 4 Mar 2023 00:26:43 +0000 (16:26 -0800)]
Merge tag '6.3-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6

Pull more cifs updates from Steve French:

 - xfstest generic/208 fix (memory leak)

 - minor netfs fix (to address smatch warning)

 - a DFS fix for stable

 - a reconnect race fix

 - two multichannel fixes

 - RDMA (smbdirect) fix

 - two additional writeback fixes from David

* tag '6.3-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
  cifs: Fix memory leak in direct I/O
  cifs: prevent data race in cifs_reconnect_tcon()
  cifs: improve checking of DFS links over STATUS_OBJECT_NAME_INVALID
  iov: Fix netfs_extract_user_to_sg()
  cifs: Fix cifs_write_back_from_locked_folio()
  cifs: reuse cifs_match_ipaddr for comparison of dstaddr too
  cifs: match even the scope id for ipv6 addresses
  cifs: Fix an uninitialised variable
  cifs: Add some missing xas_retry() calls

16 months agoumh: simplify the capability pointer logic
Linus Torvalds [Thu, 2 Mar 2023 23:49:44 +0000 (15:49 -0800)]
umh: simplify the capability pointer logic

The usermodehelper code uses two fake pointers for the two capability
cases: CAP_BSET for reading and writing 'usermodehelper_bset', and
CAP_PI to read and write 'usermodehelper_inheritable'.

This seems to be a completely unnecessary indirection, since we could
instead just use the pointers themselves, and never have to do any "if
this then that" kind of logic.

So just get rid of the fake pointer values, and use the real pointer
values instead.

Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Iurii Zaikin <yzaikin@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>