• Takashi Sakamoto's avatar
    ALSA: firewire-motu: add support for MOTU 896 · b431f16f
    Takashi Sakamoto authored
    MOTU 896 is a second model in MOTU FireWire series, produced in 2001. This
    model consists of three chips:
    
     * Texas Instruments TSB41AB2 (Physical layer for IEEE 1394 bus)
     * Philips Semiconductors PDI 1394L21BE (Link layer for IEEE 1394 bus and
       packet processing layer)
     * QuickLogic QuickRAM QL4016 (Data block processing layer and digital
       signal processing)
    
    This commit adds a support for the model, with its unique protocol as
    version 1. The features of this protocol are:
    
     * no MIDI support.
     * Rx packets have no data chunks for control and status messages.
     * Tx packets have 2 bytes for control and status messages in the end of
       each data block.
     * The most of settings are represented in bit flag in one quadlet address
       (0x'ffff'f000'0b14).
     * It's selectable to use signal on optical interface, however the device
       has no register specific to it. The state has effect just to whether
       to exclude differed data chunks.
     * The internal multiplexer is not configured by software.
    
    Just after powering on, the device has a quirk to fail handling
    transaction. I recommend users to connect the device enough after powering
    on.
    
    $ python3 crpp < /sys/bus/firewire/devices/fw1/config_rom
                   ROM header and bus information block
                   -----------------------------------------------------------------
    400  04102814  bus_info_length 4, crc_length 16, crc 10260
    404  31333934  bus_name "1394"
    408  20001000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 1 (4)
    40c  0001f200  company_id 0001f2     |
    410  0000d645  device_id 000000d645  | EUI-64 0001f2000000d645
    
                   root directory
                   -----------------------------------------------------------------
    414  0004c65c  directory_length 4, crc 50780
    418  030001f2  vendor
    41c  0c0083c0  node capabilities per IEEE 1394
    420  8d000006  --> eui-64 leaf at 438
    424  d1000001  --> unit directory at 428
    
                   unit directory at 428
                   -----------------------------------------------------------------
    428  0003ab34  directory_length 3, crc 43828
    42c  120001f2  specifier id
    430  13000002  version
    434  17102801  model
    
                   eui-64 leaf at 438
                   -----------------------------------------------------------------
    438  0002057d  leaf_length 2, crc 1405
    43c  0001f200  company_id 0001f2     |
    440  0000d645  device_id 000000d645  | EUI-64 0001f2000000d645
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20210616082847.124688-3-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    b431f16f
Kconfig 5.98 KB