Interfacing multiple codec into RZG2H :Da7218 is working but TLV320ADC5140 is not working having codec_probe issues:

Hi Renesas Team,

We are interfacing multiple codec in custome made rzg2h board , managed to interface da7218 and is working, since custome wants to have 6 mics on this board we tried to interface TLV320adc5140 with the below dtsi entries, I2c probe is happenning  but not entering into codec_probe funtion, Below is the  dtsi entries,Can any body guide us what are we missing here and how do we go about interfacing multiple code

in the sdk:

tlv320adc5140_snd: sound {
            compatible = "simple-audio-card";

           simple-audio-card,widgets = "Microphone", "Mic";

           simple-audio-card,audio-routing =
           "MIC1P", "Mic",
           "MIC1M", "Mic",
           "MIC2P", "Mic",
           "MIC2M", "Mic",
           "MIC3P", "Mic",
           "MIC3M", "Mic",
           "MIC4P", "Mic",
         "MIC4M", "Mic";

          simple-audio-card,dai-link@0 {
                    simple-audio-card,format = "i2s";
                    bitclock-master = <&cpu_dai>;
                    frame-master = <&cpu_dai>;
                    mclk-fs = <256>;
                                 cpu_dai: cpu {
                                 sound-dai = <&sound_pins1>;
                                 dai-tdm-slot-num = <8>;
                                 dai-tdm-slot-width = <32>;
                                 dai-tdm-slot-tx-mask = <1 1 1 1 1 1 1 1>;
                                 dai-tdm-slot-rx-mask = <1 1 1 1 1 1 1 1>;
                                 };

                                 codec_dai: codec {
                                   sound-dai = <&tlv320adc5140>;
                                    clocks = <&audio_mclock>;
                                    dai-tdm-slot-num = <8>;
                                   dai-tdm-slot-width = <32>;
                                  dai-tdm-slot-tx-mask = <1 1 1 1 0 0 0 0>; /* Use first four channels in TDM bus */
                                  dai-tdm-slot-rx-mask = <1 1 1 1 0 0 0 0>;
                             };
                     };
};

&i2c0 {
pinctrl-0 = <&i2c0_pins>;
pinctrl-names = "default";
clock-frequency = <100000>;
status = "okay";

tlv320adc5140: tlv320adc5140@4c {
                #sound-dai-cells = <0>;
                compatible = "ti,tlv320adc5140";
                reg = <0x4c>;
                ti,mic-bias-source = <0>; /* 0 - Mic bias is set to VREF */
               ti,pdm-edge-select = <1 1 1 1>;

               ti,gpio-config = <10 0>;
              ti,gpi-config = <4 5 6 7>;
              ti,gpo-config-1 = <4 1>;
              ti,gpo-config-2 = <4 1>;
              ti,gpo-config-3 = <4 1>;
              ti,gpo-config-4 = <4 1>;
              ti,slot-mapping = <0 1 2 3>;
             ti,asi-tx-driver = <0>;

             reset-gpios = <&gpio6 11 GPIO_ACTIVE_HIGH>;
     };
    port@0 {
             tlv320adc5140_endpoint: endpoint {
                          remote-endpoint = <&rsnd_endpoint3>;
                   };
      };

};

sound_pins1: sound {
               groups = "ssi78_ctrl", "ssi7_data";/* G6_17, G6_18, G6_19 */
               function = "ssi";
  };

&rcar_sound {
        pinctrl-0 = <&sound_clk_pins &sound_pins1>;
        pinctrl-names = "default";
        status = "okay";
        /* Single DAI */
        #sound-dai-cells = <0>;
        /* audio_clkout */
        #clock-cells = <0>;
        clock-frequency = <5644800>; /* 44.1kHz groups [(C) clock] */
        ports {
                rsnd_port3: port@1 {
                        rsnd_endpoint3: endpoint {
                                remote-endpoint = <&tlv320adc5140_endpoint>;
                               dai-format = "i2s";
                                bitclock-master = <&rsnd_endpoint3>;
                                frame-master = <&rsnd_endpoint3>;
                                /* [CAPTURE] */                         
                                capture = <&ssi7>;
                        };
                };

        };
};

The above format is working in Da7218:( pin used in this case is):

sound_pins: sound {
                groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a";
                function = "ssi";
        };

I am trying to get tlv320adc5140  first then  will interface multiple code:

Can any body in the forum please help us we are struct at the point where code_probe itself is called in this case:

I have enable tlv320adcx140.c driver in kernel menuconfig but still it is not callled:

Below is the debug info current we are getting:

==========================================================

[ 2.395502] optee: api uid mismatch
[ 2.399001] optee: probe of firmware:optee failed with error -22
[ 2.404017] renesas_sdhi_internal_dmac ee140000.mmc: mmc2 base at 0x00000000ee140000, max clock rate 200 MHz
[ 2.405766] SMET inside ...1
[ 2.406123] renesas_sdhi_internal_dmac ee160000.mmc: mmc0 base at 0x00000000ee160000, max clock rate 200 MHz
[ 2.427568] SMET inside adcx140_i2c_probe 1093/n
[ 2.427571] SMET inside ...2
[ 2.435151] SMET inside adcx140_i2c_probe 1101/n
[ 2.435201] SMET inside ...3
[ 2.442783] SMET inside adcx140_i2c_probe 1110/n
[ 2.442785] SMET inside ...4
[ 2.450364] SMET inside adcx140_i2c_probe 1124/n
[ 2.450409] SMET inside ...5
[ 2.454888] mmc2: new high speed SDIO card at address 0001
[ 2.455115] SMET inside adcx140_i2c_probe 1136/n
[ 2.463838] OF: /sound/simple-audio-card,dai-link@0/cpu: could not get #sound-dai-cells for /soc/pinctrl@e6060000/sound
[ 2.479336] asoc-simple-card sound: parse error -22
[ 2.484221] asoc-simple-card: probe of sound failed with error -22
[ 2.492495] rcar_sound ec500000.sound: probed
[ 2.498143] NET: Registered protocol family 10

Thanks and regards,

Nagaraja

Parents
  • Hello,

    That is a complicated setup. Not easy.

    The first thing that happens in boot, is the prove inside of the I2C interface.  compatible = "ti,tlv320adc5140";

    Are you saying you put a printk inside that and confirmed it is getting call?

    I am assuming that is this line:

    [ 2.455115] SMET inside adcx140_i2c_probe 1136/n

    But, then this error line is shown. Have you looked into what that means yet? That's where I would look next.

    It's saying that it can't find an Device Tree entry. So, you might to look for other working examples for that specific code.

    [ 2.463838] OF: /sound/simple-audio-card,dai-link@0/cpu: could not get #sound-dai-cells for /soc/pinctrl@e6060000/sound

    After that, you get a series of error -22. Which is the standard #define for EINVAL. Those should be easy to find in the asoc-simple-card driver.

    [ 2.479336] asoc-simple-card sound: parse error -22
    [ 2.484221] asoc-simple-card: probe of sound failed with error -22

    Chris

  • Hi Chris,

    Thanks for the reply,

    Below is the driver i2c probe code sample: It is execting this function I can see the printk statement but stops after that:

    static int adcx140_i2c_probe(struct i2c_client *i2c,
                                 const struct i2c_device_id *id)
    {
            struct adcx140_priv *adcx140;
            int ret;

            printk("SMET inside ...1\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            adcx140 = devm_kzalloc(&i2c->dev, sizeof(*adcx140), GFP_KERNEL);
            if (!adcx140)
                    return -ENOMEM;

            adcx140->dev = &i2c->dev;

            printk("SMET inside ...2\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            adcx140->gpio_reset = devm_gpiod_get_optional(adcx140->dev,
                                                          "reset", GPIOD_OUT_LOW);
            if (IS_ERR(adcx140->gpio_reset))
                    dev_info(&i2c->dev, "Reset GPIO not defined\n");

            adcx140->supply_areg = devm_regulator_get_optional(adcx140->dev,
                                                               "areg");
            printk("SMET inside ...3\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            if (IS_ERR(adcx140->supply_areg)) {
                    if (PTR_ERR(adcx140->supply_areg) == -EPROBE_DEFER)
                            return -EPROBE_DEFER;

                    adcx140->supply_areg = NULL;
            } else {
                    ret = regulator_enable(adcx140->supply_areg);
                    if (ret) {
                            dev_err(adcx140->dev, "Failed to enable areg\n");
                            return ret;
                    }
            }
            printk("SMET inside ...4\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);

            adcx140->regmap = devm_regmap_init_i2c(i2c, &adcx140_i2c_regmap);
            if (IS_ERR(adcx140->regmap)) {
                    ret = PTR_ERR(adcx140->regmap);
                    dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
                            ret);
                    return ret;
            }

            i2c_set_clientdata(i2c, adcx140);
            printk("SMET inside ...5\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);

            return devm_snd_soc_register_component(&i2c->dev,
                                                   &soc_codec_driver_adcx140,  
                                                   adcx140_dai_driver, 1);
    }

    static const struct snd_soc_component_driver soc_codec_driver_adcx140 = {
            .probe                  = adcx140_codec_probe,
            .set_bias_level         = adcx140_set_bias_level,
            .controls               = adcx140_snd_controls,
            .num_controls           = ARRAY_SIZE(adcx140_snd_controls),
            .dapm_widgets           = adcx140_dapm_widgets,
            .num_dapm_widgets       = ARRAY_SIZE(adcx140_dapm_widgets),
            .dapm_routes            = adcx140_audio_map,
            .num_dapm_routes        = ARRAY_SIZE(adcx140_audio_map),
            .suspend_bias_off       = 1,
            .idle_bias_on           = 0,
            .use_pmdown_time        = 1,
            .endianness             = 1,
            .non_legacy_dai_naming  = 1,
    };

    The soc_code_driver_adcx140 funtction call is not executed and is not entering into that function,

    printk is not showing in the funtion:

    static int adcx140_codec_probe(struct snd_soc_component *component)
    {
            struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component);
            int sleep_cfg_val = ADCX140_WAKE_DEV;
            u32 bias_source;
            u32 vref_source;
            u8 bias_cfg;
            int pdm_count;
            u32 pdm_edges[ADCX140_NUM_PDM_EDGES];
            u32 pdm_edge_val = 0;
            int gpi_count;
            u32 gpi_inputs[ADCX140_NUM_GPI_PINS];
            u32 gpi_input_val = 0;
            int i;
            int ret;
            bool tx_high_z;


            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source",
                                          &bias_source);
            if (ret || bias_source > ADCX140_MIC_BIAS_VAL_AVDD) {
                    bias_source = ADCX140_MIC_BIAS_VAL_VREF;
                    adcx140->micbias_vg = false;
            } else {
                    adcx140->micbias_vg = true;
            }

    NOTE: The above device tree configuration some one has got it working in RZG2L as you see in renesas forum:

    Now I am trying to get only tlv320adc5140 working then I will intergrate both da7218 and tlv320adc5140:

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1259284/tlv320adc3140-linux-integration-with-a-renesas-rz-g2l-mpu.

    Please guide us what am I missing here.

    Thanks and regards,

    Nagaraja

Reply
  • Hi Chris,

    Thanks for the reply,

    Below is the driver i2c probe code sample: It is execting this function I can see the printk statement but stops after that:

    static int adcx140_i2c_probe(struct i2c_client *i2c,
                                 const struct i2c_device_id *id)
    {
            struct adcx140_priv *adcx140;
            int ret;

            printk("SMET inside ...1\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            adcx140 = devm_kzalloc(&i2c->dev, sizeof(*adcx140), GFP_KERNEL);
            if (!adcx140)
                    return -ENOMEM;

            adcx140->dev = &i2c->dev;

            printk("SMET inside ...2\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            adcx140->gpio_reset = devm_gpiod_get_optional(adcx140->dev,
                                                          "reset", GPIOD_OUT_LOW);
            if (IS_ERR(adcx140->gpio_reset))
                    dev_info(&i2c->dev, "Reset GPIO not defined\n");

            adcx140->supply_areg = devm_regulator_get_optional(adcx140->dev,
                                                               "areg");
            printk("SMET inside ...3\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            if (IS_ERR(adcx140->supply_areg)) {
                    if (PTR_ERR(adcx140->supply_areg) == -EPROBE_DEFER)
                            return -EPROBE_DEFER;

                    adcx140->supply_areg = NULL;
            } else {
                    ret = regulator_enable(adcx140->supply_areg);
                    if (ret) {
                            dev_err(adcx140->dev, "Failed to enable areg\n");
                            return ret;
                    }
            }
            printk("SMET inside ...4\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);

            adcx140->regmap = devm_regmap_init_i2c(i2c, &adcx140_i2c_regmap);
            if (IS_ERR(adcx140->regmap)) {
                    ret = PTR_ERR(adcx140->regmap);
                    dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
                            ret);
                    return ret;
            }

            i2c_set_clientdata(i2c, adcx140);
            printk("SMET inside ...5\n");
            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);

            return devm_snd_soc_register_component(&i2c->dev,
                                                   &soc_codec_driver_adcx140,  
                                                   adcx140_dai_driver, 1);
    }

    static const struct snd_soc_component_driver soc_codec_driver_adcx140 = {
            .probe                  = adcx140_codec_probe,
            .set_bias_level         = adcx140_set_bias_level,
            .controls               = adcx140_snd_controls,
            .num_controls           = ARRAY_SIZE(adcx140_snd_controls),
            .dapm_widgets           = adcx140_dapm_widgets,
            .num_dapm_widgets       = ARRAY_SIZE(adcx140_dapm_widgets),
            .dapm_routes            = adcx140_audio_map,
            .num_dapm_routes        = ARRAY_SIZE(adcx140_audio_map),
            .suspend_bias_off       = 1,
            .idle_bias_on           = 0,
            .use_pmdown_time        = 1,
            .endianness             = 1,
            .non_legacy_dai_naming  = 1,
    };

    The soc_code_driver_adcx140 funtction call is not executed and is not entering into that function,

    printk is not showing in the funtion:

    static int adcx140_codec_probe(struct snd_soc_component *component)
    {
            struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component);
            int sleep_cfg_val = ADCX140_WAKE_DEV;
            u32 bias_source;
            u32 vref_source;
            u8 bias_cfg;
            int pdm_count;
            u32 pdm_edges[ADCX140_NUM_PDM_EDGES];
            u32 pdm_edge_val = 0;
            int gpi_count;
            u32 gpi_inputs[ADCX140_NUM_GPI_PINS];
            u32 gpi_input_val = 0;
            int i;
            int ret;
            bool tx_high_z;


            printk(" SMET inside %s %d/n",__FUNCTION__, __LINE__);
            ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source",
                                          &bias_source);
            if (ret || bias_source > ADCX140_MIC_BIAS_VAL_AVDD) {
                    bias_source = ADCX140_MIC_BIAS_VAL_VREF;
                    adcx140->micbias_vg = false;
            } else {
                    adcx140->micbias_vg = true;
            }

    NOTE: The above device tree configuration some one has got it working in RZG2L as you see in renesas forum:

    Now I am trying to get only tlv320adc5140 working then I will intergrate both da7218 and tlv320adc5140:

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1259284/tlv320adc3140-linux-integration-with-a-renesas-rz-g2l-mpu.

    Please guide us what am I missing here.

    Thanks and regards,

    Nagaraja

Children
  • Below is the driver i2c probe code sample: It is execting this function I can see the printk statement but stops after that:

    OK. That is good.

    The soc_code_driver_adcx140 funtction call is not executed and is not entering into that function,

    printk is not showing in the funtion:

    Do you know if devm_snd_soc_register_component( ) returns '0'? (meaning it was successful)

    Here is that funciton.

    https://elixir.bootlin.com/linux/v5.10.209/source/sound/soc/soc-devres.c#L66

    Note, "soc_code_driver_adcx140"  is not a function. It is a pointer to a structure.

    https://elixir.bootlin.com/linux/v5.10.209/source/sound/soc/codecs/tlv320adcx140.c#L1045

    As you pointed out, that adcx140_codec_probe( ) function is entered into that structure.

    elixir.bootlin.com/.../soc-component.h

    The next step is to find the kernel code that is supposed to call that probe function to then understand why it is not calling it. In general, the kernel first loads "drivers", then looks for "devices" that match it. So my guess is that it is not finding any "devices" that match the driver you registered.

    Use grep to search for the snd code that is supposed to call ->probe( )

    Worse case, you can fall back to using a board that the sound does work (like the RZ/G2L EVK) and use that system to find out who is calling it in a normal situtation.

    I like to use WARN_ON(1) for that because it will print out a stack trace dump. https://renesas.info/wiki/RZ-G/debug_tricks#Force_a_Stack_Trace_Dump

    NOTE: The above device tree configuration some one has got it working in RZG2L as you see in renesas forum:

    Now I am trying to get only tlv320adc5140 working then I will intergrate both da7218 and tlv320adc5140:

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1259284/tlv320adc3140-linux-integration-with-a-renesas-rz-g2l-mpu.

    Thank you for sharing the link. Maybe I will copy that device tree some place to show as an example for others.

    In that post, this person is adding them to the kernel as modules:

    > The kernel is compiled with :

    > CONFIG_SND_SIMPLE_CARD=m
    > CONFIG_SND_SOC_TLV320ADCX140=m
    I would not recommend that. Add them to the kernel as static drivers.
    You want everything probed and running on kernel boot up. If they are modules, you have to wait for the rootfs to be mounted and systemd to load them. That will make debugging more difficult. 

  • Hi Chris,
    Thanks for the reply, as per your suggestion we are debugging the driver
    Now are getting alsa interface and getting the sound interface.
     I am trying to   interface TLV320adc5140 as part of audio codec interfacing
    with the below modified dtsi entries.
    tvlv320adc5140-debug.txt
    root@hihope-rzg2h:~# dmesg
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd073]
    [    0.000000] Linux version 5.10.158-cip22-yocto-standard (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 8.3.0, GNU ld (GNU Binutils) 2.31.1) #1 SMP PREEMPT Sat Feb 27 02:21:18 UTC 2021
    [    0.000000] Machine model: HopeRun HiHope RZ/G2H with sub board
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000058000000, size 1136 MiB
    [    0.000000] OF: reserved mem: initialized node linux,cma@58000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000009f000000, size 528 MiB
    [    0.000000] OF: reserved mem: initialized node linux,multimedia@70000000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000048000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x000000057fffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000048000000-0x0000000053ffffff]
    [    0.000000]   node   0: [mem 0x0000000054000000-0x0000000056ffffff]
    [    0.000000]   node   0: [mem 0x0000000057000000-0x00000000bfffffff]
    [    0.000000]   node   0: [mem 0x0000000500000000-0x000000057fffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000048000000-0x000000057fffffff]
    [    0.000000] On node 0 totalpages: 1015808
    [    0.000000]   DMA zone: 7680 pages used for memmap
    [    0.000000]   DMA zone: 0 pages reserved
    [    0.000000]   DMA zone: 491520 pages, LIFO batch:63
    [    0.000000]   Normal zone: 8192 pages used for memmap
    [    0.000000]   Normal zone: 524288 pages, LIFO batch:63
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
    [    0.000000] psci: SMC Calling Convention v1.2
    [    0.000000] percpu: Embedded 23 pages/cpu s55448 r8192 d30568 u94208
    [    0.000000] pcpu-alloc: s55448 r8192 d30568 u94208 alloc=23*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7 
    [    0.000000] Detected PIPT I-cache on CPU0
    [    0.000000] CPU features: detected: Spectre-v2
    [    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
    [    0.000000] CPU features: detected: Spectre-BHB
    [    0.000000] CPU features: detected: ARM erratum 1742098
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999936
    [    0.000000] Kernel command line: rw rootwait root=/dev/mmcblk1p2 wdt_overflow=0
    [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: mapped [mem 0x0000000050000000-0x0000000054000000] (64MB)
    [    0.000000] Memory: 2143772K/4063232K available (12224K kernel code, 1062K rwdata, 3736K rodata, 2176K init, 400K bss, 215524K reserved, 1703936K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000]  Trampoline variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] arch_timer: cp15 timer(s) running at 8.33MHz (virt).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1ec02923e, max_idle_ns: 440795202125 ns
    [    0.000004] sched_clock: 56 bits at 8MHz, resolution 120ns, wraps every 2199023255496ns
    [    0.000131] Console: colour dummy device 80x25
    [    0.000307] printk: console [tty0] enabled
    [    0.000333] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.66 BogoMIPS (lpj=33333)
    [    0.000348] pid_max: default: 32768 minimum: 301
    [    0.000433] LSM: Security Framework initializing
    [    0.000501] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.000535] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.001974] rcu: Hierarchical SRCU implementation.
    [    0.002766] Detected Renesas RZ/G2 r8a774e1 ES3.0
    [    0.003399] EFI services will not be available.
    [    0.003753] smp: Bringing up secondary CPUs ...
    [    0.004216] Detected PIPT I-cache on CPU1
    [    0.004266] CPU1: Booted secondary processor 0x0000000001 [0x411fd073]
    [    0.004748] Detected PIPT I-cache on CPU2
    [    0.004774] CPU2: Booted secondary processor 0x0000000002 [0x411fd073]
    [    0.005175] Detected PIPT I-cache on CPU3
    [    0.005197] CPU3: Booted secondary processor 0x0000000003 [0x411fd073]
    [    0.005610] CPU features: detected: ARM erratum 845719
    [    0.005621] Detected VIPT I-cache on CPU4
    [    0.005665] CPU4: Booted secondary processor 0x0000000100 [0x410fd034]
    [    0.006122] Detected VIPT I-cache on CPU5
    [    0.006149] CPU5: Booted secondary processor 0x0000000101 [0x410fd034]
    [    0.006570] Detected VIPT I-cache on CPU6
    [    0.006596] CPU6: Booted secondary processor 0x0000000102 [0x410fd034]
    [    0.007026] Detected VIPT I-cache on CPU7
    [    0.007052] CPU7: Booted secondary processor 0x0000000103 [0x410fd034]
    [    0.007132] smp: Brought up 1 node, 8 CPUs
    [    0.007197] SMP: Total of 8 processors activated.
    [    0.007205] CPU features: detected: 32-bit EL0 Support
    [    0.007213] CPU features: detected: CRC32 instructions
    [    0.007220] CPU features: detected: 32-bit EL1 Support
    [    0.020154] CPU: All CPU(s) started at EL1
    [    0.020204] alternatives: patching kernel code
    [    0.021100] devtmpfs: initialized
    [    0.026084] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.026115] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
    [    0.047336] pinctrl core: initialized pinctrl subsystem
    [    0.047859] DMI not present or invalid.
    [    0.048236] NET: Registered protocol family 16
    [    0.049134] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.049236] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.049383] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.049444] audit: initializing netlink subsys (disabled)
    [    0.049636] audit: type=2000 audit(0.048:1): state=initialized audit_enabled=0 res=1
    [    0.049910] thermal_sys: Registered thermal governor 'step_wise'
    [    0.050656] cpuidle: using governor menu
    [    0.050756] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.050877] ASID allocator initialised with 65536 entries
    [    0.075691] sh-pfc e6060000.pinctrl: r8a774e1_pfc support registered
    [    0.080768] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.080781] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.080790] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.080797] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.082023] cryptd: max_cpu_qlen set to 1000
    [    0.086456] iommu: Default domain type: Translated 
    [    0.087172] ipmmu-vmsa e67b0000.iommu: IPMMU context 0 is reserved
    [    0.088361] vgaarb: loaded
    [    0.088546] SCSI subsystem initialized
    [    0.088673] libata version 3.00 loaded.
    [    0.088774] usbcore: registered new interface driver usbfs
    [    0.088803] usbcore: registered new interface driver hub
    [    0.088842] usbcore: registered new device driver usb
    [    0.089519] mc: Linux media interface: v0.10
    [    0.089537] videodev: Linux video capture interface: v2.00
    [    0.089573] pps_core: LinuxPPS API ver. 1 registered
    [    0.089581] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.089598] PTP clock support registered
    [    0.089927] sh_cmt e60f0000.timer: ch0: used for clock events
    [    0.089943] sh_cmt e60f0000.timer: ch1: used as clock source
    [    0.089954] clocksource: e60f0000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 469712569783500 ns
    [    0.090124] sh_cmt e6130000.timer: ch0: used for clock events
    [    0.090135] sh_cmt e6130000.timer: ch1: used as clock source
    [    0.090143] clocksource: e6130000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 469712569783500 ns
    [    0.090294] sh_cmt e6140000.timer: ch0: used for clock events
    [    0.090303] sh_cmt e6140000.timer: ch1: used as clock source
    [    0.090311] clocksource: e6140000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 469712569783500 ns
    [    0.090460] sh_cmt e6148000.timer: ch0: used for clock events
    [    0.090471] sh_cmt e6148000.timer: ch1: used as clock source
    [    0.090479] clocksource: e6148000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 469712569783500 ns
    [    0.090855] sh_tmu e61e0000.timer: ch0: used for clock events
    [    0.090885] sh_tmu e61e0000.timer: ch1: used as clock source
    [    0.090894] clocksource: e61e0000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 917405161258 ns
    [    0.091027] sh_tmu e6fc0000.timer: ch0: used for clock events
    [    0.091056] sh_tmu e6fc0000.timer: ch1: used as clock source
    [    0.091065] clocksource: e6fc0000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 57337815666 ns
    [    0.091195] sh_tmu e6fd0000.timer: ch0: used for clock events
    [    0.091225] sh_tmu e6fd0000.timer: ch1: used as clock source
    [    0.091234] clocksource: e6fd0000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 57337815666 ns
    [    0.091362] sh_tmu e6fe0000.timer: ch0: used for clock events
    [    0.091391] sh_tmu e6fe0000.timer: ch1: used as clock source
    [    0.091400] clocksource: e6fe0000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 57337815666 ns
    [    0.091527] sh_tmu ffc00000.timer: ch0: used for clock events
    [    0.091555] sh_tmu ffc00000.timer: ch1: used as clock source
    [    0.091564] clocksource: ffc00000.timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 57337815666 ns
    [    0.091904] Advanced Linux Sound Architecture Driver Initialized.
    [    0.092164] Bluetooth: Core ver 2.22
    [    0.092191] NET: Registered protocol family 31
    [    0.092197] Bluetooth: HCI device and connection manager initialized
    [    0.092212] Bluetooth: HCI socket layer initialized
    [    0.092220] Bluetooth: L2CAP socket layer initialized
    [    0.092233] Bluetooth: SCO socket layer initialized
    [    0.092649] clocksource: Switched to clocksource arch_sys_counter
    [    0.092788] VFS: Disk quotas dquot_6.6.0
    [    0.092830] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.096498] NET: Registered protocol family 2
    [    0.096795] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.098088] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    0.098138] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.098286] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
    [    0.098593] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.098712] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.098774] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.098929] NET: Registered protocol family 1
    [    0.099283] RPC: Registered named UNIX socket transport module.
    [    0.099293] RPC: Registered udp transport module.
    [    0.099300] RPC: Registered tcp transport module.
    [    0.099306] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.099687] PCI: CLS 0 bytes, default 64
    [    0.100521] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.100819] hw perfevents: enabled with armv8_cortex_a57 PMU driver, 7 counters available
    [    0.101348] kvm [1]: HYP mode not available
    [    0.104130] Initialise system trusted keyrings
    [    0.104248] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    0.107636] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.108023] NFS: Registering the id_resolver key type
    [    0.108052] Key type id_resolver registered
    [    0.108059] Key type id_legacy registered
    [    0.108114] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.108123] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.108144] jffs2: version 2.2. (NAND) \xc2\xa9 2001-2006 Red Hat, Inc.
    [    0.133942] Key type asymmetric registered
    [    0.133956] Asymmetric key parser 'x509' registered
    [    0.133985] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.133996] io scheduler mq-deadline registered
    [    0.134003] io scheduler kyber registered
    [    0.135980] sh-pfc e6060000.pinctrl: DT node must contain at least a function or config
    [    0.137831] gpio_rcar e6050000.gpio: driving 16 GPIOs
    [    0.138163] gpio_rcar e6051000.gpio: driving 29 GPIOs
    [    0.138473] gpio_rcar e6052000.gpio: driving 15 GPIOs
    [    0.138799] gpio_rcar e6053000.gpio: driving 16 GPIOs
    [    0.139103] gpio_rcar e6054000.gpio: driving 18 GPIOs
    [    0.139399] gpio_rcar e6055000.gpio: driving 26 GPIOs
    [    0.139614] gpio-370 (usb1-reset): hogged as output/low
    [    0.139728] gpio_rcar e6055400.gpio: driving 32 GPIOs
    [    0.140028] gpio_rcar e6055800.gpio: driving 4 GPIOs
    [    0.141721] rcar-pcie fe000000.pcie: host bridge /soc/pcie@fe000000 ranges:
    [    0.141752] rcar-pcie fe000000.pcie:       IO 0x00fe100000..0x00fe1fffff -> 0x0000000000
    [    0.141775] rcar-pcie fe000000.pcie:      MEM 0x00fe200000..0x00fe3fffff -> 0x00fe200000
    [    0.141794] rcar-pcie fe000000.pcie:      MEM 0x0030000000..0x0037ffffff -> 0x0030000000
    [    0.141809] rcar-pcie fe000000.pcie:      MEM 0x0038000000..0x003fffffff -> 0x0038000000
    [    0.141827] rcar-pcie fe000000.pcie:   IB MEM 0x0040000000..0x00bfffffff -> 0x0040000000
    [    0.208258] rcar-pcie fe000000.pcie: PCIe link down
    [    0.208450] rcar-pcie ee800000.pcie: host bridge /soc/pcie@ee800000 ranges:
    [    0.208475] rcar-pcie ee800000.pcie:       IO 0x00ee900000..0x00ee9fffff -> 0x0000000000
    [    0.208496] rcar-pcie ee800000.pcie:      MEM 0x00eea00000..0x00eebfffff -> 0x00eea00000
    [    0.208516] rcar-pcie ee800000.pcie:      MEM 0x00c0000000..0x00c7ffffff -> 0x00c0000000
    [    0.208530] rcar-pcie ee800000.pcie:      MEM 0x00c8000000..0x00cfffffff -> 0x00c8000000
    [    0.208548] rcar-pcie ee800000.pcie:   IB MEM 0x0040000000..0x00bfffffff -> 0x0040000000
    [    0.368620] rcar-pcie ee800000.pcie: PCIe link down
    [    0.403282] SuperH (H)SCI(F) driver initialized
    [    0.403838] e6540000.serial: ttySC1 at MMIO 0xe6540000 (irq = 97, base_baud = 0) is a hscif
    [    0.404682] e6550000.serial: ttySC2 at MMIO 0xe6550000 (irq = 98, base_baud = 0) is a hscif
    [    0.405305] e66a0000.serial: ttySC4 at MMIO 0xe66a0000 (irq = 99, base_baud = 0) is a hscif
    [    0.405844] e66b0000.serial: ttySC5 at MMIO 0xe66b0000 (irq = 100, base_baud = 0) is a hscif
    [    0.406400] sh-pfc e6060000.pinctrl: pin GP_5_1 already requested by e66b0000.serial; cannot claim for e6e60000.serial
    [    0.406415] sh-pfc e6060000.pinctrl: pin-161 (e6e60000.serial) status -22
    [    0.406424] sh-pfc e6060000.pinctrl: could not request pin 161 (GP_5_1) from group scif0_data  on device sh-pfc
    [    0.406434] sh-sci e6e60000.serial: Error applying setting, reverse things back
    [    0.406450] sh-sci: probe of e6e60000.serial failed with error -22
    [    0.406641] e6e88000.serial: ttySC0 at MMIO 0xe6e88000 (irq = 186, base_baud = 0) is a scif
    [    1.738990] printk: console [ttySC0] enabled
    [    1.743904] e6c40000.serial: ttySC6 at MMIO 0xe6c40000 (irq = 187, base_baud = 0) is a scif
    [    1.756001] rcar-dw-hdmi fead0000.hdmi: Detected HDMI TX controller v2.01a with HDCP (DWC HDMI 2.0 TX PHY)
    [    1.765903] rcar-dw-hdmi fead0000.hdmi: registered DesignWare HDMI I2C bus driver
    [    1.781161] loop: module loaded
    [    1.785488] scsi host0: sata_rcar
    [    1.788958] ata1: SATA max UDMA/133 irq 229
    [    1.794648] tun: Universal TUN/TAP device driver, 1.6
    [    1.799847] CAN device driver interface
    [    1.804272] rcar_can e6c38000.can: device registered (IRQ182)
    [    1.810705] rcar_canfd e66c0000.can: can_clk rate is 19999999
    [    1.816661] rcar_canfd e66c0000.can: device registered (channel 0)
    [    1.822868] rcar_canfd e66c0000.can: global operational state (clk 0, fdmode 1)
    [    1.830429] e1000e: Intel(R) PRO/1000 Network Driver
    [    1.835403] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    1.842012] VFIO - User Level meta-driver version: 0.3
    [    1.847304] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    1.853840] ehci-pci: EHCI PCI platform driver
    [    1.858318] ehci-platform: EHCI generic platform driver
    [    1.863931] ehci-platform ee0a0100.usb: EHCI Host Controller
    [    1.869616] ehci-platform ee0a0100.usb: new USB bus registered, assigned bus number 1
    [    1.877522] ehci-platform ee0a0100.usb: irq 225, io mem 0xee0a0100
    [    1.896627] ehci-platform ee0a0100.usb: USB 2.0 started, EHCI 1.10
    [    1.903201] hub 1-0:1.0: USB hub found
    [    1.906984] hub 1-0:1.0: 1 port detected
    [    1.911348] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [    1.917556] ohci-pci: OHCI PCI platform driver
    [    1.922035] ohci-platform: OHCI generic platform driver
    [    1.927645] ohci-platform ee0a0000.usb: Generic Platform OHCI controller
    [    1.934386] ohci-platform ee0a0000.usb: new USB bus registered, assigned bus number 2
    [    1.942277] ohci-platform ee0a0000.usb: irq 225, io mem 0xee0a0000
    [    2.035020] hub 2-0:1.0: USB hub found
    [    2.038797] hub 2-0:1.0: 1 port detected
    [    2.043600] xhci-hcd ee000000.usb: xHCI Host Controller
    [    2.048842] xhci-hcd ee000000.usb: new USB bus registered, assigned bus number 3
    [    2.072098] xhci-hcd ee000000.usb: hcc params 0x014051ce hci version 0x100 quirks 0x0000000000830410
    [    2.081267] xhci-hcd ee000000.usb: irq 222, io mem 0xee000000
    [    2.087429] hub 3-0:1.0: USB hub found
    [    2.091205] hub 3-0:1.0: 1 port detected
    [    2.095278] xhci-hcd ee000000.usb: xHCI Host Controller
    [    2.100513] xhci-hcd ee000000.usb: new USB bus registered, assigned bus number 4
    [    2.107916] xhci-hcd ee000000.usb: Host supports USB 3.0 SuperSpeed
    [    2.114229] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
    [    2.122577] hub 4-0:1.0: USB hub found
    [    2.126350] hub 4-0:1.0: 1 port detected
    [    2.130797] usbcore: registered new interface driver usb-storage
    [    2.136857] usbcore: registered new interface driver cp210x
    [    2.142447] usbserial: USB Serial support registered for cp210x
    [    2.148926] renesas_usbhs e6590000.usb: host probed
    [    2.153817] renesas_usbhs e6590000.usb: no transceiver found
    [    2.159540] renesas_usbhs e6590000.usb: gadget probed
    [    2.164772] renesas_usbhs e6590000.usb: probed
    [    2.170101] renesas_usb3 ee020000.usb: probed with phy
    [    2.175715] usbcore: registered new interface driver usbtouchscreen
    [    2.182132] i2c /dev entries driver
    [    2.187693] i2c i2c-0: of_i2c: modalias failure on /soc/i2c@e6500000/port@0
    [    2.194675] i2c i2c-0: Failed to create I2C device for /soc/i2c@e6500000/port@0
    [    2.201994] i2c-rcar e6500000.i2c: probed
    [    2.208001] i2c-rcar e6510000.i2c: error -11 : e
    [    2.208636] ata1: link resume succeeded after 1 retries
    [    2.212680] i2c-rcar e6510000.i2c: error -11 : e
    [    2.222536] i2c-rcar e6510000.i2c: error -11 : e
    [    2.227208] i2c-rcar e6510000.i2c: error -11 : e
    [    2.231843] cs2000-cp: probe of 2-004f failed with error -11
    [    2.237545] i2c-rcar e6510000.i2c: probed
    [    2.243306] i2c-rcar e66d8000.i2c: probed
    [    2.251633] rcar_gen3_thermal e6198000.thermal: is using pseudo fixed FUSE values
    [    2.262948] rcar_gen3_thermal e6198000.thermal: TSC0: Loaded 1 trip points
    [    2.273973] rcar_gen3_thermal e6198000.thermal: TSC1: Loaded 1 trip points
    [    2.284997] rcar_gen3_thermal e6198000.thermal: TSC2: Loaded 3 trip points
    [    2.293301] Bluetooth: HCI UART driver ver 2.3
    [    2.297754] Bluetooth: HCI UART protocol H4 registered
    [    2.302895] Bluetooth: HCI UART protocol BCSP registered
    [    2.308221] Bluetooth: HCI UART protocol LL registered
    [    2.313361] Bluetooth: HCI UART protocol ATH3K registered
    [    2.318771] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [    2.324133] ata1: SATA link down (SStatus 0 SControl 300)
    [    2.325415] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 1499999 KHz, changing to: 1500000 KHz
    [    2.341942] cpufreq: cpufreq_online: CPU4: Running at unlisted initial frequency: 1199999 KHz, changing to: 1200000 KHz
    [    2.354852] renesas_sdhi_internal_dmac ee100000.mmc: Got CD GPIO
    [    2.356636] sh_tmu e61e0000.timer: ch0: used for oneshot clock events
    [    2.360965] ledtrig-cpu: registered to indicate activity on CPUs
    [    2.373408] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    2.380700] usbcore: registered new interface driver usbhid
    [    2.386277] usbhid: USB HID core driver
    [    2.390521] optee: probing for conduit method.
    [    2.394986] optee: api uid mismatch
    [    2.398483] optee: probe of firmware:optee failed with error -22
    [    2.405083]  SMET inside devm_snd_soc_register_component 85 0
    [    2.410855]  SMET inside devm_snd_soc_register_component 85 0
    [    2.411017] renesas_sdhi_internal_dmac ee160000.mmc: mmc0 base at 0x00000000ee160000, max clock rate 200 MHz
    [    2.411047] renesas_sdhi_internal_dmac ee140000.mmc: mmc2 base at 0x00000000ee140000, max clock rate 200 MHz
    [    2.416870]  SMET inside devm_snd_soc_register_component 85 0
    [    2.442197] SMET inside ...1
    [    2.445112]  SMET inside adcx140_i2c_probe 1101
    [    2.449651] SMET inside ...2
    [    2.452541]  SMET inside adcx140_i2c_probe 1109
    [    2.457174] SMET inside ...3
    [    2.460076]  SMET inside adcx140_i2c_probe 1118
    [    2.464619] SMET inside ...4
    [    2.467509]  SMET inside adcx140_i2c_probe 1132
    [    2.472102] SMET inside ...5
    [    2.475043]  SMET inside adcx140_i2c_probe 1144
    [    2.479107] mmc2: new high speed SDIO card at address 0001
    [    2.479605]  SMET inside devm_snd_soc_register_component 85 0
    [    2.493358]  SMET inside devm_snd_soc_register_component 85 0
    [    2.499129] rcar_sound ec500000.sound: probed
    [    2.504881] NET: Registered protocol family 10
    [    2.510213] Segment Routing with IPv6
    [    2.513953] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    2.520179] NET: Registered protocol family 17
    [    2.524674] Bridge firewalling registered
    [    2.528686] can: controller area network core
    [    2.533076] NET: Registered protocol family 29
    [    2.537522] can: raw protocol
    [    2.540488] can: broadcast manager protocol
    [    2.544675] can: netlink gateway - max_hops=1
    [    2.549279] Bluetooth: RFCOMM TTY layer initialized
    [    2.554173] Bluetooth: RFCOMM socket layer initialized
    [    2.559327] Bluetooth: RFCOMM ver 1.11
    [    2.563083] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [    2.568396] Bluetooth: BNEP filters: protocol multicast
    [    2.573627] Bluetooth: BNEP socket layer initialized
    [    2.578594] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    [    2.584516] Bluetooth: HIDP socket layer initialized
    [    2.584971] mmc0: new HS400 MMC card at address 0001
    [    2.589532] Key type dns_resolver registered
    [    2.594860] mmcblk0: mmc0:0001 G1M15L 29.6 GiB 
    [    2.599026] registered taskstats version 1
    [    2.603407] mmcblk0boot0: mmc0:0001 G1M15L partition 1 31.5 MiB
    [    2.607372] Loading compiled-in X.509 certificates
    [    2.613370] mmcblk0boot1: mmc0:0001 G1M15L partition 2 31.5 MiB
    [    2.624235] mmcblk0rpmb: mmc0:0001 G1M15L partition 3 4.00 MiB, chardev (243:0)
    [    2.626773] thermal emergency: set temperature to 110 celsius
    [    2.633109]  mmcblk0: p1 p2
    [    2.637530] thermal emergency: shutdown target cpus 1-7
    [    2.645340] thermal emergency: freq scaled target cpus 0
    [    2.650922] renesas_irqc e61c0000.interrupt-controller: driving 6 irqs
    [    2.661494] [drm] Initialized rcar-du 1.0.0 20130110 for feb00000.display on minor 0
    [    2.669256] [drm] Device feb00000.display probed
    [    2.673919] rcar-du feb00000.display: [drm] Cannot find any crtc or sizes
    [    2.681619] rcar-du feb00000.display: [drm] Cannot find any crtc or sizes
    [    2.688501] ravb e6800000.ethernet: no valid MAC address supplied, using a random one
    [    2.696761] mdio_bus e6800000.ethernet-ffffffff: MDIO device at address 0 is missing.
    [    2.705866] ravb e6800000.ethernet eth0: Base address at 0xe6800000, de:d0:09:1a:67:90, IRQ 179.
    [    2.740833] ehci-platform ee080100.usb: EHCI Host Controller
    [    2.746518] ehci-platform ee080100.usb: new USB bus registered, assigned bus number 5
    [    2.754403] ehci-platform ee080100.usb: irq 224, io mem 0xee080100
    [    2.772797] ehci-platform ee080100.usb: USB 2.0 started, EHCI 1.10
    [    2.779508] hub 5-0:1.0: USB hub found
    [    2.783282] hub 5-0:1.0: 1 port detected
    [    2.787699] ohci-platform ee080000.usb: Generic Platform OHCI controller
    [    2.794422] ohci-platform ee080000.usb: new USB bus registered, assigned bus number 6
    [    2.802301] ohci-platform ee080000.usb: irq 224, io mem 0xee080000
    [    2.895316] hub 6-0:1.0: USB hub found
    [    2.899094] hub 6-0:1.0: 1 port detected
    [    2.904009] renesas_sdhi_internal_dmac ee100000.mmc: Got CD GPIO
    [    2.910671] ------------[ cut here ]------------
    [    2.915307] WARNING: CPU: 2 PID: 119 at sound/soc/codecs/tlv320adcx140.c:918 adcx140_codec_probe+0x34/0x5c0
    [    2.925043] Modules linked in:
    [    2.928101] CPU: 2 PID: 119 Comm: kworker/2:25 Not tainted 5.10.158-cip22-yocto-standard #1
    [    2.936448] Hardware name: HopeRun HiHope RZ/G2H with sub board (DT)
    [    2.942806] Workqueue: events deferred_probe_work_func
    [    2.947943] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--)
    [    2.953946] pc : adcx140_codec_probe+0x34/0x5c0
    [    2.958475] lr : snd_soc_component_probe+0x28/0x78
    [    2.963261] sp : ffff80001193b960
    [    2.966570] x29: ffff80001193b960 x28: 0000000000000000 
    [    2.971880] x27: 0000000000000000 x26: ffff0004c20ac080 
    [    2.977189] x25: 0000000000000000 x24: ffff0004c0967d40 
    [    2.982499] x23: ffff0004c20b1080 x22: ffff0004c1a32080 
    [    2.987809] x21: ffff800010ef2ad8 x20: ffff0004c0967c80 
    [    2.993118] x19: 0000000000000000 x18: 0000000000000001 
    [    2.998427] x17: 0000000000000013 x16: ffff800010c78c48 
    [    3.003737] x15: 0000000000000001 x14: 0000000000000000 
    [    3.009046] x13: 0000000000000000 x12: 0000000000000000 
    [    3.014355] x11: 0000000000000000 x10: 0000000000000000 
    [    3.019663] x9 : 0000000000000000 x8 : 0000000000000000 
    [    3.024973] x7 : 0000000000000000 x6 : ffff0004c20b1280 
    [    3.030282] x5 : ffff0004c20bf818 x4 : 00000000ffffffff 
    [    3.035591] x3 : ffff0004c20b12b8 x2 : ffff800010909ab8 
    [    3.040900] x1 : 0000000000000000 x0 : ffff0004c09c9020 
    [    3.046210] Call trace:
    [    3.048654]  adcx140_codec_probe+0x34/0x5c0
    [    3.052832]  snd_soc_component_probe+0x28/0x78
    [    3.057274]  soc_probe_component+0x1e4/0x390
    [    3.061540]  snd_soc_bind_card+0x43c/0x960
    [    3.065633]  snd_soc_register_card+0xf4/0x110
    [    3.069986]  devm_snd_soc_register_card+0x44/0xa0
    [    3.074685]  asoc_simple_probe+0x1a0/0x340
    [    3.078778]  platform_drv_probe+0x54/0xa8
    [    3.082784]  really_probe+0xec/0x3c8
    [    3.086356]  driver_probe_device+0x58/0xb8
    [    3.090448]  __device_attach_driver+0xb8/0xe0
    [    3.094801]  bus_for_each_drv+0x7c/0xd0
    [    3.098633]  __device_attach+0xec/0x180
    [    3.102465]  device_initial_probe+0x14/0x20
    [    3.106643]  bus_probe_device+0x9c/0xa8
    [    3.110475]  deferred_probe_work_func+0x88/0xc0
    [    3.115006]  process_one_work+0x1e8/0x360
    [    3.119011]  worker_thread+0x210/0x480
    [    3.122757]  kthread+0x154/0x158
    [    3.125983]  ret_from_fork+0x10/0x34
    [    3.129555] ---[ end trace 98d3c5dd981f138f ]---
    [    3.134200]  SMET inside adcx140_codec_probe 919/n
    [    3.134205]  SMET inside adcx140_codec_probe 928/n
    [    3.139004]  SMET inside adcx140_codec_probe 932/n
    [    3.143797]  SMET inside adcx140_codec_probe 940/n
    [    3.172683] renesas_sdhi_internal_dmac ee100000.mmc: mmc1 base at 0x00000000ee100000, max clock rate 200 MHz
    [    3.250599] mmc1: new ultra high speed SDR104 SDXC card at address 59b4
    [    3.257909] mmcblk1: mmc1:59b4 SD64G 59.4 GiB 
    [    3.264888]  mmcblk1: p1 p2
    [    3.349595]  SMET inside adcx140_codec_probe 956/n
    [    3.450372]  SMET inside adcx140_codec_probe 978/n
    [    3.456360]  SMET inside adcx140_codec_probe 1004/n
    [    3.463951]  SMET inside adcx140_codec_probe 1029/n
    [    3.474343] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [    3.489399] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [    3.496969] ALSA device list:
    [    3.499939]   #0: rcar_sound
    [    3.504323] EXT4-fs (mmcblk1p2): mounting ext3 file system using the ext4 subsystem
    [    3.599137] EXT4-fs (mmcblk1p2): recovery complete
    [    3.606827] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    3.615020] VFS: Mounted root (ext3 filesystem) on device 179:26.
    [    3.644077] devtmpfs: mounted
    [    3.648033] Freeing unused kernel memory: 2176K
    [    3.652718] Run /sbin/init as init process
    [    3.656825]   with arguments:
    [    3.656828]     /sbin/init
    [    3.656831]   with environment:
    [    3.656834]     HOME=/
    [    3.656837]     TERM=linux
    [    3.656840]     wdt_overflow=0
    [    4.101022] systemd[1]: System time before build time, advancing clock.
    [    4.184549] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD)
    [    4.206907] systemd[1]: Detected architecture arm64.
    [    4.262065] systemd[1]: Set hostname to <hihope-rzg2h>.
    [    4.445586] systemd[1]: Configuration file /lib/systemd/system/watchdog.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    [    4.547836] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.554631] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
    [    4.567000] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
    [    4.577382] systemd[1]: Created slice system-getty.slice.
    [    4.596741] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.604074] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [    4.624706] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.631876] systemd[1]: Created slice User and Session Slice.
    [    4.652857] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [    4.676783] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    4.700742] systemd[1]: Reached target Host and Network Name Lookups.
    [    4.724700] systemd[1]: Reached target Paths.
    [    4.744688] systemd[1]: Reached target Remote File Systems.
    [    4.764687] systemd[1]: Reached target Slices.
    [    4.784692] systemd[1]: Reached target Swap.
    [    4.805844] systemd[1]: Listening on RPCbind Server Activation Socket.
    [    4.828726] systemd[1]: Reached target RPC Port Mapper.
    [    4.858629] systemd[1]: Listening on Syslog Socket.
    [    4.876896] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [    4.901069] systemd[1]: Listening on Journal Audit Socket.
    [    4.920888] systemd[1]: Listening on Journal Socket (/dev/log).
    [    4.944922] systemd[1]: Listening on Journal Socket.
    [    4.964957] systemd[1]: Listening on Network Service Netlink Socket.
    [    4.988911] systemd[1]: Listening on udev Control Socket.
    [    5.008810] systemd[1]: Listening on udev Kernel Socket.
    [    5.031389] systemd[1]: Mounting Huge Pages File System...
    [    5.055305] systemd[1]: Mounting POSIX Message Queue File System...
    [    5.079109] systemd[1]: Mounting Kernel Debug File System...
    [    5.117860] systemd[1]: Mounting Temporary Directory (/tmp)...
    [    5.161760] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
    [    5.175828] systemd[1]: Starting Start psplash boot splash screen...
    [    5.203341] systemd[1]: Starting RPC Bind...
    [    5.224857] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    5.237885] systemd[1]: Starting Journal Service...
    [    5.267630] systemd[1]: Starting Load Kernel Modules...
    [    5.291501] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    5.305808] mmngr: loading out-of-tree module taints kernel.
    [    5.313094] rgnmm_drv mmngr: assigned reserved memory node linux,multimedia@70000000
    [    5.313204] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
    [    5.337136] systemd[1]: Starting udev Coldplug all Devices...
    [    5.364474] systemd[1]: Started RPC Bind.
    [    5.385142] systemd[1]: Started Journal Service.
    [    5.546423] PVR_K:  332: Read BVNC 4.46.6.62 from HW device registers
    [    5.553075] PVR_K:  332: RGX Device registered with BVNC 4.46.6.62
    [    5.559607] pvrsrvkm fd000000.gsx: Found 4 OPP points.
    [    5.564762] pvrsrvkm fd000000.gsx: opp[1/4]: (200000000 Hz, 820000 uV)
    [    5.571298] pvrsrvkm fd000000.gsx: opp[2/4]: (300000000 Hz, 820000 uV)
    [    5.577839] pvrsrvkm fd000000.gsx: opp[3/4]: (400000000 Hz, 820000 uV)
    [    5.584375] pvrsrvkm fd000000.gsx: opp[4/4]: (600000000 Hz, 820000 uV)
    [    5.588116] random: systemd-journal: uninitialized urandom read (16 bytes read)
    [    5.589337] random: systemd: uninitialized urandom read (16 bytes read)
    [    5.592055] [drm] Initialized pvr 1.13.5878540 20170530 for fd000000.gsx on minor 1
    [    5.598883] random: systemd-journal: uninitialized urandom read (16 bytes read)
    [    5.620390] systemd-journald[331]: Received client request to flush runtime journal.
    [    6.544664] random: crng init done
    [    6.548098] random: 90 urandom warning(s) missed due to ratelimiting
    [    8.001159] Generic PHY e6800000.ethernet-ffffffff:03: attached PHY driver [Generic PHY] (mii_bus:phy_addr=e6800000.ethernet-ffffffff:03, irq=POLL)
    [    8.139118] audit: type=1325 audit(1600598642.035:2): table=filter family=2 entries=4 op=xt_replace pid=573 comm="connmand"
    [    8.686057] audit: type=1006 audit(1600598642.583:3): pid=609 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [    9.794871] PVR_K:  616: RGX Firmware image 'rgx.fw.4.46.6.62' loaded
    [  894.729951] rcar_sound ec500000.sound: ssi[7] status check failed
    
    
    Below is the my dtsi entries:
    =======================

            tlv320adc5140_snd: sound {
            compatible = "simple-audio-card";
            simple-audio-card,name = "rcar_sound";
            #address-cells = <1>;
            #size-cells = <0>;

            simple-audio-card,widgets = "Microphone", "Mic";

            simple-audio-card,audio-routing =
                    "MIC1P", "Mic",
                    "MIC1M", "Mic",
                    "MIC2P", "Mic",
                    "MIC2M", "Mic",
                    "MIC3P", "Mic",
                    "MIC3M", "Mic",
                    "MIC4P", "Mic",
                    "MIC4M", "Mic";

            simple-audio-card,dai-link@0 {
                    reg = <0>;
                    format = "i2s";
                    bitclock-master = <&cpu_dai>;
                    frame-master = <&cpu_dai>;
                    mclk-fs = <256>;
                    cpu_dai: cpu {
                            sound-dai = <&rcar_sound 1>;
                    };
                    codec_dai: codec {
                            sound-dai = <&tlv320adc5140>;
                            clocks = <&audio_mclock>;
                    };
            };
    };

    &i2c0 {
            pinctrl-0 = <&i2c0_pins>;
            pinctrl-names = "default";
            clock-frequency = <100000>;
            status = "okay";
            #address-cells = <1>;
            #size-cells = <0>;
            tlv320adc5140: tlv320adc5140@4c {
                    #sound-dai-cells = <0>;
                    compatible = "ti,tlv320adc5140";
                    reg = <0x4c>;
                    ti,mic-bias-source = <0>; /* 0 - Mic bias is set to VREF */
                    ti,pdm-edge-select = <1 1 1 1>;
                    ti,gpio-config = <10 0>;
                    ti,gpi-config = <4 5 6 7>;
                    ti,gpo-config-1 = <4 1>;
                    ti,gpo-config-2 = <4 1>;
                    ti,gpo-config-3 = <4 1>;
                    ti,gpo-config-4 = <4 1>;
                    ti,slot-mapping = <0 1 2 3>;
                    ti,asi-tx-driver = <0>;

                    reset-gpios = <&gpio6 11 GPIO_ACTIVE_HIGH>;
            };
            port@0 {
                    tlv320adc5140_endpoint: endpoint {
                             remote-endpoint = <&rsnd_endpoint3>;
                    };
           };

    };

    &rcar_sound {
            pinctrl-0 = <&sound_clk_pins &sound_pins1>;
            pinctrl-names = "default";
            status = "okay";
            /* Single DAI */
            #sound-dai-cells = <0>;
            /* audio_clkout */
            #clock-cells = <0>;
                    clock-frequency = <6144000>; /* 48  kHz groups [(C) clock] */
            ports {
                    rsnd_port3: port@1 {
                            rsnd_endpoint3: endpoint {
                                    remote-endpoint = <&tlv320adc5140_endpoint>;
                                    dai-format = "i2s";
                                    bitclock-master = <&rsnd_endpoint3>;
                                    frame-master = <&rsnd_endpoint3>;
                                    /* [CAPTURE] */
                                    /* capture = <&ssi8>; */
                                    capture = <&ssi7>;
                            };
                    };

    My Arecord command shows below:
    =============================

    root@hihope-rzg2h:~# arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 0: rcarsound [rcar_sound], device 0: rsnd-dai.0-tlv320adcx140-codec tlv320adcx140-codec-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    root@hihope-rzg2h:~#

    root@hihope-rzg2h:~# cat /proc/asound/pcm 
    00-00: rsnd-dai.0-tlv320adcx140-codec tlv320adcx140-codec-0 :  : capture 1
    root@hihope-rzg2h:~#

    root@hihope-rzg2h:~# cat /proc/asound/cards 
     0 [rcarsound      ]: rcar_sound - rcar_sound
                          rcar_sound
    root@hihope-rzg2h:~#

    My arecord comand is showing below error and file size is not growing:
    ========================================================

    root@hihope-rzg2h:~# arecord -D plughw:0,0 -r44100 -f S16_LE -c 1 -d 25 rescord4111.wav                                                                                                                    
    Recording WAVE 'rescord4111.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
    ^CAborted by signal Interrupt...
    arecord: pcm_read:2151: read error: Interrupted [  894.729951] rcar_sound ec500000.sound: ssi[7] status check failed
    system call
    root@hihope-rzg2h:~# ls -l rescord4111.wav
    -rw-r--r-- 1 root root 44 Sep 20 10:58 rescord4111.wav
    root@hihope-rzg2h:~#

    Please help us what am I missing here  and file size is not incresing

    Please check my debug message  attached here with and help us to resolve this issue.

    Thanks and regards,
    Nagaraja
  • arecord: pcm_read:2151: read error: Interrupted [  894.729951] rcar_sound ec500000.sound: ssi[7] status check failed

    Go find what file prints that message "status check failed", and what it means.

  • Hi Chris,

     We configured   TLV320adc5140 as master and RZG2H as slave and used .

    We are using below pin configuration  .

    sound_pins1: sound {
                    groups = "ssi78_ctrl", "ssi7_data";/* G6_17, G6_18, G6_19 */
                    function = "ssi";
            };

    and using:

    capture = ssi7;

    in the rcar_sound in dtsi

     Now are able to record a file and file size is growing.

    =============================================

    root@hihope-rzg2h:~# arecord -D plughw:0,0 -r44100 -f S16_LE -c 1 -d 15 reccord704.wav  &                                                                                                                  
    [1] 616
    Recording WAVE 'reccord704.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono


    root@hihope-rzg2h:~# ls -l reccord704.wav
    -rw-r--r-- 1 root root 651308 Sep 20 10:46 reccord704.wav


    root@hihope-rzg2h:~# ls -l reccord704.wav
    -rw-r--r-- 1 root root 847916 Sep 20 10:46 reccord704.wav


    root@hihope-rzg2h:~# i2cdump -y -f 0 0x4c
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 81 00 00 05 00 40 00 00 00 00 01 02 03 04    ..?..?.@....????
    10: 05 06 07 86 48 f8 10 10 04 20 02 08 00 00 02 40    ????H???? ??..?@
    20: f0 a0 41 41 41 41 00 00 00 00 00 45 67 00 00 00    ??AAAA.....Eg...
    30: 00 00 00 ff 00 00 c0 00 80 00 00 00 00 00 c9 80    ......?.?.....??
    40: 00 00 00 c9 80 00 00 00 c9 80 00 00 00 c9 80 00    ...??...??...??.
    50: 00 00 c9 80 00 00 00 c9 80 00 00 00 c9 80 00 00    ..??...??...??..
    60: 00 c9 80 00 00 00 00 00 00 00 00 01 40 7b 00 00    .??........?@{..
    70: e7 00 00 00 00 00 00 c0 00 00 ff 00 ff 8c 69 00    ?......?.....?i.
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    [1]+  Done                    arecord -D plughw:0,0 -r44100 -f S16_LE -c 1 -d 15 reccord704.wav

    We are getting BCLK=12MHz and FSYNC=48kHz.

    But we are not getting the data singal when we probes the data line 6_19 which is data;

    Please guide us what am i missing here and how i debug it

    Thanks and regards,
    Nagaraja