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
CTCaer
054c68f251
bdk: hwinit: power on all relevant rails
...
Since that doesn't happen via sdram init anymore, do it in hwinit.
It only matters if we came out of warmboot.
2024-06-08 12:21:15 +03:00
CTCaer
85eb5489fe
bdk: pmc: rename io/det power defines
2024-06-08 12:16:07 +03:00
CTCaer
8b4f776c9d
bdk: fan: rename functions and add set from temp
...
- Rename functions to proper style (drivername_)
- Add fan_set_from_temp for managing the fan with passed SoC temperature.
2024-06-07 17:14:05 +03:00
CTCaer
14c482ddce
bdk: display: remove max77620 gpio 7 enable
...
It is actually not used at all.
So do not configure it to save power.
2024-06-05 15:20:27 +03:00
CTCaer
8d49bc3c33
bdk: hwinit: move LDO8 init in regulators init
...
And also reorder it above I2C1 init (because of HOAG).
2024-06-05 01:35:05 +03:00
CTCaer
39c614a3ab
bdk: hwinit: move sd2 to hw init
...
SD2 powers LDO0/1/8 on T210B01 so there's no need to be in display init.
Also there's not need to power it down first so configure it in one go.
2024-06-05 01:33:15 +03:00
CTCaer
bd55a3e756
bdk: clock: always set DISPA source
...
No need to distinguish between LP or HS.
Setting the same value doesn't glitch.
2024-06-02 08:00:42 +03:00
CTCaer
b01cc2432f
bdk: irq: remove ack source
...
HW interrupts can't be managed by FIR.
Only actual hw can clear the interrupt.
2024-06-02 07:46:18 +03:00
CTCaer
05db43a97c
bdk: hwinit: move down debug uart init
2024-06-02 07:44:22 +03:00
CTCaer
9d79af231e
bdk: use static where it should
2024-06-02 07:09:34 +03:00
CTCaer
7a74761da9
bdk: bpmp: add and use bpmp_clk_rate_relaxed
2024-06-02 06:51:06 +03:00
CTCaer
927489d2da
bdk: add missed defines
2024-05-19 10:50:25 +03:00
CTCaer
ae29f359ee
bdk: hwinit: rename reinit_workaround to deinit
2024-05-19 10:49:25 +03:00
CTCaer
985c513770
bdk: hwinit: add arbiter config
2024-05-19 10:07:06 +03:00
CTCaer
ec2e62236a
bdk: pinmux: add i2s pin config
2024-04-25 04:52:13 +03:00
CTCaer
9ba7c44b89
bdk: clock: use real source clock dividers
...
Use CLK_SRC_DIV macro in order to have the actual divider showing.
2024-03-13 02:01:01 +02:00
CTCaer
9a520d63a6
bdk: smmu: refactor driver and allow other asid
2024-03-13 01:54:46 +02:00
CTCaer
20e661fc01
bdk: refactor flow control defines
2024-03-13 01:50:45 +02:00
CTCaer
fb31cb2926
bdk: ccplex: add no rst vector lock & powergating
...
Allow not locking the reset vectors and launch a new payload after powergating ccplex.
2024-03-13 01:37:52 +02:00
CTCaer
b584a3f53a
bdk: add several defines
2023-12-25 04:08:34 +02:00
CTCaer
7f98fb736a
bdk: hwinit: reorder sdmmc1 reg disable
2023-12-25 04:07:26 +02:00
CTCaer
87c50732c0
bdk: fuse: simplify idle wait
2023-12-25 03:47:26 +02:00
CTCaer
504659a39b
bdk: actmon: switch to averaged sampling
2023-12-25 03:46:05 +02:00
CTCaer
ce137852b7
bdk: change some defines and comments
2023-10-12 06:59:15 +03:00
CTCaer
f2bdc3f47c
bdk: i2c: fix stack buffer overflow
2023-08-07 21:02:20 +03:00
CTCaer
1e28320e5a
bdk: t210: add more mmio addresses
...
And simplify relevant drivers that hardcoded them.
2023-07-31 16:59:15 +03:00
CTCaer
9187fa7a8c
bdk: fuse: add all t210b01 fuses
...
And use B01 to distinguish the ones only on that SoC.
2023-07-22 07:10:12 +03:00
CTCaer
b674624ad0
bdk: timer: add instruction sleep
...
usage:
`isleep(ILOOP(instructions))`
Each loop is 3 cycles, or approximately 7.35ns on 408MHz CPU clock.
2023-06-09 10:33:11 +03:00
CTCaer
191a0533d9
bdk: clock: add more known pto ids
2023-06-09 10:29:47 +03:00
CTCaer
8502731fbd
bdk: tsec: refactor some register names
2023-06-09 10:28:28 +03:00
CTCaer
c2ee6be2f5
bdk: sdram: add Samsung 8GB RAM support for T210
...
And remove Copper support completely.
2023-06-08 04:16:51 +03:00
CTCaer
27ae312227
bdk: minor naming edits
2023-03-31 09:11:55 +03:00
CTCaer
d258c82d52
bdk: sdmmc: add UHS DDR200 support
...
The bdk flag BDK_SDMMC_UHS_DDR200_SUPPORT can be used to enable it.
SD Card DDR200 (DDR208) support
Proper procedure:
1. Check that Vendor Specific Command System is supported.
Used as Enable DDR200 Bus.
2. Enable DDR200 bus mode via setting 14 to Group 2 via CMD6.
Access Mode group is left to default 0 (SDR12).
3. Setup clock to 200 or 208 MHz.
4. Set host to DDR bus mode that supports such high clocks.
Some hosts have special mode, others use DDR50 and others HS400.
5. Execute Tuning.
The true validation that this value in Group 2 activates it, is that DDR50 bus
and clocks/timings work fully after that point.
On Tegra X1, that can be done with DDR50 host mode.
Tuning though can't be done automatically on any DDR mode.
So it needs to be done manually and selected tap will be applied from the
biggest sampling window.
Finally, all that simply works, because the marketing materials for DDR200 are
basically overstatements to sell the feature. DDR200 is simply SDR104 in DDR mode,
so sampling on rising and falling edge and with variable output data window.
It can be supported by any host that is fast enough to support DDR at 200/208MHz
and can do hw/sw tuning for finding the proper sampling window in that mode.
Using a SDMMC controller on DDR200 mode at 400MHz, has latency allowance implications. The MC/EMC must be clocked enough to be able to serve the requests in time (512B in 1.28 ns).
2023-03-31 08:54:13 +03:00
CTCaer
76a5facbc3
bdk: clock: rename clock_t to clk_rst_t
...
To avoid redefines when standard math header is used.
2023-03-31 08:18:45 +03:00
CTCaer
502fc1ed50
bdk: sdmmc: rename ddr100 to the actual HS100 name
2023-03-31 08:15:40 +03:00
CTCaer
107fbd1d24
bdk: gpio: add debounce set function
...
The debounce time is not per pin but per bank. So software should manage proper time for sibling pins
2023-03-31 07:43:16 +03:00
CTCaer
1edb6583ac
bdk: gpio: reorder gpio config
...
Since there are some bootloaders that mess with the states of some power gpios, reorder gpio configuration for input/output in order to prevent power pin glitches.
2023-03-31 07:41:50 +03:00
CTCaer
17cdd5af0d
bdk: hwdeinit: restore order of bpmp clock set
...
Restore order of bpmp clock scale down in deinit, in order to decrease pressure on clock deinits.
2023-02-22 14:48:43 +02:00
CTCaer
9a98c1afb9
bdk: stylistic corrections
...
And update copyrights
2023-02-11 23:46:38 +02:00
CTCaer
72abe60a3b
bdk: hw init: remove support for broken hwinits
...
It's 2023 already.
2023-02-11 23:19:56 +02:00
CTCaer
114abba815
bdk: hw init: do not touch audio clocks on t210b01
2023-02-11 23:13:41 +02:00
CTCaer
ec8c04db8a
bdk: bpmp: add 563MHz clock for worst binnings
2023-02-11 23:12:14 +02:00
CTCaer
4d7eb6a647
bdk: clock: improve pllc deinit
2023-02-11 23:11:24 +02:00