How to modify AR0231 initialization procedure


I would like to modify AR0231 sensor initialization procedure to support some changes for my application.
Using default initialization dw_createSensor() terminates with error (Failed to enable sensor streaming) when enabling PCLK on the sensor.
According to DRIVE_OS_Linux_SDK_Development_Guide it is possible to add third-party camera module drivers to nvsipl_drv.
In nvsipl_drv there exists and contains following database objects:
AR0231 SensorInfo
SF3324 CameraModuleInfo
SF3325 CameraModuleInfo
SF3324 PlatformCfg
SF3325 PlatformCfg

These should contain basic information about the setup for AR0231 GMSL camera. As I understand, using this information Pegasus can use related objects that either contain the configuration itself or another piece of information about which configuration to use (for example an Init() class member function that has specified configuration for desired camera or similar).
So in order to actually create custom camera configuration for existing camera module or new camera module user should create an libnvsipl_drv_
.so object that will be loaded if it is located at correct path (or if the path is specified to the directory containing object).
I wasn’t, however, able to find any information or way to create an object like this that will be functional in this specific way.
Is there an example or are there any instructions for creating user specific libnvsipl_drv_*.so objects?
If there is another approach to modify AR0231 initialization procedure it might be helpful as well.
Can you help how to proceed with this issue?

Dear robert.stitic,
Marking this as duplicate to