The CY2XF23 is a One Time Programmable (OTP) device and cannot be re-programmed after being programmed once.
The CY2XF23 has an I2C interface which can be used to change the output frequency, but this is different from "programming" because I2C changes are lost when power is removed. The I2C interface is not used to program or reprogram the device memory. The I2C is used for frequency margining where we change the settings already programmed as per the truth table.
Part numbers beginning with CY2XF23FLX are field programmable devices. They are unprogrammed when shipped. The user may program them once, using a programmer such as the CY3675 CyClockMaker.
Part numbers beginning with CY2XF23LX are factory programmed devices. They are programmed by Cypress prior to shipping, and cannot be reprogrammed afterwards.