| 
 | 
	
     
     
    
    Posted at  10/23/2015 10:52:09
        
  
     
 
     
  
   
  Only Author 
    
 
  	             
 
4#
 
        
It seems like the Rockchip BSP has many errors. Here is what I am seeing in the DT and the I2S driver  
 
Device Tree (NOTE: The pinctrl has been modified because they wouldn't compile when uncommented. This was just another bug.) 
 
 473         i2s0: i2s0@10220000 { 
 474                 compatible = "rockchip-i2s"; 
 475                 reg = <0x10220000 0x1000>; 
 476                 i2s-id = <0>; 
 477                 clocks = <&clk_i2s_2ch>, <&clk_i2s_2ch_out>, <&clk_gates7 2>; 
 478                 clock-names = "i2s_clk", "i2s_mclk", "i2s_hclk"; 
 479                 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 
 480                 dmas = <&pdma 0>, <&pdma 1>; 
 481                 //#dma-cells = <2>; 
 482                 dma-names = "tx", "rx"; 
 483                 pinctrl-names = "default"; 
 484                 pinctrl-0 = <&i2s0_mclk_mux0 &i2s0_sclk_mux0 &i2s0_lrckrx_mux0 &i2s0_lrcktx_mux0 &i2s0_sdi_mux0 &i2s0_sdo_mux0>; 
 485                 //pinctrl-0 = <&i2s0_sclk_mux0 &i2s0_lrckrx_mux0 &i2s0_lrcktx_mux0 &i2s0_sdi_mux0 &i2s0_sdo_mux0>; 
 486                 status = "okay"; 
 487         };               
 488                          
 489         i2s1: i2s1@10200000 { 
 490                 compatible = "rockchip-i2s"; 
 491                 reg = <0x10200000 0x1000>; 
 492                 i2s-id = <1>; 
 493                 clocks = <&clk_i2s_8ch>, <&clk_gates7 4>; 
 494                 clock-names = "i2s_clk", "i2s_hclk"; 
 495                 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 
 496                 dmas = <&pdma 14>, <&pdma 15>; 
 497                 //#dma-cells = <2>; 
 498                 dma-names = "tx", "rx"; 
 499         }; 
 
From the I2S Driver 
 
452 struct snd_soc_dai_driver rockchip_i2s_dai[] = { 
453         { 
454                 .name = "rockchip-i2s.0", 
455                 .id = 0, 
456                 .playback = { 
457                         .channels_min = 2, 
458                         .channels_max = 8, 
459                         .rates = ROCKCHIP_I2S_STEREO_RATES, 
460                         .formats = ROCKCHIP_I2S_FORMATS, 
461                 }, 
462                 .capture = { 
463                         .channels_min = 2, 
464                         .channels_max = 2, 
465                         .rates = ROCKCHIP_I2S_STEREO_RATES, 
466                         .formats = ROCKCHIP_I2S_FORMATS, 
467                 }, 
468                 .ops = &rockchip_i2s_dai_ops, 
469                 .symmetric_rates = 1, 
470         }, 
471         { 
472                 .name = "rockchip-i2s.1", 
473                 .id = 1, 
474                 .playback = { 
475                         .channels_min = 2, 
476                         .channels_max = 2, 
477                         .rates = ROCKCHIP_I2S_STEREO_RATES, 
478                         .formats = ROCKCHIP_I2S_FORMATS, 
479                 }, 
480                 .capture = { 
481                         .channels_min = 2, 
482                         .channels_max = 2, 
483                         .rates = ROCKCHIP_I2S_STEREO_RATES, 
484                         .formats = ROCKCHIP_I2S_FORMATS, 
485                 },  
486                 .ops = &rockchip_i2s_dai_ops, 
487                 .symmetric_rates = 1, 
488         }, 
489 }; 
 
The number of channels on each I2S interface are swapped! Does anyone know what's what with this? |   
 
 
 
 |