Commit Graph

646 Commits

Author SHA1 Message Date
CTCaer
72623d5a80 bdk: ini: homogenize return values 2026-03-27 20:16:31 +01:00
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
a8325f4ec4 bdk: tsec: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer
0e49d62bed bdk: se: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer
1101db8f19 bdk: power: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer
45446486f2 bdk: dram: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer
10fceea4be bdk: touch: 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
58064bda34 bdk: vic: expose idle wait 2026-03-27 20:08:45 +01:00
CTCaer
1319984285 bdk: touch: check event count for wait event
And increase checks during autotune execution.
2026-03-27 20:08:45 +01:00
CTCaer
8881faa91b bdk: touch: simplify input reporting
Additionally, touch polling now returns 1 for no event result.
2026-03-27 20:08:45 +01:00
CTCaer
0e64b9384f bdk: touch: switch to custom chip info cmd
And also check if chip id is correct on init.
2026-03-27 20:08:45 +01:00
CTCaer
e3fba92e00 bdk: touch: use packet i2c for all transfers
The repeating byte doesn't exist in i2c packet mode.
Additionally, adjust split transfers to one.
2026-03-27 20:08:45 +01:00
CTCaer
2a7e148011 bdk: touch: refactor
And also use packet mode for big tx/rx combo i2c trasnfers.
2026-03-27 20:08:45 +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
e2ff75291b bdk: touch: refactor/improve
- Remove useless poll wait
- Use more defines
- Deduplicate code
- Add more checks
- Add switch sense mode
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
7a37ddc45e bdk: vic: add hw version that this driver aims for
Also TRM lies about best cache width, like always.
The higher the faster. The lower the simpler alignment.
A balanced one is used by default.
2026-03-27 20:08:45 +01:00
CTCaer
de3a74d351 bdk: bm92t: do not parse non fixed pdos 2026-03-27 20:08:45 +01:00
CTCaer
eb62a31a1a bdk: sdmmc: remove dependency to ram for init 2026-03-27 20:08:45 +01:00
CTCaer
bf5372628a bdk: mem: rename sdmmc dma buffer 2026-03-27 20:05:57 +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
618e3007b5 bdk: lvgl: complete black theme
This has the side-effect to make any theme color component from 0x0B to 0xC7 work.
2026-03-27 19:38:45 +01:00
CTCaer
378d38b850 bdk: add missing header guards 2026-03-27 19:38:45 +01:00
CTCaer
f155346238 bdk: ianos: restructure for future expansion 2026-03-27 19:38:08 +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
315457651c bdk: joycon: make init stricter but relax timings
Additionally, if both Joy-Con are found, try to send rumble simultaneously.
2026-03-27 10:02:21 +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
925b6e22bb bdk: se: add T210 SHA256 silicon errata WAR
Apparently, some T210 silicon have an undocumented errata where the MSG_LEFT2/3
registers are not ignored as they should.
When they have random data in POR they cause a hang as long as the message and
SHA calculation speed. So always clear them.
Additionally, clear MSG_LENGTH2/3 registers too even though they do not matter.
2026-03-27 10:02:21 +01:00
CTCaer
5a35a61753 bdk: se: adjust T210 silicon errata coherency WAR
Add a 15us worst case scenario delay after OP done for T210.
Practically, because of 1600 MHz RAM, less than 1us delay is needed.
(204 MHz: 15us, 408 MHz: 5us, etc).
2026-03-27 10:02:21 +01:00
CTCaer
e649d1df8e bdk: se: correct result for < block size aes 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
8c8ca53ab7 bdk: joycon: more refactoring 2026-03-27 10:00:26 +01:00
CTCaer
e6a3c80f4d bdk: joycon: generalize _jc_packet_add_uart_hdr
Correct its header construction in case it's used in the future.
Plus some unhardcoding of lengths.
2026-03-27 10:00:26 +01:00
CTCaer
2a0617dbf6 bdk: joycon: increase connection timeout to 1.8s 2026-03-27 10:00:26 +01:00
CTCaer
690beb0de7 bdk: joycon: refactor some fields
And add better comments.
2026-03-27 10:00:26 +01:00
CTCaer
6bcc2e082f bdk: joycon: use packed structs and bitfields 2026-03-27 10:00:26 +01:00
CTCaer
c605e924ed bdk: joycon: correct crc8 offsets
By luck the current offset and length of the calculation always worked.
Correct it though because the function might be used fully in the future.
2026-03-27 10:00:26 +01:00
CTCaer
d252dd7e52 bdk: joycon: maintain consistent naming styles 2026-03-27 10:00:26 +01:00
CTCaer
c200ef3f4a bdk: joycon: optimize rumble enable 2026-03-27 10:00:26 +01:00
CTCaer
5fe649d7dd bdk: display: add OLED status pin
Code is commented out for now until it gets used.
Status is set when RST is enabled.
2026-03-27 10:00:26 +01:00
CTCaer
8e2a776e73 bdk: se: support multiple/partial blocks for RNG 2026-03-27 09:59:42 +01:00
CTCaer
d0dcfd0008 bdk: se: use proper naming for ctx keys 2026-03-27 09:59:42 +01:00
CTCaer
a258c726dc bdk: se: refactor and optimize SHA256
- Simplify config and fix partial hashing
- Add partial function calls
- All partial state is handled internally
- All functions now use the classic naming convention.
2026-03-27 09:59:42 +01:00
CTCaer
89795a4c96 bdk: se: use classic naming convention for XTS 2026-03-27 09:59:42 +01:00