Commit Graph
190 Commits
Author SHA1 Message Date
CTCaer 12d970fa64 bdk: pmc: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 9bca3c0253 bdk: kfuse: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer fcbae9d581 bdk: clock: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer f26e9f0504 bdk: i2c: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 476c070cf4 bdk: i2c: optimize packet mode functions
- Allow xfer packet to send up to 20 bytes before receiving
- Remove interrupt use since it's only polling
- Check proper status for TX finish.
2026-03-27 20:08:45 +01:00
CTCaer 8f6dce1368 bdk: i2c: refactor 2026-03-27 20:08:45 +01:00
CTCaer 10c2d3d379 bdk: clk: add missing macro 2026-03-27 20:08:45 +01:00
CTCaer 45a08c058f bdk: clk: reduce i2c freq input to save power 2026-03-27 20:08:45 +01:00
CTCaer aba56fd173 bdk: move exception type base away from IRQ stack
Allow a more heavy stack usage by IRQ handlers.
2026-03-27 20:05:57 +01:00
CTCaer 378d38b850 bdk: add missing header guards 2026-03-27 19:38:45 +01:00
CTCaer b3c95990ed bdk: pmc: refactor register defines and structs 2026-03-27 19:36:58 +01:00
CTCaer b86701823c bdk: pinmux: always detach I2C4 pins from I2C3 pm
Generally I2C3 communication can work via I2C3 or I2C4 pins.
Defaults are fine as long as one of the pin groups are floating or grounded or
both share I2C traces.

In NX boards I2C4 SDA is used for GC and connected to 1V8.
So if a GC is slotted, I2C3 works, if not, no communication is possible.

This config was done previously inside I2C3 consumer driver (touchscreen).
Now it's moved inside pinmux_config_i2c.
2026-03-27 19:36:58 +01:00
CTCaer aecd657358 bdk: display: reduce display off waiting time
And align oled panel inside vblank.
Assumes display deinit happens before the rest of deinit.
2026-03-27 10:02:21 +01:00
CTCaer 4daa02fe85 bdk: hwinit: remove coreboot support
Everything external is finally updated and beyond parity with old things that needed it.
2026-03-27 10:00:26 +01:00
CTCaer 2004b38f41 bdk: ccplex: do not disable mselect on cpu pwrgate 2026-03-27 09:57:59 +01:00
CTCaer 46fa18be89 bdk: display: simplify macros
Expand register index in parent macro and remove _DI/_DSIREG macros.
2026-03-27 09:57:59 +01:00
CTCaer c17881f2c3 bdk: display: use spare reg to store dcs bl duty
And also remove backlight pwm restoring from coreboot hw deinit path.
2026-03-27 09:57:59 +01:00
CTCaer ffc0aa2c3d bdk: fuse: return array size with fuse_read_array 2026-03-27 09:57:23 +01:00
CTCaer 03cb1aac29 bdk: clock: update some defines 2026-03-27 09:54:06 +01:00
CTCaer 7b7906efc2 bdk: clock: add i2c to the errata affected list 2026-03-27 09:51:47 +01:00
CTCaer e29d139946 bdk: fuse: allow overriding dram id fuses
This should be set before running sdram init.
fuse_read_dramid(true) will still return the real id.
2026-03-27 09:51:47 +01:00
CTCaer b862311c0c bdl: minerva: add deinit function
Removes dependency to Nyx storage for hw init too.
2026-03-27 09:51:46 +01:00
CTCaer 1eaa801d6a bdk: bpmp: add write commits
And deduplicate bpmp_clk_rate_relaxed in bpmp_clk_rate_set.
2026-03-27 09:51:46 +01:00
CTCaer 25359b23b9 bdk: clock: add sdmmc1 to the errata affected list 2026-03-27 09:51:46 +01:00
CTCaer db08514ff0 bdk: clock: allow pll lock wait to timeout
Also enable PLLC4 p/f lock and reduce time waiting before disabling.
2026-03-27 09:51:46 +01:00
CTCaer 877e2c7c2e bdk: clock: improve PLLC init
- Use 6 as divm and div1 for OUT1 to avoid having very high frequency on OUT0
 There seems to be an undocumented silicon errata where PLLC OUT0 produces EMI
 to input mux logic in modules, even when not using it.
- Always check if PLL is enabled and disable first in order to avoid a silicon
 errata with hybrid PLLs
- Fix PLLC_FLL_LD_MEM value
2026-03-27 09:51:46 +01:00
CTCaer fa2d7854d3 bdk: clock: streamline sdmmc func naming
Additionally, restored the pclock variable because of _clock_sdmmc_config_clock_host store order.
2026-03-27 09:51:46 +01:00
CTCaer ac0d98ad29 bdk: clock: use SET/CLR registers for all modules
This is not mandatory but removes unnecessary load-mask/or-stores.

On the other hand, due to an undocumented T210 silicon errata,
these are mandatory for SDMMC modules.
This is because a fraction of T210 chips can glitch out and cause SoC hang.
T210B01 is not affected.
2026-03-27 09:51:46 +01:00
CTCaer a365af0492 bdk: bpmp: add binX clock defines 2026-03-27 09:48:54 +01:00
CTCaer 28dce16877 bdk: fuse: add sense function 2026-03-27 09:48:54 +01:00
CTCaer f541f14699 bdk: fuse: add extra info on regs 2026-03-27 09:48:54 +01:00
CTCaer 518cfd401a bdk: fuse: correct masking on array read cmd 2026-03-27 09:48:54 +01:00
CTCaer 44dd00c29a bdk: t210: add mc channel macros 2026-03-27 09:48:54 +01:00
CTCaer b52f5edce6 bdk: hwinit: refactor MBIST WAR & add description
The biggest take here is that the split approach of having it in Bootrom and
Bootloader is that it's only for boot. Any later powerdown must rerun the WAR
for that particular power domain.
2026-03-27 09:44:07 +01:00
CTCaer 393d135105 bdk: hwinit: fix RAM_SVOP_PDP try no 2
Previously the correct reg name was used but register address was not fixed.
So finally fix it.
2026-03-27 09:44:07 +01:00
CTCaer 2fda4115aa bdk: add some t210 and fuses defines
PGUP tag register can be used to identify which cpu we are running on.
2026-03-27 09:44:06 +01:00
CTCaer d289224653 bdk: clock: simplify logic
Simplify logic for clock enable and sdmmc clock management
2026-03-27 09:44:06 +01:00
CTCaer 0647fd06d8 bdk: clock: remove non existent module ids
And add comments to special handling ones
2026-03-27 09:44:06 +01:00
CTCaer d33ded5f6d bdk: pmc: rename pmc_enable_partition 2026-03-27 09:44:06 +01:00
CTCaer b70932cfaa bdk: clock: wait for PLLD to lock when set 2026-03-27 09:44:06 +01:00
CTCaer 380c1dc9b2 bdk: refactor several comments and defines 2026-03-27 09:05:58 +01:00
CTCaer 2d91e9b549 bdk: clock: refactor common PLL defines 2026-03-27 09:05:58 +01:00
CTCaer 3c6bb75267 bdk: small refactoring 2025-05-13 16:17:31 +02:00
CTCaer 14413ae6bd bdk: timer: restore rtc timer spinlock 2024-10-10 18:22:03 +03:00
CTCaer edf00d8e51 bdk: bpmp: add state set function
Some states are controlled via software. So add a function for that.
2024-10-04 21:54:58 +03:00
CTCaer 1a98e3a702 bdk: irq: disable irq if handler error 2024-10-04 21:53:17 +03:00
CTCaer 8bf3bee08b bdk: uart: fix fifo clear
- Do not clear fifo for everything if not needed
- Correct fifo clear checks
2024-10-04 21:52:24 +03:00
CTCaer 9e239df39e bdk: constify various args 2024-10-04 21:45:57 +03:00
CTCaer e47b6ec19b bdk: hwinit: display changes
Do not display ldo0 if enabled here as it's not needed.
Make sure PLLP_OUTB is properly reset in case of coming out of warmboot.
2024-07-02 17:59:14 +03:00
CTCaer acb3997a7d bdk: hwinit: reorder no io power
And make sure sdmmc iopower is not enabled after vdd disable.
2024-07-02 17:56:20 +03:00