diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-07-20 09:03:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-07-20 09:03:36 -0700 |
commit | d2be38b9a5514dbc7dc0c96a2a7f619fcddce00d (patch) | |
tree | 8588d09562d7171ab95b07d9c00fa18b6b691bd3 /arch/mips/lantiq/xway/sysctrl.c | |
parent | 3c3ff7be9729959699eb6cbc7fd7303566d74069 (diff) | |
parent | bb2d63500b5c8fd1ea425caffe2d44c931fefc6b (diff) |
Merge tag 'mips_6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS updates from Thomas Bogendoerfer:
- add support for Realtek RTL9302C
- add support for Mobileye EyeQ6H
- add support for Mobileye EyeQ OLB system controller
- improve r4k clocksource
- add mode for emulating ieee754 NAN2008
- rework for BMIPS CBR address handling
- fixes for Loongson 2K1000
- defconfig updates
- cleanups and fixes
* tag 'mips_6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (58 commits)
MIPS: config: Add ip30_defconfig
MIPS: config: lemote2f: Regenerate defconfig
MIPS: config: generic: Add board-litex
MIPS: config: Enable MSA and virtualization for MIPS64R6
MIPS: Fix fallback march for SB1
mips: dts: realtek: Add RTL9302C board
mips: generic: add fdt fixup for Realtek reference board
mips: select REALTEK_OTTO_TIMER for Realtek platforms
dt-bindings: interrupt-controller: realtek,rtl-intc: Add rtl9300-intc
dt-bindings: mips: realtek: Add rtl930x-soc compatible
dt-bindings: vendor-prefixes: Add Cameo Communications
mips: dts: realtek: add device_type property to cpu node
mips: dts: realtek: use "serial" instead of "uart" in node name
MIPS: Implement ieee754 NAN2008 emulation mode
MIPS: lantiq: improve USB initialization
MIPS: GIC: Generate redirect block accessors
MIPS: CPS: Add a couple of multi-cluster utility functions
MIPS: Octeron: remove source file executable bit
MAINTAINERS: Mobileye: add OLB drivers and dt-bindings
MIPS: mobileye: eyeq5: add OLB system-controller node
...
Diffstat (limited to 'arch/mips/lantiq/xway/sysctrl.c')
-rw-r--r-- | arch/mips/lantiq/xway/sysctrl.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c index 3ed078225222..5a75283d17f1 100644 --- a/arch/mips/lantiq/xway/sysctrl.c +++ b/arch/mips/lantiq/xway/sysctrl.c @@ -247,6 +247,25 @@ static void pmu_disable(struct clk *clk) pr_warn("deactivating PMU module failed!"); } +static void usb_set_clock(void) +{ + unsigned int val = ltq_cgu_r32(ifccr); + + if (of_machine_is_compatible("lantiq,ar10") || + of_machine_is_compatible("lantiq,grx390")) { + val &= ~0x03; /* XTAL divided by 3 */ + } else if (of_machine_is_compatible("lantiq,ar9") || + of_machine_is_compatible("lantiq,vr9")) { + /* TODO: this depends on the XTAL frequency */ + val |= 0x03; /* XTAL divided by 3 */ + } else if (of_machine_is_compatible("lantiq,ase")) { + val |= 0x20; /* from XTAL */ + } else if (of_machine_is_compatible("lantiq,danube")) { + val |= 0x30; /* 12 MHz, generated from 36 MHz */ + } + ltq_cgu_w32(val, ifccr); +} + /* the pci enable helper */ static int pci_enable(struct clk *clk) { @@ -588,4 +607,5 @@ void __init ltq_soc_init(void) clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE); clkdev_add_pmu("1e100400.serial", NULL, 1, 0, PMU_ASC0); } + usb_set_clock(); } |