[PATCH v2 0/4] Support of MIPI CSI-2 for A83T

Kévin L'hôpital kevin.lhopital at bootlin.com
Fri Aug 28 09:17:32 EDT 2020


This series adds the support for the MIPI CSI-2 controller for the A83T SoC.
The CSI controller is the same as the V3s SoC that's why I put the A83T
MIPI CSI-2 driver in sun6i-csi.
My work is based on the Allwinner BSP for A83T and also on MIPI CSI-2
specification for the A83T given by Allwinner.

v4l2-compliance SHA: not available, 32 bits                                                                             
                                                                                                                        
Compliance test for sun6i-video device /dev/video0:                                                                     
                                                                                                                        
Driver Info:                                                                                                            
        Driver name      : sun6i-video                                                                                  
        Card type        : sun6i-csi                                                                                    
        Bus info         : platform:camera                                                                              
        Driver version   : 5.5.0                                                                                        
        Capabilities     : 0x84200001                                                                                   
                Video Capture                                                                                           
                Streaming                                                                                               
                Extended Pix Format                                                                                     
                Device Capabilities                                                                                     
        Device Caps      : 0x04200001                                                                                   
                Video Capture                                                                                           
                Streaming                                                                                               
                Extended Pix Format                                                                                     
Media Driver Info:                                                                                                      
        Driver name      : sun6i-csi                                                                                    
        Model            : Allwinner Video Capture Device                                                               
        Serial           :                                                                                              
        Bus info         :                                                                                              
        Media version    : 5.5.0                                                                                        
        Hardware revision: 0x00000000 (0)                                                                               
        Driver version   : 5.5.0                                                                                        
Interface Info:                                                                                                         
        ID               : 0x03000003                                                                                   
        Type             : V4L Video                                                                                    
Entity Info:                                                                                                            
        ID               : 0x00000001 (1)                                                                               
        Name             : sun6i-csi                                                                                    
        Function         : V4L2 I/O                                                                                     
        Pad 0x01000002   : 0: Sink, Must Connect                                                                        
          Link 0x02000007: from remote pad 0x1000006 of entity 'ov8865 1-0036': Data, Enabled, Immutable                
                                                                                                                        
Required ioctls:                                                                                                        
        test MC information (see 'Media Driver Info' above): OK                                                         
        test VIDIOC_QUERYCAP: OK                                                                                        
                                                                                                                        
Allow for multiple opens:                                                                                               
        test second /dev/video0 open: OK                                                                                
        test VIDIOC_QUERYCAP: OK                                                                                        
        test VIDIOC_G/S_PRIORITY: OK                                                                                    
        test for unlimited opens: OK                                                                                    
                                                                                                                        
Debug ioctls:                                                                                                           
        test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)                                                                
        test VIDIOC_LOG_STATUS: OK                                                                                      
                                                                                                                        
Input ioctls:                                                                                                           
        test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)                                                       
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)                                                                   
        test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)                                                                  
        test VIDIOC_ENUMAUDIO: OK (Not Supported)                                                                       
        test VIDIOC_G/S/ENUMINPUT: OK                                                                                   
        test VIDIOC_G/S_AUDIO: OK (Not Supported)                                                                       
        Inputs: 1 Audio Inputs: 0 Tuners: 0                                                                             
                                                                                                                        
Output ioctls:                                                                                                          
        test VIDIOC_G/S_MODULATOR: OK (Not Supported)                                                                   
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)                                                                   
        test VIDIOC_ENUMAUDOUT: OK (Not Supported)                                                                      
        test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)                                                                  
        test VIDIOC_G/S_AUDOUT: OK (Not Supported)                                                                      
        Outputs: 0 Audio Outputs: 0 Modulators: 0                                                                       
                                                                                                                        
Input/Output configuration ioctls:                                                                                      
        test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)                                                              
        test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)                                                       
        test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)                                                                  
        test VIDIOC_G/S_EDID: OK (Not Supported)                                                                        
                                                                                                                        
Control ioctls (Input 0):                                                                                               
        test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK                                                                        
        test VIDIOC_QUERYCTRL: OK                                                                                       
        test VIDIOC_G/S_CTRL: OK                                                                                        
        test VIDIOC_G/S/TRY_EXT_CTRLS: OK                                                                               
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK                                                                     
        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)                                                                    
        Standard Controls: 7 Private Controls: 0                                                                        
                                                                                                                        
Format ioctls (Input 0):                                                                                                
        test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK                                                              
        test VIDIOC_G/S_PARM: OK (Not Supported)                                                                        
        test VIDIOC_G_FBUF: OK (Not Supported)                                                                          
        test VIDIOC_G_FMT: OK                                                                                           
        test VIDIOC_TRY_FMT: OK                                                                                         
        test VIDIOC_S_FMT: OK                                                                                           
        test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)                                                                
        test Cropping: OK (Not Supported)                                                                               
        test Composing: OK (Not Supported)                                                                              
        test Scaling: OK                                                                                                
                                                                                                                        
Codec ioctls (Input 0):                                                                                                 
        test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)                                                               
        test VIDIOC_G_ENC_INDEX: OK (Not Supported)                                                                     
        test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)                                                               
                                                                                                                        
Buffer ioctls (Input 0):                                                                                                
        test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK                                                                    
        test VIDIOC_EXPBUF: OK                                                                                          
        test Requests: OK (Not Supported)                                                                               
                                                                                                                        
Total for sun6i-video device /dev/video0: 45, Succeeded: 45, Failed: 0, Warnings: 0

Changes since V1:
- Add more details in the cover letter.
- Add a test to get the clocks to avoid an error for the platform without MIPI
CSI-2.
- Add more details in the register assignations.
- Removed the support of multiple virtual channels because there is only one
channel support in the CSI driver.

Kévin L'hôpital (4):
  media: sun6i-csi: Fix the bpp for 10-bit bayer formats
  media: sunxi: sun6i-csi: Move the sun6i_csi_dev structure to the
    common header
  media: sunxi: sun6i-csi: Add support of MIPI CSI-2 for A83T
  ARM: dts: sun8i: a83t: Add support for the MIPI CSI-2 in CSI node

 arch/arm/boot/dts/sun8i-a83t.dtsi             |  11 +-
 .../media/platform/sunxi/sun6i-csi/Makefile   |   2 +-
 .../platform/sunxi/sun6i-csi/sun6i_csi.c      |  96 +++++---
 .../platform/sunxi/sun6i-csi/sun6i_csi.h      |  14 +-
 .../sunxi/sun6i-csi/sun8i_a83t_dphy.c         |  39 ++++
 .../sunxi/sun6i-csi/sun8i_a83t_dphy.h         |  16 ++
 .../sunxi/sun6i-csi/sun8i_a83t_dphy_reg.h     |  39 ++++
 .../sunxi/sun6i-csi/sun8i_a83t_mipi_csi2.c    | 217 ++++++++++++++++++
 .../sunxi/sun6i-csi/sun8i_a83t_mipi_csi2.h    |  16 ++
 .../sun6i-csi/sun8i_a83t_mipi_csi2_reg.h      | 179 +++++++++++++++
 10 files changed, 595 insertions(+), 34 deletions(-)
 create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun8i_a83t_dphy.c
 create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun8i_a83t_dphy.h
 create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun8i_a83t_dphy_reg.h
 create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun8i_a83t_mipi_csi2.c
 create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun8i_a83t_mipi_csi2.h
 create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun8i_a83t_mipi_csi2_reg.h

-- 
2.17.1




More information about the linux-arm-kernel mailing list