Hi Dawei,
1.If Select 48MHz FRO output, is the trim field same as 96MHz trim setting?
TS: The factory trim value was saved at internal ROM address, the different frequency using the different address.
As macro definition,
#define INDEX_SECTOR_TRIM48 ((uint32_t *)0x01000448U)
#define INDEX_SECTOR_TRIM96 ((uint32_t *)0x0100044CU)
2.why SDK API could hard code the trim value? since factory trim, the trim value is maybe different.
TS: I did a test with two LPCXpresso54608 boards to call the same CLOCK_SetupFROClocking(48000000U) function,
the SYSCON_FROCTRL [FREQTRIM] bits with different value.
That means the there with different trim value during factory trim phase and storage at ROM address 0x01000448.
First board:

Second board:

Below is SYSCON_FROCTRL register value after call BOARD_BootClockFROHF96M() function:

Wish it helps.
Have a great day,
Mike
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------