WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-10-25 15:06:53

大帅
会员
注册时间: 2019-01-17
累计积分: 24

求助F1c100s声卡问题

Nano板子开机没有识别出硬件声卡,这个问题该如何下手解决?
[    3.626561] ALSA device list:
[    3.629602]   #0: Loopback 1

# ls -lh /sys/firmware/devicetree/base/
total 0
-r--r--r--    1 root     root           4 Jan  1 00:00 #address-cells
-r--r--r--    1 root     root           4 Jan  1 00:00 #size-cells
drwxr-xr-x    2 root     root           0 Jan  1 00:00 aliases
drwxr-xr-x    2 root     root           0 Jan  1 00:00 chosen
drwxr-xr-x    5 root     root           0 Jan  1 00:00 clocks
-r--r--r--    1 root     root          63 Jan  1 00:00 compatible
drwxr-xr-x    3 root     root           0 Jan  1 00:00 cpus
drwxr-xr-x    2 root     root           0 Jan  1 00:00 display-engine
-r--r--r--    1 root     root           4 Jan  1 00:00 interrupt-parent
drwxr-xr-x    2 root     root           0 Jan  1 00:00 memory
-r--r--r--    1 root     root          15 Jan  1 00:00 model
-r--r--r--    1 root     root           1 Jan  1 00:00 name
drwxr-xr-x    3 root     root           0 Jan  1 00:00 panel
drwxr-xr-x   24 root     root           0 Jan  1 00:00 soc
drwxr-xr-x    2 root     root           0 Jan  1 00:00 vcc3v3
# 
# ls /dev/snd -l
total 0
crw-rw----    1 root     audio     116,   0 Jan  1 00:00 controlC0
crw-rw----    1 root     audio     116,  24 Jan  1 00:00 pcmC0D0c
crw-rw----    1 root     audio     116,  16 Jan  1 00:00 pcmC0D0p
crw-rw----    1 root     audio     116,  25 Jan  1 00:00 pcmC0D1c
crw-rw----    1 root     audio     116,  17 Jan  1 00:00 pcmC0D1p
crw-rw----    1 root     audio     116,  33 Jan  1 00:00 timer
# 
# cat /proc/asound/cards
 0 [Loopback       ]: Loopback - Loopback
                      Loopback 1
# 
# cat /proc/asound/devices
  0: [ 0]   : control
 16: [ 0- 0]: digital audio playback
 17: [ 0- 1]: digital audio playback
 24: [ 0- 0]: digital audio capture
 25: [ 0- 1]: digital audio capture
 33:        : timer
# 
# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
# 


开机日志:
==========================================================================

# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.15.0-licheepi-nano+ (root@ubuntu) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #42 Sat Aug 24 10:33:10 EDT 2019
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Nano
[    0.000000] Memory policy: Data cache writeback
[    0.000000] On node 0 totalpages: 8192
[    0.000000]   Normal zone: 64 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 8192 pages, LIFO batch:0
[    0.000000] random: fast init done
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2  vt.global_cursor_default=0
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 22672K/32768K available (6144K kernel code, 236K rwdata, 1412K rodata, 1024K init, 245K bss, 10096K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xc2800000 - 0xff800000   ( 976 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (7136 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 237 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 246 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000047] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000109] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000636] Console: colour dummy device 80x30
[    0.000734] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[    0.070236] pid_max: default: 32768 minimum: 301
[    0.070566] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.070620] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.072227] CPU: Testing write buffer coherency: ok
[    0.073955] Setting up static identity map for 0x80100000 - 0x80100058
[    0.076584] devtmpfs: initialized
[    0.084820] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.084896] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.085175] pinctrl core: initialized pinctrl subsystem
[    0.087484] NET: Registered protocol family 16
[    0.088935] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.091036] cpuidle: using governor menu
[    0.120649] SCSI subsystem initialized
[    0.121052] usbcore: registered new interface driver usbfs
[    0.121213] usbcore: registered new interface driver hub
[    0.121457] usbcore: registered new device driver usb
[    0.121985] pps_core: LinuxPPS API ver. 1 registered
[    0.122015] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.122093] PTP clock support registered
[    0.122693] Advanced Linux Sound Architecture Driver Initialized.
[    0.124967] clocksource: Switched to clocksource timer
[    0.153741] NET: Registered protocol family 2
[    0.155448] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.155541] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.155606] TCP: Hash tables configured (established 1024 bind 1024)
[    0.155968] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.156047] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.156591] NET: Registered protocol family 1
[    0.157910] RPC: Registered named UNIX socket transport module.
[    0.157956] RPC: Registered udp transport module.
[    0.157974] RPC: Registered tcp transport module.
[    0.157990] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.160374] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.162305] Initialise system trusted keyrings
[    0.162842] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    0.181402] NFS: Registering the id_resolver key type
[    0.181505] Key type id_resolver registered
[    0.181526] Key type id_legacy registered
[    0.181657] jffs2: version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.
[    0.197288] Key type asymmetric registered
[    0.197333] Asymmetric key parser 'x509' registered
[    0.197560] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    0.197596] io scheduler noop registered
[    0.197617] io scheduler deadline registered
[    0.198467] io scheduler cfq registered (default)
[    0.198505] io scheduler mq-deadline registered
[    0.198526] io scheduler kyber registered
[    0.199909] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[    0.210220] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.395428] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.402690] console [ttyS0] disabled
[    0.422975] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 27, base_baud = 6250000) is a 16550A
[    0.905055] console [ttyS0] enabled
[    0.931427] 1c25800.serial: ttyS2 at MMIO 0x1c25800 (irq = 28, base_baud = 6250000) is a 16550A
[    0.948607] panel-simple panel: panel supply power not found, using dummy regulator
[    0.958138] SCSI Media Changer driver v0.25 
[    0.966575] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.972330] 4 ofpart partitions found on MTD device spi0.0
[    0.977959] Creating 4 MTD partitions on "spi0.0":
[    0.982777] 0x000000000000-0x000000100000 : "u-boot"
[    0.990467] 0x000000100000-0x000000110000 : "dtb"
[    0.997997] 0x000000110000-0x000000510000 : "kernel"
[    1.005613] 0x000000510000-0x000001000000 : "rootfs"
[    1.013867] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.020544] ehci-platform: EHCI generic platform driver
[    1.026193] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.032428] ohci-platform: OHCI generic platform driver
[    1.038194] usbcore: registered new interface driver usb-storage
[    1.046467] input: 1c23400.lradc as /devices/platform/soc/1c23400.lradc/input/input0
[    1.056980] input: 1c24800.rtp as /devices/platform/soc/1c24800.rtp/input/input1
[    1.065461] i2c /dev entries driver
[    3.125051] i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0
[    3.131614] rtc-pcf8563 0-0051: pcf8563_write_block_data: err=-110 addr=0e, data=03
[    3.139325] rtc-pcf8563 0-0051: pcf8563_probe: write error
[    3.144934] rtc-pcf8563: probe of 0-0051 failed with error -5
[    3.153188] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    3.215112] sunxi-mmc 1c0f000.mmc: base:0xcffafbc9 irq:20
[    3.222947] usbcore: registered new interface driver usbhid
[    3.228666] usbhid: USB HID core driver
[    3.251896] NET: Registered protocol family 17
[    3.256750] Key type dns_resolver registered
[    3.263278] Loading compiled-in X.509 certificates
[    3.280221] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0739cb8)
[    3.289139] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc0738f9c)
[    3.296925] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.303536] [drm] No driver support for vblank timestamp query.
[    3.502927] Console: switching to colour frame buffer device 100x30
[    3.541741] sun4i-drm display-engine: fb0:  frame buffer device
[    3.548986] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    3.558294] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    3.570331] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    3.576273] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[    3.586688] hub 1-0:1.0: USB hub found
[    3.590637] hub 1-0:1.0: 1 port detected
[    3.596699] hctosys: unable to open rtc device (rtc0)
[    3.602256] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.619720] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.626561] ALSA device list:
[    3.629602]   #0: Loopback 1
[    3.633417] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.642148] cfg80211: failed to load regulatory.db
[    3.736825] random: crng init done
[    5.307121] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[    5.316115] devtmpfs: mounted
[    5.326284] Freeing unused kernel memory: 1024K
[   14.927256] file system registered
[   15.229620] uart closed, irq=27 ..................... 
[   16.252087] read descriptors
[   16.255210] read strings
[   16.258031] g_ffs gadget: g_ffs ready
# 
# 

离线

#2 2019-10-25 15:30:42

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,193

Re: 求助F1c100s声卡问题

司徒的miyoo kernel 可以播放声音: https://github.com/qq516333132/f1c500s_kernel

前面 @傅伟清 已经放弃治疗了, 改用 tina3.x

离线

#3 2019-10-25 15:47:56

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

晕哥 说:

司徒的miyoo kernel 可以播放声音: https://github.com/qq516333132/f1c500s_kernel

前面 @傅伟清 已经放弃治疗了, 改用 tina3.x

1. 这个问题是出在哪里了?内核么?

2. @傅伟清 已经放弃了,用tinyalsa可以了么,意思是alsa在这个nano上不行,还是哪里不对?

离线

#4 2019-10-25 16:05:35

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,193

Re: 求助F1c100s声卡问题

1. 不知道,你对你一下代码吧, 只要花点时间应该可以搞定
2. 应该是驱动没怼好

离线

#5 2019-10-25 17:45:06

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

晕哥 说:

1. 不知道,你对你一下代码吧, 只要花点时间应该可以搞定
2. 应该是驱动没怼好

我发现他的设备树里有codec相关的,suniv-f1c500s-miyoo.dts
&codec {
    status = "okay";
};

而我当前板子里的dtb里面没有codec相关,可能是这个原因么?

离线

#6 2019-10-25 17:48:41

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,193

Re: 求助F1c100s声卡问题

可能在包涵的 dtsi 文件里面

离线

#7 2019-10-25 17:52:08

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

晕哥 说:

可能在包涵的 dtsi 文件里面

我把dtb转为dts,dtsi会全部展开,里面并没有codec,


suniv-f1c100s-licheepi-nano-800480.dtb ---> suniv-f1c100s-licheepi-nano-800480.dts
<code>
/dts-v1/;

/ {
    #address-cells = <0x1>;
    #size-cells = <0x1>;
    interrupt-parent = <0x1>;
    model = "Lichee Pi Nano";
    compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s", "allwinner,suniv";

    clocks {
        #address-cells = <0x1>;
        #size-cells = <0x1>;
        ranges;

        clk-24M {
            #clock-cells = <0x0>;
            compatible = "fixed-clock";
            clock-frequency = <0x16e3600>;
            clock-output-names = "osc24M";
            phandle = <0x6>;
        };

        clk-32k {
            #clock-cells = <0x0>;
            compatible = "fixed-clock";
            clock-frequency = <0x8000>;
            clock-output-names = "osc32k";
            phandle = <0xb>;
        };

        clk-100M {
            #clock-cells = <0x0>;
            compatible = "fixed-clock";
            clock-frequency = <0x5f5e100>;
            clock-output-names = "fake-100M";
        };
    };

    cpus {
        #address-cells = <0x0>;
        #size-cells = <0x0>;

        cpu {
            compatible = "arm,arm926ej-s";
            device_type = "cpu";
        };
    };

    display-engine {
        compatible = "allwinner,suniv-display-engine";
        allwinner,pipelines = <0x2>;
        status = "okay";
    };

    soc {
        compatible = "simple-bus";
        #address-cells = <0x1>;
        #size-cells = <0x1>;
        ranges;

        sram-controller@1c00000 {
            compatible = "allwinner,sun4i-a10-sram-controller";
            reg = <0x1c00000 0x30>;
            #address-cells = <0x1>;
            #size-cells = <0x1>;
            ranges;

            sram@10000 {
                compatible = "mmio-sram";
                reg = <0x10000 0x1000>;
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                ranges = <0x0 0x10000 0x1000>;

                sram-section@0 {
                    compatible = "allwinner,sun4i-a10-sram-d";
                    reg = <0x0 0x1000>;
                    status = "okay";
                    phandle = <0x13>;
                };
            };
        };

        lradc@1c23400 {
            compatible = "allwinner,sun4i-a10-lradc-keys";
            reg = <0x1c23400 0x400>;
            interrupts = <0x16>;
            status = "okay";
            vref-supply = <0x3>;

            button@200 {
                label = "Volume Up";
                linux,code = <0x73>;
                channel = <0x0>;
                voltage = <0x30d40>;
            };

            button@400 {
                label = "Volume Down";
                linux,code = <0x72>;
                channel = <0x0>;
                voltage = <0x61a80>;
            };

            button@600 {
                label = "Select";
                linux,code = <0x161>;
                channel = <0x0>;
                voltage = <0x927c0>;
            };

            button@800 {
                label = "Start";
                linux,code = <0x160>;
                channel = <0x0>;
                voltage = <0xc3500>;
            };
        };

        spi@1c05000 {
            compatible = "allwinner,suniv-spi", "allwinner,sun8i-h3-spi";
            reg = <0x1c05000 0x1000>;
            interrupts = <0xa>;
            clocks = <0x4 0x11 0x4 0x11>;
            clock-names = "ahb", "mod";
            resets = <0x4 0x4>;
            status = "okay";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
            pinctrl-names = "default";
            pinctrl-0 = <0x5>;

            flash@0 {
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                compatible = "winbond,w25q128", "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <0x2625a00>;

                partitions {
                    compatible = "fixed-partitions";
                    #address-cells = <0x1>;
                    #size-cells = <0x1>;

                    partition@0 {
                        label = "u-boot";
                        reg = <0x0 0x100000>;
                        read-only;
                    };

                    partition@100000 {
                        label = "dtb";
                        reg = <0x100000 0x10000>;
                        read-only;
                    };

                    partition@110000 {
                        label = "kernel";
                        reg = <0x110000 0x400000>;
                        read-only;
                    };

                    partition@510000 {
                        label = "rootfs";
                        reg = <0x510000 0xaf0000>;
                    };
                };
            };
        };

        spi@1c06000 {
            compatible = "allwinner,suniv-spi", "allwinner,sun8i-h3-spi";
            reg = <0x1c06000 0x1000>;
            interrupts = <0xb>;
            clocks = <0x4 0x12 0x4 0x12>;
            clock-names = "ahb", "mod";
            resets = <0x4 0x5>;
            status = "disabled";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
        };

        lcd-controller@1c0c000 {
            compatible = "allwinner,suniv-tcon";
            reg = <0x1c0c000 0x1000>;
            interrupts = <0x1d>;
            clocks = <0x4 0x15 0x4 0x39 0x6>;
            clock-names = "ahb", "tcon-ch0", "tcon-ch1";
            clock-output-names = "tcon-pixel-clock";
            resets = <0x4 0x8>;
            reset-names = "lcd";
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x7>;

            ports {
                #address-cells = <0x1>;
                #size-cells = <0x0>;

                port@0 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x0>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x8>;
                        phandle = <0x16>;
                    };
                };

                port@1 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x1>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x9>;
                        phandle = <0x17>;
                    };
                };
            };
        };

        mmc@1c0f000 {
            compatible = "allwinner,suniv-mmc", "allwinner,sun7i-a20-mmc";
            reg = <0x1c0f000 0x1000>;
            clocks = <0x4 0xe 0x4 0x28 0x4 0x2a 0x4 0x29>;
            clock-names = "ahb", "mmc", "output", "sample";
            resets = <0x4 0x1>;
            reset-names = "ahb";
            interrupts = <0x17>;
            pinctrl-names = "default";
            pinctrl-0 = <0xa>;
            status = "okay";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
            vmmc-supply = <0x3>;
            bus-width = <0x4>;
            broken-cd;
        };

        mmc@1c10000 {
            compatible = "allwinner,suniv-mmc", "allwinner,sun7i-a20-mmc";
            reg = <0x1c10000 0x1000>;
            clocks = <0x4 0xf 0x4 0x2b 0x4 0x2d 0x4 0x2c>;
            clock-names = "ahb", "mmc", "output", "sample";
            resets = <0x4 0x2>;
            reset-names = "ahb";
            interrupts = <0x18>;
            status = "disabled";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
        };

        clock@1c20000 {
            compatible = "allwinner,suniv-ccu";
            reg = <0x1c20000 0x400>;
            clocks = <0x6 0xb>;
            clock-names = "hosc", "losc";
            #clock-cells = <0x1>;
            #reset-cells = <0x1>;
            phandle = <0x4>;
        };

        interrupt-controller@1c20400 {
            compatible = "allwinner,suniv-ic";
            reg = <0x1c20400 0x400>;
            interrupt-controller;
            #interrupt-cells = <0x1>;
            phandle = <0x1>;
        };

        pinctrl@1c20800 {
            compatible = "allwinner,suniv-pinctrl";
            reg = <0x1c20800 0x400>;
            interrupts = <0x26 0x27 0x28>;
            clocks = <0x4 0x24 0x6 0xb>;
            clock-names = "apb", "hosc", "losc";
            gpio-controller;
            interrupt-controller;
            #interrupt-cells = <0x3>;
            #gpio-cells = <0x3>;
            phandle = <0xd>;

            spi0-pins-pc {
                pins = "PC0", "PC1", "PC2", "PC3";
                function = "spi0";
                phandle = <0x5>;
            };

            lcd-rgb666-pins {
                pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21";
                function = "lcd";
                phandle = <0x7>;
            };

            rtp-pins {
                pins = "PA0", "PA1", "PA2", "PA3";
                function = "rtp";
                phandle = <0xe>;
            };

            uart-pins-pe {
                pins = "PE0", "PE1";
                function = "uart0";
                phandle = <0x10>;
            };

            uart-pins-pe78 {
                pins = "PE7", "PE8";
                function = "uart2";
                phandle = <0x11>;
            };

            i2c0 {
                pins = "PE11", "PE12";
                function = "i2c0";
                phandle = <0xc>;
            };

            mmc0-pins {
                pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
                function = "mmc0";
                phandle = <0xa>;
            };

            pwm0 {
                pins = "PE12";
                function = "pwm0";
            };

            pwm1 {
                pins = "PE6";
                function = "pwm1";
                phandle = <0xf>;
            };
        };

        i2c@1C27000 {
            compatible = "allwinner,sun6i-a31-i2c";
            reg = <0x1c27000 0x400>;
            interrupts = <0x7>;
            clocks = <0x4 0x21>;
            resets = <0x4 0x14>;
            pinctrl-names = "default";
            pinctrl-0 = <0xc>;
            status = "okay";
            #address-cells = <0x1>;
            #size-cells = <0x0>;

            rtc@51 {
                compatible = "nxp,pcf8563";
                reg = <0x51>;
            };

            touchscreen@5d {
                compatible = "goodix,gt911";
                reg = <0x5d>;
                interrupt-parent = <0xd>;
                interrupts = <0x4 0x3 0x2>;
                pinctrl-names = "default";
                irq-gpios = <0xd 0x4 0x3 0x0>;
                reset-gpios = <0xd 0x4 0x9 0x0>;
                touchscreen-swapped-x-y;
            };

            touchscreen@14 {
                compatible = "goodix,gt911";
                reg = <0x14>;
                interrupt-parent = <0xd>;
                interrupts = <0x4 0x3 0x2>;
                pinctrl-names = "default";
                irq-gpios = <0xd 0x4 0x3 0x0>;
                reset-gpios = <0xd 0x4 0x9 0x0>;
                touchscreen-swapped-x-y;
            };
        };

        rtp@1c24800 {
            compatible = "allwinner,sun4i-a10-ts";
            reg = <0x1c24800 0x100>;
            interrupts = <0x14>;
            allwinner,ts-attached;
            #thermal-sensor-cells = <0x0>;
            pinctrl-names = "default";
            pinctrl-0 = <0xe>;
            status = "okay";
        };

        pwm@1c21000 {
            compatible = "allwinner,sun7i-a20-pwm";
            reg = <0x1c21000 0xc>;
            clocks = <0x6>;
            #pwm-cells = <0x3>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0xf>;
        };

        timer@1c20c00 {
            compatible = "allwinner,suniv-timer";
            reg = <0x1c20c00 0x90>;
            interrupts = <0xd>;
            clocks = <0x6>;
        };

        watchdog@1c20ca0 {
            compatible = "allwinner,sun6i-a31-wdt";
            reg = <0x1c20ca0 0x20>;
            interrupts = <0x10>;
            status = "okay";
        };

        serial@1c25000 {
            compatible = "snps,dw-apb-uart";
            reg = <0x1c25000 0x400>;
            interrupts = <0x1>;
            reg-shift = <0x2>;
            reg-io-width = <0x4>;
            clocks = <0x4 0x25>;
            resets = <0x4 0x17>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x10>;
            rts-gpio = <0xd 0x4 0x9 0x0>;
            rs485-rts-active-high;
            rs485-rts-delay = <0x0 0x0>;
            linux,rs485-enabled-at-boot-time;
        };

        serial@1c25400 {
            compatible = "snps,dw-apb-uart";
            reg = <0x1c25400 0x400>;
            interrupts = <0x2>;
            reg-shift = <0x2>;
            reg-io-width = <0x4>;
            clocks = <0x4 0x26>;
            resets = <0x4 0x18>;
            status = "disabled";
        };

        serial@1c25800 {
            compatible = "snps,dw-apb-uart";
            reg = <0x1c25800 0x400>;
            interrupts = <0x3>;
            reg-shift = <0x2>;
            reg-io-width = <0x4>;
            clocks = <0x4 0x27>;
            resets = <0x4 0x19>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x11>;
            rts-gpio = <0xd 0x4 0xa 0x0>;
            rs485-rts-active-high;
            rs485-rts-delay = <0x0 0x0>;
            linux,rs485-enabled-at-boot-time;
        };

        usb@1c13000 {
            compatible = "allwinner,suniv-musb";
            reg = <0x1c13000 0x400>;
            clocks = <0x4 0x13>;
            resets = <0x4 0x6>;
            interrupts = <0x1a>;
            interrupt-names = "mc";
            phys = <0x12 0x0>;
            phy-names = "usb";
            extcon = <0x12 0x0>;
            allwinner,sram = <0x13 0x1>;
            status = "okay";
            dr_mode = "otg";
        };

        phy@1c13400 {
            compatible = "allwinner,suniv-usb-phy";
            reg = <0x1c13400 0x10>;
            reg-names = "phy_ctrl";
            clocks = <0x4 0x30>;
            clock-names = "usb0_phy";
            resets = <0x4 0x0>;
            reset-names = "usb0_reset";
            #phy-cells = <0x1>;
            status = "okay";
            usb0_id_det-gpio = <0xd 0x4 0x2 0x0>;
            phandle = <0x12>;
        };

        display-frontend@1e00000 {
            compatible = "allwinner,suniv-display-frontend";
            reg = <0x1e00000 0x20000>;
            interrupts = <0x1e>;
            clocks = <0x4 0x1b 0x4 0x38 0x4 0x35>;
            clock-names = "ahb", "mod", "ram";
            resets = <0x4 0xe>;
            status = "disabled";
            phandle = <0x2>;

            ports {
                #address-cells = <0x1>;
                #size-cells = <0x0>;

                port@1 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x1>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x14>;
                        phandle = <0x15>;
                    };
                };
            };
        };

        display-backend@1e60000 {
            compatible = "allwinner,suniv-display-backend";
            reg = <0x1e60000 0x10000>;
            reg-names = "be";
            interrupts = <0x1f>;
            clocks = <0x4 0x1a 0x4 0x37 0x4 0x36>;
            clock-names = "ahb", "mod", "ram";
            resets = <0x4 0xd>;
            reset-names = "be";
            assigned-clocks = <0x4 0x37>;
            assigned-clock-rates = <0x11e1a300>;

            ports {
                #address-cells = <0x1>;
                #size-cells = <0x0>;

                port@0 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x0>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x15>;
                        phandle = <0x14>;
                    };
                };

                port@1 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x1>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x16>;
                        phandle = <0x8>;
                    };
                };
            };
        };
    };

    aliases {
        serial0 = "/soc/serial@1c25000";
        serial2 = "/soc/serial@1c25800";
        spi0 = "/soc/spi@1c05000";
    };

    chosen {
        stdout-path = "serial0:115200n8";
    };

    panel {
        compatible = "okaya,rs800480t-7x0gp", "simple-panel";
        #address-cells = <0x1>;
        #size-cells = <0x0>;

        port@0 {
            reg = <0x0>;
            #address-cells = <0x1>;
            #size-cells = <0x0>;

            endpoint@0 {
                reg = <0x0>;
                remote-endpoint = <0x17>;
                phandle = <0x9>;
            };
        };
    };

    vcc3v3 {
        compatible = "regulator-fixed";
        regulator-name = "vcc3v3";
        regulator-min-microvolt = <0x325aa0>;
        regulator-max-microvolt = <0x325aa0>;
        phandle = <0x3>;
    };
};

</code>

离线

#8 2019-10-25 17:59:10

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

晕哥 说:

可能在包涵的 dtsi 文件里面



在\f1c500s_kernel\sound\soc\里面发现suniv文件夹,好像是他自己增加的,官方的名字是sunxi,

\f1c500s_kernel\sound\soc\suniv\下面,他自己写了几个文件:
miyoo.c 
Makefile
Kconfig

好像这才是F1c100s的codec驱动,目前不懂,推测的。

离线

#9 2019-10-25 18:36:59

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 316

Re: 求助F1c100s声卡问题

大帅 说:
晕哥 说:

可能在包涵的 dtsi 文件里面



在\f1c500s_kernel\sound\soc\里面发现suniv文件夹,好像是他自己增加的,官方的名字是sunxi,

\f1c500s_kernel\sound\soc\suniv\下面,他自己写了几个文件:
miyoo.c 
Makefile
Kconfig

好像这才是F1c100s的codec驱动,目前不懂,推测的。

对就是这个,不过得研究一下源码,我编译成ko后,安装老是出错

离线

#10 2019-10-25 18:45:47

傅伟清
会员
注册时间: 2019-07-17
累计积分: 39

Re: 求助F1c100s声卡问题

nano的sdk里和bsp比较是少音频驱动的,那个loopback无用,要不就移植,要不就只能换方案了,这是我之前比较的情况

离线

#11 2019-10-25 19:02:07

傅伟清
会员
注册时间: 2019-07-17
累计积分: 39

Re: 求助F1c100s声卡问题

QQ图片20191025190053.png
这是tina的声卡开机日志,司徒的手撸的,没深入研究过,而且没法直接上100s的

离线

#12 2019-10-25 21:29:37

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

傅伟清 说:

https://whycan.cn/files/members/1833/QQ图片20191025190053.png
这是tina的声卡开机日志,司徒的手撸的,没深入研究过,而且没法直接上100s的

0. 我看的miyoo.c作者是不是司徒大佬?
1. 你不是弄好了么?
2. 没法直接上100s,意思是这个驱动是f1c500的,需要修改驱动源码才能在f1c100上用是么?
3. tina声卡,是指tinyalsa吧, 不明白tinyalsa和alsa的区别,是不是如果底层硬件驱动好了话,这两都可以用没有啥区别?

刚未入门的小白,一下问得有点多,先谢谢大佬们的耐心解答! 

离线

#13 2019-10-25 21:40:43

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

\f1c500s_kernel\sound\soc\suniv\下面,他自己写了几个文件:

好像这才是F1c100s的codec驱动,目前不懂,推测的。

对就是这个,不过得研究一下源码,我编译成ko后,安装老是出错

感觉只是编译ko不行吧,我猜测的,
你也是用在f1c100上么?
是不是500s和100s的codec的寄存器不一样,miyoo.c代码需要修改呢?

离线

#14 2019-10-25 21:51:10

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 316

Re: 求助F1c100s声卡问题

大帅 说:
晕哥 说:

可能在包涵的 dtsi 文件里面

我把dtb转为dts,dtsi会全部展开,里面并没有codec,


suniv-f1c100s-licheepi-nano-800480.dtb ---> suniv-f1c100s-licheepi-nano-800480.dts
<code>
/dts-v1/;

/ {
    #address-cells = <0x1>;
    #size-cells = <0x1>;
    interrupt-parent = <0x1>;
    model = "Lichee Pi Nano";
    compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s", "allwinner,suniv";

    clocks {
        #address-cells = <0x1>;
        #size-cells = <0x1>;
        ranges;

        clk-24M {
            #clock-cells = <0x0>;
            compatible = "fixed-clock";
            clock-frequency = <0x16e3600>;
            clock-output-names = "osc24M";
            phandle = <0x6>;
        };

        clk-32k {
            #clock-cells = <0x0>;
            compatible = "fixed-clock";
            clock-frequency = <0x8000>;
            clock-output-names = "osc32k";
            phandle = <0xb>;
        };

        clk-100M {
            #clock-cells = <0x0>;
            compatible = "fixed-clock";
            clock-frequency = <0x5f5e100>;
            clock-output-names = "fake-100M";
        };
    };

    cpus {
        #address-cells = <0x0>;
        #size-cells = <0x0>;

        cpu {
            compatible = "arm,arm926ej-s";
            device_type = "cpu";
        };
    };

    display-engine {
        compatible = "allwinner,suniv-display-engine";
        allwinner,pipelines = <0x2>;
        status = "okay";
    };

    soc {
        compatible = "simple-bus";
        #address-cells = <0x1>;
        #size-cells = <0x1>;
        ranges;

        sram-controller@1c00000 {
            compatible = "allwinner,sun4i-a10-sram-controller";
            reg = <0x1c00000 0x30>;
            #address-cells = <0x1>;
            #size-cells = <0x1>;
            ranges;

            sram@10000 {
                compatible = "mmio-sram";
                reg = <0x10000 0x1000>;
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                ranges = <0x0 0x10000 0x1000>;

                sram-section@0 {
                    compatible = "allwinner,sun4i-a10-sram-d";
                    reg = <0x0 0x1000>;
                    status = "okay";
                    phandle = <0x13>;
                };
            };
        };

        lradc@1c23400 {
            compatible = "allwinner,sun4i-a10-lradc-keys";
            reg = <0x1c23400 0x400>;
            interrupts = <0x16>;
            status = "okay";
            vref-supply = <0x3>;

            button@200 {
                label = "Volume Up";
                linux,code = <0x73>;
                channel = <0x0>;
                voltage = <0x30d40>;
            };

            button@400 {
                label = "Volume Down";
                linux,code = <0x72>;
                channel = <0x0>;
                voltage = <0x61a80>;
            };

            button@600 {
                label = "Select";
                linux,code = <0x161>;
                channel = <0x0>;
                voltage = <0x927c0>;
            };

            button@800 {
                label = "Start";
                linux,code = <0x160>;
                channel = <0x0>;
                voltage = <0xc3500>;
            };
        };

        spi@1c05000 {
            compatible = "allwinner,suniv-spi", "allwinner,sun8i-h3-spi";
            reg = <0x1c05000 0x1000>;
            interrupts = <0xa>;
            clocks = <0x4 0x11 0x4 0x11>;
            clock-names = "ahb", "mod";
            resets = <0x4 0x4>;
            status = "okay";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
            pinctrl-names = "default";
            pinctrl-0 = <0x5>;

            flash@0 {
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                compatible = "winbond,w25q128", "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <0x2625a00>;

                partitions {
                    compatible = "fixed-partitions";
                    #address-cells = <0x1>;
                    #size-cells = <0x1>;

                    partition@0 {
                        label = "u-boot";
                        reg = <0x0 0x100000>;
                        read-only;
                    };

                    partition@100000 {
                        label = "dtb";
                        reg = <0x100000 0x10000>;
                        read-only;
                    };

                    partition@110000 {
                        label = "kernel";
                        reg = <0x110000 0x400000>;
                        read-only;
                    };

                    partition@510000 {
                        label = "rootfs";
                        reg = <0x510000 0xaf0000>;
                    };
                };
            };
        };

        spi@1c06000 {
            compatible = "allwinner,suniv-spi", "allwinner,sun8i-h3-spi";
            reg = <0x1c06000 0x1000>;
            interrupts = <0xb>;
            clocks = <0x4 0x12 0x4 0x12>;
            clock-names = "ahb", "mod";
            resets = <0x4 0x5>;
            status = "disabled";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
        };

        lcd-controller@1c0c000 {
            compatible = "allwinner,suniv-tcon";
            reg = <0x1c0c000 0x1000>;
            interrupts = <0x1d>;
            clocks = <0x4 0x15 0x4 0x39 0x6>;
            clock-names = "ahb", "tcon-ch0", "tcon-ch1";
            clock-output-names = "tcon-pixel-clock";
            resets = <0x4 0x8>;
            reset-names = "lcd";
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x7>;

            ports {
                #address-cells = <0x1>;
                #size-cells = <0x0>;

                port@0 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x0>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x8>;
                        phandle = <0x16>;
                    };
                };

                port@1 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x1>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x9>;
                        phandle = <0x17>;
                    };
                };
            };
        };

        mmc@1c0f000 {
            compatible = "allwinner,suniv-mmc", "allwinner,sun7i-a20-mmc";
            reg = <0x1c0f000 0x1000>;
            clocks = <0x4 0xe 0x4 0x28 0x4 0x2a 0x4 0x29>;
            clock-names = "ahb", "mmc", "output", "sample";
            resets = <0x4 0x1>;
            reset-names = "ahb";
            interrupts = <0x17>;
            pinctrl-names = "default";
            pinctrl-0 = <0xa>;
            status = "okay";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
            vmmc-supply = <0x3>;
            bus-width = <0x4>;
            broken-cd;
        };

        mmc@1c10000 {
            compatible = "allwinner,suniv-mmc", "allwinner,sun7i-a20-mmc";
            reg = <0x1c10000 0x1000>;
            clocks = <0x4 0xf 0x4 0x2b 0x4 0x2d 0x4 0x2c>;
            clock-names = "ahb", "mmc", "output", "sample";
            resets = <0x4 0x2>;
            reset-names = "ahb";
            interrupts = <0x18>;
            status = "disabled";
            #address-cells = <0x1>;
            #size-cells = <0x0>;
        };

        clock@1c20000 {
            compatible = "allwinner,suniv-ccu";
            reg = <0x1c20000 0x400>;
            clocks = <0x6 0xb>;
            clock-names = "hosc", "losc";
            #clock-cells = <0x1>;
            #reset-cells = <0x1>;
            phandle = <0x4>;
        };

        interrupt-controller@1c20400 {
            compatible = "allwinner,suniv-ic";
            reg = <0x1c20400 0x400>;
            interrupt-controller;
            #interrupt-cells = <0x1>;
            phandle = <0x1>;
        };

        pinctrl@1c20800 {
            compatible = "allwinner,suniv-pinctrl";
            reg = <0x1c20800 0x400>;
            interrupts = <0x26 0x27 0x28>;
            clocks = <0x4 0x24 0x6 0xb>;
            clock-names = "apb", "hosc", "losc";
            gpio-controller;
            interrupt-controller;
            #interrupt-cells = <0x3>;
            #gpio-cells = <0x3>;
            phandle = <0xd>;

            spi0-pins-pc {
                pins = "PC0", "PC1", "PC2", "PC3";
                function = "spi0";
                phandle = <0x5>;
            };

            lcd-rgb666-pins {
                pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21";
                function = "lcd";
                phandle = <0x7>;
            };

            rtp-pins {
                pins = "PA0", "PA1", "PA2", "PA3";
                function = "rtp";
                phandle = <0xe>;
            };

            uart-pins-pe {
                pins = "PE0", "PE1";
                function = "uart0";
                phandle = <0x10>;
            };

            uart-pins-pe78 {
                pins = "PE7", "PE8";
                function = "uart2";
                phandle = <0x11>;
            };

            i2c0 {
                pins = "PE11", "PE12";
                function = "i2c0";
                phandle = <0xc>;
            };

            mmc0-pins {
                pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
                function = "mmc0";
                phandle = <0xa>;
            };

            pwm0 {
                pins = "PE12";
                function = "pwm0";
            };

            pwm1 {
                pins = "PE6";
                function = "pwm1";
                phandle = <0xf>;
            };
        };

        i2c@1C27000 {
            compatible = "allwinner,sun6i-a31-i2c";
            reg = <0x1c27000 0x400>;
            interrupts = <0x7>;
            clocks = <0x4 0x21>;
            resets = <0x4 0x14>;
            pinctrl-names = "default";
            pinctrl-0 = <0xc>;
            status = "okay";
            #address-cells = <0x1>;
            #size-cells = <0x0>;

            rtc@51 {
                compatible = "nxp,pcf8563";
                reg = <0x51>;
            };

            touchscreen@5d {
                compatible = "goodix,gt911";
                reg = <0x5d>;
                interrupt-parent = <0xd>;
                interrupts = <0x4 0x3 0x2>;
                pinctrl-names = "default";
                irq-gpios = <0xd 0x4 0x3 0x0>;
                reset-gpios = <0xd 0x4 0x9 0x0>;
                touchscreen-swapped-x-y;
            };

            touchscreen@14 {
                compatible = "goodix,gt911";
                reg = <0x14>;
                interrupt-parent = <0xd>;
                interrupts = <0x4 0x3 0x2>;
                pinctrl-names = "default";
                irq-gpios = <0xd 0x4 0x3 0x0>;
                reset-gpios = <0xd 0x4 0x9 0x0>;
                touchscreen-swapped-x-y;
            };
        };

        rtp@1c24800 {
            compatible = "allwinner,sun4i-a10-ts";
            reg = <0x1c24800 0x100>;
            interrupts = <0x14>;
            allwinner,ts-attached;
            #thermal-sensor-cells = <0x0>;
            pinctrl-names = "default";
            pinctrl-0 = <0xe>;
            status = "okay";
        };

        pwm@1c21000 {
            compatible = "allwinner,sun7i-a20-pwm";
            reg = <0x1c21000 0xc>;
            clocks = <0x6>;
            #pwm-cells = <0x3>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0xf>;
        };

        timer@1c20c00 {
            compatible = "allwinner,suniv-timer";
            reg = <0x1c20c00 0x90>;
            interrupts = <0xd>;
            clocks = <0x6>;
        };

        watchdog@1c20ca0 {
            compatible = "allwinner,sun6i-a31-wdt";
            reg = <0x1c20ca0 0x20>;
            interrupts = <0x10>;
            status = "okay";
        };

        serial@1c25000 {
            compatible = "snps,dw-apb-uart";
            reg = <0x1c25000 0x400>;
            interrupts = <0x1>;
            reg-shift = <0x2>;
            reg-io-width = <0x4>;
            clocks = <0x4 0x25>;
            resets = <0x4 0x17>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x10>;
            rts-gpio = <0xd 0x4 0x9 0x0>;
            rs485-rts-active-high;
            rs485-rts-delay = <0x0 0x0>;
            linux,rs485-enabled-at-boot-time;
        };

        serial@1c25400 {
            compatible = "snps,dw-apb-uart";
            reg = <0x1c25400 0x400>;
            interrupts = <0x2>;
            reg-shift = <0x2>;
            reg-io-width = <0x4>;
            clocks = <0x4 0x26>;
            resets = <0x4 0x18>;
            status = "disabled";
        };

        serial@1c25800 {
            compatible = "snps,dw-apb-uart";
            reg = <0x1c25800 0x400>;
            interrupts = <0x3>;
            reg-shift = <0x2>;
            reg-io-width = <0x4>;
            clocks = <0x4 0x27>;
            resets = <0x4 0x19>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x11>;
            rts-gpio = <0xd 0x4 0xa 0x0>;
            rs485-rts-active-high;
            rs485-rts-delay = <0x0 0x0>;
            linux,rs485-enabled-at-boot-time;
        };

        usb@1c13000 {
            compatible = "allwinner,suniv-musb";
            reg = <0x1c13000 0x400>;
            clocks = <0x4 0x13>;
            resets = <0x4 0x6>;
            interrupts = <0x1a>;
            interrupt-names = "mc";
            phys = <0x12 0x0>;
            phy-names = "usb";
            extcon = <0x12 0x0>;
            allwinner,sram = <0x13 0x1>;
            status = "okay";
            dr_mode = "otg";
        };

        phy@1c13400 {
            compatible = "allwinner,suniv-usb-phy";
            reg = <0x1c13400 0x10>;
            reg-names = "phy_ctrl";
            clocks = <0x4 0x30>;
            clock-names = "usb0_phy";
            resets = <0x4 0x0>;
            reset-names = "usb0_reset";
            #phy-cells = <0x1>;
            status = "okay";
            usb0_id_det-gpio = <0xd 0x4 0x2 0x0>;
            phandle = <0x12>;
        };

        display-frontend@1e00000 {
            compatible = "allwinner,suniv-display-frontend";
            reg = <0x1e00000 0x20000>;
            interrupts = <0x1e>;
            clocks = <0x4 0x1b 0x4 0x38 0x4 0x35>;
            clock-names = "ahb", "mod", "ram";
            resets = <0x4 0xe>;
            status = "disabled";
            phandle = <0x2>;

            ports {
                #address-cells = <0x1>;
                #size-cells = <0x0>;

                port@1 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x1>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x14>;
                        phandle = <0x15>;
                    };
                };
            };
        };

        display-backend@1e60000 {
            compatible = "allwinner,suniv-display-backend";
            reg = <0x1e60000 0x10000>;
            reg-names = "be";
            interrupts = <0x1f>;
            clocks = <0x4 0x1a 0x4 0x37 0x4 0x36>;
            clock-names = "ahb", "mod", "ram";
            resets = <0x4 0xd>;
            reset-names = "be";
            assigned-clocks = <0x4 0x37>;
            assigned-clock-rates = <0x11e1a300>;

            ports {
                #address-cells = <0x1>;
                #size-cells = <0x0>;

                port@0 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x0>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x15>;
                        phandle = <0x14>;
                    };
                };

                port@1 {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    reg = <0x1>;

                    endpoint@0 {
                        reg = <0x0>;
                        remote-endpoint = <0x16>;
                        phandle = <0x8>;
                    };
                };
            };
        };
    };

    aliases {
        serial0 = "/soc/serial@1c25000";
        serial2 = "/soc/serial@1c25800";
        spi0 = "/soc/spi@1c05000";
    };

    chosen {
        stdout-path = "serial0:115200n8";
    };

    panel {
        compatible = "okaya,rs800480t-7x0gp", "simple-panel";
        #address-cells = <0x1>;
        #size-cells = <0x0>;

        port@0 {
            reg = <0x0>;
            #address-cells = <0x1>;
            #size-cells = <0x0>;

            endpoint@0 {
                reg = <0x0>;
                remote-endpoint = <0x17>;
                phandle = <0x9>;
            };
        };
    };

    vcc3v3 {
        compatible = "regulator-fixed";
        regulator-name = "vcc3v3";
        regulator-min-microvolt = <0x325aa0>;
        regulator-max-microvolt = <0x325aa0>;
        phandle = <0x3>;
    };
};

</code>

应该是不用设置codec,只要设置好pwm就行。codec只要在linux做好驱动就行了

离线

#15 2019-10-28 15:18:41

大帅
会员
注册时间: 2019-01-17
累计积分: 24

Re: 求助F1c100s声卡问题

kekemuyu 说:
大帅 说:
晕哥 说:

可能在包涵的 dtsi 文件里面



在\f1c500s_kernel\sound\soc\里面发现suniv文件夹,好像是他自己增加的,官方的名字是sunxi,

\f1c500s_kernel\sound\soc\suniv\下面,他自己写了几个文件:
miyoo.c 
Makefile
Kconfig

好像这才是F1c100s的codec驱动,目前不懂,推测的。

对就是这个,不过得研究一下源码,我编译成ko后,安装老是出错

@kekemuyu 老兄,你安装出错,错误是啥? 是不是自动创建设备节点的时候错了?

最近编辑记录 大帅 (2019-10-28 15:19:29)

离线

#16 2019-10-28 16:35:16

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 316

Re: 求助F1c100s声卡问题

大帅 说:
kekemuyu 说:
大帅 说:


在\f1c500s_kernel\sound\soc\里面发现suniv文件夹,好像是他自己增加的,官方的名字是sunxi,

\f1c500s_kernel\sound\soc\suniv\下面,他自己写了几个文件:
miyoo.c 
Makefile
Kconfig

好像这才是F1c100s的codec驱动,目前不懂,推测的。

对就是这个,不过得研究一下源码,我编译成ko后,安装老是出错

@kekemuyu 老兄,你安装出错,错误是啥? 是不是自动创建设备节点的时候错了?

我是把miyoo得声卡驱动源码在主线4.15内核编译得,由于主线4.15内核得配置和miyoo内核配置不一样,所以安装失败。需要检查miyoo得内核配置和主线内核配置哪里不同。

离线

页脚