ARM: SoC fixes for 6.7, part 3
A couple of platforms have some last-minute fixes for 6.7, in particular - riscv gets some fixes for noncoherent DMA on the renesas and thead platforms and dts fix for SPI on the visionfive 2 board - Qualcomm Snapdragon gets three dts fixes to address board specific regressions on the pmic and gpio nodes - Rockchip platforms get multiple dts fixes to address issues on the recent rk3399 platform as well as the older rk3128 platform that apparently regressed a while ago. - TI OMAP gets some trivial code and dts fixes and a regression fix for the omap1 ams-delta modem - NXP i.MX firmware has one fix for a use-after-free but in its error handling. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmU6hBgACgkQYKtH/8kJ Uiejsw//ZqOVJwK6fQRR2tx8k8Tg5x7q1KlpuxNW6JAbsYcNZF8OeEQYvp+fZP/c x8fDYYAc/02w++2U5QXGWm615359GKCdWxPivop51FJ7Try1Ij0KC3MJz4U2F65J ZdwnVsAukYRDzNTmDu08BRsLXjsglQhZnuXxshsZcoe8mZRnDukYVPMmW12thitY 6R/c77kW1fvjxJt2M4vbqbOoXB1hXlsGl/l0HrAqN3OyqDD7lsak3byI1+x5nXzU n9EA9sC5wnnj/06LpW/b5OSBWPgteIRJauTsEy/zLdD1oPWgMT3kyjG4GZBK3bXo 8pfeuom7ujqaWsDmeIPlwWRNChGy99XmlGaC+dciD1sVMY2/phQfucBlddGl5JDX UO8EwATQ7Hy+PZwjjatwdon4sngs5MwHiGpmNhtEwAARQSLhLsvY290RCZFCoXgb 8rio7je/c/wgT28KJb/kXZHYoaNVl9Za24l+oyLCTzel5CGON4vE6Y1nPO9+tcyz fttxABZs+DN5BbmABuVVrTRJUGCBCsNWZY33vgYCCdZditXTYWfOH6BkO4NtYzsI QUG2mkykTfmxWnwmWODShAEcpJTP5ck9eZK2edujEK9I0m6dLHaUbZPNoXkpe4l3 U1F4QnGGCjff6o4W9bWbOj/SgFAC9q9C7KBYIom3hpN13Ik3rpA= =6/SQ -----END PGP SIGNATURE----- Merge tag 'soc-fixes-6.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC fixes from Arnd Bergmann: "A couple of platforms have some last-minute fixes, in particular: - riscv gets some fixes for noncoherent DMA on the renesas and thead platforms and dts fix for SPI on the visionfive 2 board - Qualcomm Snapdragon gets three dts fixes to address board specific regressions on the pmic and gpio nodes - Rockchip platforms get multiple dts fixes to address issues on the recent rk3399 platform as well as the older rk3128 platform that apparently regressed a while ago. - TI OMAP gets some trivial code and dts fixes and a regression fix for the omap1 ams-delta modem - NXP i.MX firmware has one fix for a use-after-free but in its error handling" * tag 'soc-fixes-6.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (25 commits) soc: renesas: ARCH_R9A07G043 depends on !RISCV_ISA_ZICBOM riscv: only select DMA_DIRECT_REMAP from RISCV_ISA_ZICBOM and ERRATA_THEAD_PBMT riscv: RISCV_NONSTANDARD_CACHE_OPS shouldn't depend on RISCV_DMA_NONCOHERENT riscv: dts: thead: set dma-noncoherent to soc bus arm64: dts: rockchip: Fix i2s0 pin conflict on ROCK Pi 4 boards arm64: dts: rockchip: Add i2s0-2ch-bus-bclk-off pins to RK3399 clk: ti: Fix missing omap5 mcbsp functional clock and aliases clk: ti: Fix missing omap4 mcbsp functional clock and aliases ARM: OMAP1: ams-delta: Fix MODEM initialization failure soc: renesas: Make ARCH_R9A07G043 depend on required options riscv: dts: starfive: visionfive 2: correct spi's ss pin firmware/imx-dsp: Fix use_after_free in imx_dsp_setup_channels() ARM: OMAP: timer32K: fix all kernel-doc warnings ARM: omap2: fix a debug printk ARM: dts: rockchip: Fix timer clocks for RK3128 ARM: dts: rockchip: Add missing quirk for RK3128's dma engine ARM: dts: rockchip: Add missing arm timer interrupt for RK3128 ARM: dts: rockchip: Fix i2c0 register address for RK3128 arm64: dts: rockchip: set codec system-clock-fixed on px30-ringneck-haikou arm64: dts: rockchip: use codec as clock master on px30-ringneck-haikou ...
This commit is contained in:
commit
3a568e3a96
@ -13846,9 +13846,10 @@ F: Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml
|
||||
F: drivers/staging/media/meson/vdec/
|
||||
|
||||
METHODE UDPU SUPPORT
|
||||
M: Vladimir Vid <vladimir.vid@sartura.hr>
|
||||
M: Robert Marko <robert.marko@sartura.hr>
|
||||
S: Maintained
|
||||
F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
|
||||
F: arch/arm64/boot/dts/marvell/armada-3720-eDPU.dts
|
||||
F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.*
|
||||
|
||||
MHI BUS
|
||||
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||
|
@ -64,7 +64,8 @@
|
||||
compatible = "arm,armv7-timer";
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
arm,cpu-registers-not-fw-configured;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
@ -233,7 +234,7 @@
|
||||
compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x20044000 0x20>;
|
||||
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_TIMER>, <&xin24m>;
|
||||
clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER0>;
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
@ -241,7 +242,7 @@
|
||||
compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x20044020 0x20>;
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_TIMER>, <&xin24m>;
|
||||
clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER1>;
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
@ -249,7 +250,7 @@
|
||||
compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x20044040 0x20>;
|
||||
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_TIMER>, <&xin24m>;
|
||||
clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER2>;
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
@ -257,7 +258,7 @@
|
||||
compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x20044060 0x20>;
|
||||
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_TIMER>, <&xin24m>;
|
||||
clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER3>;
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
@ -265,7 +266,7 @@
|
||||
compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x20044080 0x20>;
|
||||
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_TIMER>, <&xin24m>;
|
||||
clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER4>;
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
@ -273,7 +274,7 @@
|
||||
compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
|
||||
reg = <0x200440a0 0x20>;
|
||||
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_TIMER>, <&xin24m>;
|
||||
clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER5>;
|
||||
clock-names = "pclk", "timer";
|
||||
};
|
||||
|
||||
@ -426,7 +427,7 @@
|
||||
|
||||
i2c0: i2c@20072000 {
|
||||
compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <20072000 0x1000>;
|
||||
reg = <0x20072000 0x1000>;
|
||||
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-names = "i2c";
|
||||
clocks = <&cru PCLK_I2C0>;
|
||||
@ -458,6 +459,7 @@
|
||||
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
||||
arm,pl330-broken-no-flushp;
|
||||
arm,pl330-periph-burst;
|
||||
clocks = <&cru ACLK_DMAC>;
|
||||
clock-names = "apb_pclk";
|
||||
#dma-cells = <1>;
|
||||
|
@ -109,6 +109,8 @@
|
||||
reg = <0x0 0xff>, /* MPU private access */
|
||||
<0x49022000 0xff>; /* L3 Interconnect */
|
||||
reg-names = "mpu", "dma";
|
||||
clocks = <&abe_clkctrl OMAP4_MCBSP1_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
@ -142,6 +144,8 @@
|
||||
reg = <0x0 0xff>, /* MPU private access */
|
||||
<0x49024000 0xff>; /* L3 Interconnect */
|
||||
reg-names = "mpu", "dma";
|
||||
clocks = <&abe_clkctrl OMAP4_MCBSP2_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
@ -175,6 +179,8 @@
|
||||
reg = <0x0 0xff>, /* MPU private access */
|
||||
<0x49026000 0xff>; /* L3 Interconnect */
|
||||
reg-names = "mpu", "dma";
|
||||
clocks = <&abe_clkctrl OMAP4_MCBSP3_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
|
@ -2043,6 +2043,8 @@
|
||||
compatible = "ti,omap4-mcbsp";
|
||||
reg = <0x0 0xff>; /* L4 Interconnect */
|
||||
reg-names = "mpu";
|
||||
clocks = <&l4_per_clkctrl OMAP4_MCBSP4_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
|
@ -109,6 +109,8 @@
|
||||
reg = <0x0 0xff>, /* MPU private access */
|
||||
<0x49022000 0xff>; /* L3 Interconnect */
|
||||
reg-names = "mpu", "dma";
|
||||
clocks = <&abe_clkctrl OMAP5_MCBSP1_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
@ -142,6 +144,8 @@
|
||||
reg = <0x0 0xff>, /* MPU private access */
|
||||
<0x49024000 0xff>; /* L3 Interconnect */
|
||||
reg-names = "mpu", "dma";
|
||||
clocks = <&abe_clkctrl OMAP5_MCBSP2_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
@ -175,6 +179,8 @@
|
||||
reg = <0x0 0xff>, /* MPU private access */
|
||||
<0x49026000 0xff>; /* L3 Interconnect */
|
||||
reg-names = "mpu", "dma";
|
||||
clocks = <&abe_clkctrl OMAP5_MCBSP3_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "common";
|
||||
ti,buffer-size = <128>;
|
||||
|
@ -550,6 +550,7 @@ static struct platform_device *ams_delta_devices[] __initdata = {
|
||||
&ams_delta_nand_device,
|
||||
&ams_delta_lcd_device,
|
||||
&cx20442_codec_device,
|
||||
&modem_nreset_device,
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table *ams_delta_gpio_tables[] __initdata = {
|
||||
@ -782,26 +783,28 @@ static struct plat_serial8250_port ams_delta_modem_ports[] = {
|
||||
{ },
|
||||
};
|
||||
|
||||
static int ams_delta_modem_pm_activate(struct device *dev)
|
||||
{
|
||||
modem_priv.regulator = regulator_get(dev, "RESET#");
|
||||
if (IS_ERR(modem_priv.regulator))
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct dev_pm_domain ams_delta_modem_pm_domain = {
|
||||
.activate = ams_delta_modem_pm_activate,
|
||||
};
|
||||
|
||||
static struct platform_device ams_delta_modem_device = {
|
||||
.name = "serial8250",
|
||||
.id = PLAT8250_DEV_PLATFORM1,
|
||||
.dev = {
|
||||
.platform_data = ams_delta_modem_ports,
|
||||
.pm_domain = &ams_delta_modem_pm_domain,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init modem_nreset_init(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = platform_device_register(&modem_nreset_device);
|
||||
if (err)
|
||||
pr_err("Couldn't register the modem regulator device\n");
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This function expects MODEM IRQ number already assigned to the port.
|
||||
* The MODEM device requires its RESET# pin kept high during probe.
|
||||
@ -833,37 +836,6 @@ static int __init ams_delta_modem_init(void)
|
||||
}
|
||||
arch_initcall_sync(ams_delta_modem_init);
|
||||
|
||||
static int __init late_init(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = modem_nreset_init();
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/*
|
||||
* Once the modem device is registered, the modem_nreset
|
||||
* regulator can be requested on behalf of that device.
|
||||
*/
|
||||
modem_priv.regulator = regulator_get(&ams_delta_modem_device.dev,
|
||||
"RESET#");
|
||||
if (IS_ERR(modem_priv.regulator)) {
|
||||
err = PTR_ERR(modem_priv.regulator);
|
||||
goto unregister;
|
||||
}
|
||||
return 0;
|
||||
|
||||
unregister:
|
||||
platform_device_unregister(&ams_delta_modem_device);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void __init ams_delta_init_late(void)
|
||||
{
|
||||
omap1_init_late();
|
||||
late_init();
|
||||
}
|
||||
|
||||
static void __init ams_delta_map_io(void)
|
||||
{
|
||||
omap1_map_io();
|
||||
@ -877,7 +849,7 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)")
|
||||
.init_early = omap1_init_early,
|
||||
.init_irq = omap1_init_irq,
|
||||
.init_machine = ams_delta_init,
|
||||
.init_late = ams_delta_init_late,
|
||||
.init_late = omap1_init_late,
|
||||
.init_time = omap1_timer_init,
|
||||
.restart = omap1_restart,
|
||||
MACHINE_END
|
||||
|
@ -176,17 +176,18 @@ static u64 notrace omap_32k_read_sched_clock(void)
|
||||
return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0;
|
||||
}
|
||||
|
||||
static struct timespec64 persistent_ts;
|
||||
static cycles_t cycles;
|
||||
static unsigned int persistent_mult, persistent_shift;
|
||||
|
||||
/**
|
||||
* omap_read_persistent_clock64 - Return time from a persistent clock.
|
||||
* @ts: &struct timespec64 for the returned time
|
||||
*
|
||||
* Reads the time from a source which isn't disabled during PM, the
|
||||
* 32k sync timer. Convert the cycles elapsed since last read into
|
||||
* nsecs and adds to a monotonically increasing timespec64.
|
||||
*/
|
||||
static struct timespec64 persistent_ts;
|
||||
static cycles_t cycles;
|
||||
static unsigned int persistent_mult, persistent_shift;
|
||||
|
||||
static void omap_read_persistent_clock64(struct timespec64 *ts)
|
||||
{
|
||||
unsigned long long nsecs;
|
||||
@ -206,10 +207,9 @@ static void omap_read_persistent_clock64(struct timespec64 *ts)
|
||||
/**
|
||||
* omap_init_clocksource_32k - setup and register counter 32k as a
|
||||
* kernel clocksource
|
||||
* @pbase: base addr of counter_32k module
|
||||
* @size: size of counter_32k to map
|
||||
* @vbase: base addr of counter_32k module
|
||||
*
|
||||
* Returns 0 upon success or negative error code upon failure.
|
||||
* Returns: %0 upon success or negative error code upon failure.
|
||||
*
|
||||
*/
|
||||
static int __init omap_init_clocksource_32k(void __iomem *vbase)
|
||||
|
@ -2209,7 +2209,7 @@ int omap_hwmod_parse_module_range(struct omap_hwmod *oh,
|
||||
return err;
|
||||
|
||||
pr_debug("omap_hwmod: %s %pOFn at %pR\n",
|
||||
oh->name, np, &res);
|
||||
oh->name, np, res);
|
||||
|
||||
if (oh && oh->mpu_rt_idx) {
|
||||
omap_hwmod_fix_mpu_rt_idx(oh, np, res);
|
||||
|
@ -62,25 +62,23 @@
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
clocks {
|
||||
divclk4: divclk4 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "divclk4";
|
||||
div1_mclk: divclk1 {
|
||||
compatible = "gpio-gate-clock";
|
||||
pinctrl-0 = <&audio_mclk>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
|
||||
#clock-cells = <0>;
|
||||
enable-gpios = <&pm8994_gpios 15 0>;
|
||||
};
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk4_pin_a>;
|
||||
};
|
||||
divclk4: divclk4 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "divclk4";
|
||||
|
||||
div1_mclk: divclk1 {
|
||||
compatible = "gpio-gate-clock";
|
||||
pinctrl-0 = <&audio_mclk>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
|
||||
#clock-cells = <0>;
|
||||
enable-gpios = <&pm8994_gpios 15 0>;
|
||||
};
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk4_pin_a>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
@ -11,26 +11,24 @@
|
||||
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
|
||||
|
||||
/ {
|
||||
clocks {
|
||||
divclk1_cdc: divclk1 {
|
||||
compatible = "gpio-gate-clock";
|
||||
clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
|
||||
#clock-cells = <0>;
|
||||
enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;
|
||||
divclk1_cdc: divclk1 {
|
||||
compatible = "gpio-gate-clock";
|
||||
clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
|
||||
#clock-cells = <0>;
|
||||
enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk1_default>;
|
||||
};
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk1_default>;
|
||||
};
|
||||
|
||||
divclk4: divclk4 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "divclk4";
|
||||
divclk4: divclk4 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "divclk4";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk4_pin_a>;
|
||||
};
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk4_pin_a>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
@ -20,16 +20,14 @@
|
||||
qcom,pmic-id = <0x20009 0x2000a 0x00 0x00>;
|
||||
qcom,board-id = <31 0>;
|
||||
|
||||
clocks {
|
||||
divclk2_haptics: divclk2 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "divclk2";
|
||||
divclk2_haptics: divclk2 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "divclk2";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk2_pin_a>;
|
||||
};
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&divclk2_pin_a>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -173,7 +173,7 @@
|
||||
compatible = "qcom,pmm8654au-gpio", "qcom,spmi-gpio";
|
||||
reg = <0x8800>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pmm8654au_2_gpios 0 0 12>;
|
||||
gpio-ranges = <&pmm8654au_1_gpios 0 0 12>;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
@ -68,15 +68,17 @@
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,name = "Haikou,I2S-codec";
|
||||
simple-audio-card,mclk-fs = <512>;
|
||||
simple-audio-card,frame-master = <&sgtl5000_codec>;
|
||||
simple-audio-card,bitclock-master = <&sgtl5000_codec>;
|
||||
|
||||
simple-audio-card,codec {
|
||||
clocks = <&sgtl5000_clk>;
|
||||
sgtl5000_codec: simple-audio-card,codec {
|
||||
sound-dai = <&sgtl5000>;
|
||||
// Prevent the dai subsystem from overwriting the clock
|
||||
// frequency. We are using a fixed-frequency oscillator.
|
||||
system-clock-fixed;
|
||||
};
|
||||
|
||||
simple-audio-card,cpu {
|
||||
bitclock-master;
|
||||
frame-master;
|
||||
sound-dai = <&i2s0_8ch>;
|
||||
};
|
||||
};
|
||||
|
@ -492,6 +492,7 @@
|
||||
|
||||
&i2s0 {
|
||||
pinctrl-0 = <&i2s0_2ch_bus>;
|
||||
pinctrl-1 = <&i2s0_2ch_bus_bclk_off>;
|
||||
rockchip,capture-channels = <2>;
|
||||
rockchip,playback-channels = <2>;
|
||||
status = "okay";
|
||||
|
@ -2457,6 +2457,16 @@
|
||||
<4 RK_PA0 1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
i2s0_2ch_bus_bclk_off: i2s0-2ch-bus-bclk-off {
|
||||
rockchip,pins =
|
||||
<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
|
||||
<3 RK_PD1 1 &pcfg_pull_none>,
|
||||
<3 RK_PD2 1 &pcfg_pull_none>,
|
||||
<3 RK_PD3 1 &pcfg_pull_none>,
|
||||
<3 RK_PD7 1 &pcfg_pull_none>,
|
||||
<4 RK_PA0 1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
i2s0_8ch_bus: i2s0-8ch-bus {
|
||||
rockchip,pins =
|
||||
<3 RK_PD0 1 &pcfg_pull_none>,
|
||||
|
@ -273,11 +273,9 @@ config RISCV_DMA_NONCOHERENT
|
||||
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
||||
select DMA_BOUNCE_UNALIGNED_KMALLOC if SWIOTLB
|
||||
select DMA_DIRECT_REMAP if MMU
|
||||
|
||||
config RISCV_NONSTANDARD_CACHE_OPS
|
||||
bool
|
||||
depends on RISCV_DMA_NONCOHERENT
|
||||
help
|
||||
This enables function pointer support for non-standard noncoherent
|
||||
systems to handle cache management.
|
||||
@ -550,6 +548,7 @@ config RISCV_ISA_ZICBOM
|
||||
depends on RISCV_ALTERNATIVE
|
||||
default y
|
||||
select RISCV_DMA_NONCOHERENT
|
||||
select DMA_DIRECT_REMAP
|
||||
help
|
||||
Adds support to dynamically detect the presence of the ZICBOM
|
||||
extension (Cache Block Management Operations) and enable its
|
||||
|
@ -77,6 +77,7 @@ config ERRATA_THEAD_PBMT
|
||||
config ERRATA_THEAD_CMO
|
||||
bool "Apply T-Head cache management errata"
|
||||
depends on ERRATA_THEAD && MMU
|
||||
select DMA_DIRECT_REMAP
|
||||
select RISCV_DMA_NONCOHERENT
|
||||
default y
|
||||
help
|
||||
|
@ -431,7 +431,7 @@
|
||||
};
|
||||
|
||||
ss-pins {
|
||||
pinmux = <GPIOMUX(48, GPOUT_SYS_SPI0_FSS,
|
||||
pinmux = <GPIOMUX(49, GPOUT_SYS_SPI0_FSS,
|
||||
GPOEN_ENABLE,
|
||||
GPI_SYS_SPI0_FSS)>;
|
||||
bias-disable;
|
||||
|
@ -139,6 +139,7 @@
|
||||
interrupt-parent = <&plic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
dma-noncoherent;
|
||||
ranges;
|
||||
|
||||
plic: interrupt-controller@ffd8000000 {
|
||||
|
2
drivers/cache/Kconfig
vendored
2
drivers/cache/Kconfig
vendored
@ -3,7 +3,7 @@ menu "Cache Drivers"
|
||||
|
||||
config AX45MP_L2_CACHE
|
||||
bool "Andes Technology AX45MP L2 Cache controller"
|
||||
depends on RISCV_DMA_NONCOHERENT
|
||||
depends on RISCV
|
||||
select RISCV_NONSTANDARD_CACHE_OPS
|
||||
help
|
||||
Support for the L2 cache controller on Andes Technology AX45MP platforms.
|
||||
|
@ -749,9 +749,14 @@ static struct ti_dt_clk omap44xx_clks[] = {
|
||||
DT_CLK(NULL, "mcbsp1_sync_mux_ck", "abe-clkctrl:0028:26"),
|
||||
DT_CLK(NULL, "mcbsp2_sync_mux_ck", "abe-clkctrl:0030:26"),
|
||||
DT_CLK(NULL, "mcbsp3_sync_mux_ck", "abe-clkctrl:0038:26"),
|
||||
DT_CLK("40122000.mcbsp", "prcm_fck", "abe-clkctrl:0028:26"),
|
||||
DT_CLK("40124000.mcbsp", "prcm_fck", "abe-clkctrl:0030:26"),
|
||||
DT_CLK("40126000.mcbsp", "prcm_fck", "abe-clkctrl:0038:26"),
|
||||
DT_CLK(NULL, "mcbsp4_sync_mux_ck", "l4-per-clkctrl:00c0:26"),
|
||||
DT_CLK("48096000.mcbsp", "prcm_fck", "l4-per-clkctrl:00c0:26"),
|
||||
DT_CLK(NULL, "ocp2scp_usb_phy_phy_48m", "l3-init-clkctrl:00c0:8"),
|
||||
DT_CLK(NULL, "otg_60m_gfclk", "l3-init-clkctrl:0040:24"),
|
||||
DT_CLK(NULL, "pad_fck", "pad_clks_ck"),
|
||||
DT_CLK(NULL, "per_mcbsp4_gfclk", "l4-per-clkctrl:00c0:24"),
|
||||
DT_CLK(NULL, "pmd_stm_clock_mux_ck", "emu-sys-clkctrl:0000:20"),
|
||||
DT_CLK(NULL, "pmd_trace_clk_mux_ck", "emu-sys-clkctrl:0000:22"),
|
||||
|
@ -565,15 +565,19 @@ static struct ti_dt_clk omap54xx_clks[] = {
|
||||
DT_CLK(NULL, "gpio8_dbclk", "l4per-clkctrl:00f8:8"),
|
||||
DT_CLK(NULL, "mcbsp1_gfclk", "abe-clkctrl:0028:24"),
|
||||
DT_CLK(NULL, "mcbsp1_sync_mux_ck", "abe-clkctrl:0028:26"),
|
||||
DT_CLK("40122000.mcbsp", "prcm_fck", "abe-clkctrl:0028:26"),
|
||||
DT_CLK(NULL, "mcbsp2_gfclk", "abe-clkctrl:0030:24"),
|
||||
DT_CLK(NULL, "mcbsp2_sync_mux_ck", "abe-clkctrl:0030:26"),
|
||||
DT_CLK("40124000.mcbsp", "prcm_fck", "abe-clkctrl:0030:26"),
|
||||
DT_CLK(NULL, "mcbsp3_gfclk", "abe-clkctrl:0038:24"),
|
||||
DT_CLK(NULL, "mcbsp3_sync_mux_ck", "abe-clkctrl:0038:26"),
|
||||
DT_CLK("40126000.mcbsp", "prcm_fck", "abe-clkctrl:0038:26"),
|
||||
DT_CLK(NULL, "mmc1_32khz_clk", "l3init-clkctrl:0008:8"),
|
||||
DT_CLK(NULL, "mmc1_fclk", "l3init-clkctrl:0008:25"),
|
||||
DT_CLK(NULL, "mmc1_fclk_mux", "l3init-clkctrl:0008:24"),
|
||||
DT_CLK(NULL, "mmc2_fclk", "l3init-clkctrl:0010:25"),
|
||||
DT_CLK(NULL, "mmc2_fclk_mux", "l3init-clkctrl:0010:24"),
|
||||
DT_CLK(NULL, "pad_fck", "pad_clks_ck"),
|
||||
DT_CLK(NULL, "sata_ref_clk", "l3init-clkctrl:0068:8"),
|
||||
DT_CLK(NULL, "timer10_gfclk_mux", "l4per-clkctrl:0008:24"),
|
||||
DT_CLK(NULL, "timer11_gfclk_mux", "l4per-clkctrl:0010:24"),
|
||||
|
@ -114,11 +114,11 @@ static int imx_dsp_setup_channels(struct imx_dsp_ipc *dsp_ipc)
|
||||
dsp_chan->idx = i % 2;
|
||||
dsp_chan->ch = mbox_request_channel_byname(cl, chan_name);
|
||||
if (IS_ERR(dsp_chan->ch)) {
|
||||
kfree(dsp_chan->name);
|
||||
ret = PTR_ERR(dsp_chan->ch);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "Failed to request mbox chan %s ret %d\n",
|
||||
chan_name, ret);
|
||||
kfree(dsp_chan->name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -334,12 +334,14 @@ if RISCV
|
||||
config ARCH_R9A07G043
|
||||
bool "RISC-V Platform support for RZ/Five"
|
||||
depends on NONPORTABLE
|
||||
depends on RISCV_ALTERNATIVE
|
||||
depends on !RISCV_ISA_ZICBOM
|
||||
depends on RISCV_SBI
|
||||
select ARCH_RZG2L
|
||||
select AX45MP_L2_CACHE if RISCV_DMA_NONCOHERENT
|
||||
select AX45MP_L2_CACHE
|
||||
select DMA_GLOBAL_POOL
|
||||
select ERRATA_ANDES if RISCV_SBI
|
||||
select ERRATA_ANDES_CMO if ERRATA_ANDES
|
||||
|
||||
select ERRATA_ANDES
|
||||
select ERRATA_ANDES_CMO
|
||||
help
|
||||
This enables support for the Renesas RZ/Five SoC.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user