• Gustavo Pimentel's avatar
    dmaengine: Add Synopsys eDMA IP version 0 debugfs support · 305aebef
    Gustavo Pimentel authored
    Add Synopsys eDMA IP version 0 debugfs support to assist any debug
    in the future.
    
    Creates a file system structure composed by folders and files that mimic
    the IP register map (this files are read only) to ease any debug.
    
    To enable this feature is necessary to select DEBUG_FS option on kernel
    configuration.
    
    Small output example:
    
    (eDMA IP version 0, unroll, 1 write + 1 read channels)
    
    % mount -t debugfs none /sys/kernel/debug/
    % tree /sys/kernel/debug/dw-edma-core:0/
    dw-edma/
    ├── version
    ├── mode
    ├── wr_ch_cnt
    ├── rd_ch_cnt
    └── registers
        ├── ctrl_data_arb_prior
        ├── ctrl
        ├── write
        │   ├── engine_en
        │   ├── doorbell
        │   ├── ch_arb_weight_low
        │   ├── ch_arb_weight_high
        │   ├── int_status
        │   ├── int_mask
        │   ├── int_clear
        │   ├── err_status
        │   ├── done_imwr_low
        │   ├── done_imwr_high
        │   ├── abort_imwr_low
        │   ├── abort_imwr_high
        │   ├── ch01_imwr_data
        │   ├── ch23_imwr_data
        │   ├── ch45_imwr_data
        │   ├── ch67_imwr_data
        │   ├── linked_list_err_en
        │   ├── engine_chgroup
        │   ├── engine_hshake_cnt_low
        │   ├── engine_hshake_cnt_high
        │   ├── ch0_pwr_en
        │   ├── ch1_pwr_en
        │   ├── ch2_pwr_en
        │   ├── ch3_pwr_en
        │   ├── ch4_pwr_en
        │   ├── ch5_pwr_en
        │   ├── ch6_pwr_en
        │   ├── ch7_pwr_en
        │   └── channel:0
        │       ├── ch_control1
        │       ├── ch_control2
        │       ├── transfer_size
        │       ├── sar_low
        │       ├── sar_high
        │       ├── dar_high
        │       ├── llp_low
        │       └── llp_high
        └── read
            ├── engine_en
            ├── doorbell
            ├── ch_arb_weight_low
            ├── ch_arb_weight_high
            ├── int_status
            ├── int_mask
            ├── int_clear
            ├── err_status_low
            ├── err_status_high
            ├── done_imwr_low
            ├── done_imwr_high
            ├── abort_imwr_low
            ├── abort_imwr_high
            ├── ch01_imwr_data
            ├── ch23_imwr_data
            ├── ch45_imwr_data
            ├── ch67_imwr_data
            ├── linked_list_err_en
            ├── engine_chgroup
            ├── engine_hshake_cnt_low
            ├── engine_hshake_cnt_high
            ├── ch0_pwr_en
            ├── ch1_pwr_en
            ├── ch2_pwr_en
            ├── ch3_pwr_en
            ├── ch4_pwr_en
            ├── ch5_pwr_en
            ├── ch6_pwr_en
            ├── ch7_pwr_en
            └── channel:0
                ├── ch_control1
                ├── ch_control2
                ├── transfer_size
                ├── sar_low
                ├── sar_high
                ├── dar_high
                ├── llp_low
                └── llp_high
    Signed-off-by: default avatarGustavo Pimentel <gustavo.pimentel@synopsys.com>
    Cc: Vinod Koul <vkoul@kernel.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: Joao Pinto <jpinto@synopsys.com>
    Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
    305aebef
dw-edma-v0-debugfs.c 7.87 KB