	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function si2157_init
_si2157_init:                           ## @si2157_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$40, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r15
	movq	16(%rdi), %r13
	movq	%r13, %rdi
	callq	_i2c_get_clientdata
	movq	%rax, %r14
	leaq	L_.str(%rip), %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_dbg
	leaq	l_.str.1(%rip), %rsi
	movl	$4, %edx
	callq	_memcpy
	movabsq	$17179869188, %rax              ## imm = 0x400000004
	movq	%rax, -48(%rbp)
	leaq	-56(%rbp), %rsi
	movq	%r13, %rdi
	callq	_si2157_cmd_execute
	movl	%eax, %ebx
	testl	%eax, %eax
	je	LBB0_1
LBB0_45:
	leaq	L_.str.18(%rip), %rsi
	movq	%r13, %rdi
	movl	%ebx, %edx
	xorl	%eax, %eax
	callq	_dev_dbg
	movl	%ebx, %r12d
LBB0_46:
	movl	%r12d, %eax
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_1:
	movq	-56(%rbp), %rax
	movl	12(%rax), %ebx
	shll	$8, %ebx
	orl	8(%rax), %ebx
	leaq	L_.str.2(%rip), %rsi
	xorl	%r12d, %r12d
	movq	%r13, %rdi
	movl	%ebx, %edx
	xorl	%eax, %eax
	callq	_dev_dbg
	movslq	(%r14), %rax
	imulq	$274877907, %rax, %rax          ## imm = 0x10624DD3
	movq	%rax, %rcx
	shrq	$63, %rcx
	sarq	$38, %rax
	addl	%ecx, %eax
	cmpl	%eax, %ebx
	jne	LBB0_2
LBB0_42:
	movl	$1, (%r15)
	movq	_FE_SCALE_NOT_AVAILABLE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	8(%r15), %rcx
	movl	%eax, (%rcx)
	movq	%r14, %rbx
	addq	$20, %rbx
	movl	$1000, %edi                     ## imm = 0x3E8
	callq	_msecs_to_jiffies
	movq	%rbx, %rdi
	movl	%eax, %esi
	callq	_schedule_delayed_work
	movl	$1, 16(%r14)
	jmp	LBB0_46
LBB0_2:
	movq	8(%r14), %rax
	movq	_SI2157_CHIPTYPE_SI2146@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_4
## %bb.3:
	movq	-56(%rbp), %rdi
	leaq	l_.str.3(%rip), %rsi
	movl	$9, %ebx
	movl	$9, %edx
	jmp	LBB0_7
LBB0_4:
	movq	_SI2157_CHIPTYPE_SI2141@GOTPCREL(%rip), %rcx
	movq	-56(%rbp), %rdi
	cmpq	(%rcx), %rax
	jne	LBB0_6
## %bb.5:
	leaq	l_.str.4(%rip), %rsi
	movl	$10, %ebx
	movl	$10, %edx
	jmp	LBB0_7
LBB0_6:
	leaq	L_.str.5(%rip), %rsi
	movl	$15, %ebx
	movl	$15, %edx
LBB0_7:
	callq	_memcpy
	movl	%ebx, -48(%rbp)
	movl	$1, -44(%rbp)
	leaq	-56(%rbp), %rsi
	movq	%r13, %rdi
	callq	_si2157_cmd_execute
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_45
## %bb.8:
	movq	8(%r14), %rax
	movq	_SI2157_CHIPTYPE_SI2141@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_10
## %bb.9:
	movq	-56(%rbp), %rdi
	leaq	L_.str.6(%rip), %rsi
	movl	$7, %edx
	callq	_memcpy
	movl	$7, -48(%rbp)
	leaq	-56(%rbp), %rsi
	movq	%r13, %rdi
	callq	_si2157_cmd_execute
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_45
LBB0_10:
	movq	-56(%rbp), %rdi
	leaq	L_.str.7(%rip), %rsi
	movl	$1, %edx
	callq	_memcpy
	movabsq	$55834574849, %rax              ## imm = 0xD00000001
	movq	%rax, -48(%rbp)
	leaq	-56(%rbp), %rsi
	movq	%r13, %rdi
	callq	_si2157_cmd_execute
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_45
## %bb.11:
	movq	-56(%rbp), %rsi
	movl	4(%rsi), %ecx
	movl	8(%rsi), %edx
	movl	%ecx, %eax
	shll	$24, %eax
	movl	%edx, %edi
	shll	$16, %edi
	orl	%eax, %edi
	movl	12(%rsi), %r8d
	movl	%r8d, %eax
	shll	$8, %eax
	movl	16(%rsi), %r9d
	orl	%r9d, %eax
	orl	%edi, %eax
	cmpl	$1093677615, %eax               ## imm = 0x4130322F
	jle	LBB0_12
## %bb.16:
	movq	_SI2158_A20_FIRMWARE@GOTPCREL(%rip), %rsi
	cmpl	$1094332975, %eax               ## imm = 0x413A322F
	jg	LBB0_20
## %bb.17:
	cmpl	$1093677616, %eax               ## imm = 0x41303230
	je	LBB0_24
## %bb.18:
	cmpl	$1094267696, %eax               ## imm = 0x41393330
	je	LBB0_15
	jmp	LBB0_19
LBB0_12:
	cmpl	$1093218608, %eax               ## imm = 0x41293130
	je	LBB0_23
## %bb.13:
	cmpl	$1093546288, %eax               ## imm = 0x412E3130
	je	LBB0_15
## %bb.14:
	cmpl	$1093612336, %eax               ## imm = 0x412F3330
	jne	LBB0_19
LBB0_15:
	leaq	L_.str.9(%rip), %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_info
	jmp	LBB0_39
LBB0_20:
	cmpl	$1094332976, %eax               ## imm = 0x413A3230
	je	LBB0_24
## %bb.21:
	cmpl	$1095578416, %eax               ## imm = 0x414D3330
	jne	LBB0_19
## %bb.22:
	movq	_SI2157_A30_FIRMWARE@GOTPCREL(%rip), %rsi
	jmp	LBB0_24
LBB0_23:
	movq	_SI2141_A10_FIRMWARE@GOTPCREL(%rip), %rsi
LBB0_24:
	movq	(%rsi), %rbx
	leaq	L_.str.9(%rip), %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_info
	testq	%rbx, %rbx
	je	LBB0_39
## %bb.25:
	leaq	-64(%rbp), %rdi
	movq	%rbx, %rsi
	movq	%r13, %rdx
	callq	_request_firmware
	movq	%rbx, %rdx
	testl	%eax, %eax
	je	LBB0_27
## %bb.26:
	movl	%eax, %ebx
	leaq	L_.str.10(%rip), %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_err
	jmp	LBB0_45
LBB0_19:
	leaq	L_.str.8(%rip), %rsi
	xorl	%ebx, %ebx
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_err
	movq	_EINVAL@GOTPCREL(%rip), %rax
	subl	(%rax), %ebx
	jmp	LBB0_45
LBB0_27:
	movq	-64(%rbp), %rax
	imull	$-252645135, (%rax), %eax       ## imm = 0xF0F0F0F1
	addl	$126322567, %eax                ## imm = 0x7878787
	cmpl	$252645135, %eax                ## imm = 0xF0F0F0F
	jb	LBB0_30
## %bb.28:
	leaq	L_.str.11(%rip), %rsi
	xorl	%ebx, %ebx
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_err
LBB0_29:
	movq	_EINVAL@GOTPCREL(%rip), %rax
	subl	(%rax), %ebx
LBB0_44:
	movq	-64(%rbp), %rdi
	callq	_release_firmware
	jmp	LBB0_45
LBB0_30:
	leaq	L_.str.12(%rip), %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_info
	movq	-64(%rbp), %rdi
	movl	(%rdi), %esi
	testl	%esi, %esi
	jle	LBB0_38
## %bb.31:
	movq	8(%rdi), %rax
	movl	(%rax), %ebx
	movq	_SI2157_ARGLEN@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %ebx
	jg	LBB0_36
## %bb.32:
	movl	$17, %ecx
	subl	%esi, %ecx
	movq	%rcx, -80(%rbp)                 ## 8-byte Spill
	xorl	%ecx, %ecx
LBB0_33:                                ## =>This Inner Loop Header: Depth=1
	movl	%esi, -68(%rbp)                 ## 4-byte Spill
	movq	-56(%rbp), %rdi
	movslq	%ecx, %rcx
	leaq	(%rax,%rcx,4), %rsi
	addq	$4, %rsi
	movl	%ebx, %edx
	callq	_memcpy
	movl	%ebx, -48(%rbp)
	movl	$1, -44(%rbp)
	movq	%r13, %rdi
	leaq	-56(%rbp), %rsi
	callq	_si2157_cmd_execute
	testl	%eax, %eax
	jne	LBB0_43
## %bb.34:                              ##   in Loop: Header=BB0_33 Depth=1
	movl	-68(%rbp), %esi                 ## 4-byte Reload
	cmpl	$18, %esi
	jl	LBB0_37
## %bb.35:                              ##   in Loop: Header=BB0_33 Depth=1
	addl	$-17, %esi
	movq	-64(%rbp), %rax
	movl	(%rax), %ecx
	movq	8(%rax), %rax
	movq	-80(%rbp), %rdi                 ## 8-byte Reload
	leal	(%rdi,%rcx), %edx
	subl	%esi, %ecx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %ebx
	addl	$17, %edi
	movq	%rdi, -80(%rbp)                 ## 8-byte Spill
	movq	_SI2157_ARGLEN@GOTPCREL(%rip), %rdx
	cmpl	(%rdx), %ebx
	jle	LBB0_33
LBB0_36:
	leaq	L_.str.13(%rip), %rsi
	xorl	%ebx, %ebx
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_err
	jmp	LBB0_29
LBB0_43:
	movl	%eax, %ebx
	leaq	L_.str.14(%rip), %rsi
	movq	%r13, %rdi
	movl	%eax, %edx
	xorl	%eax, %eax
	callq	_dev_err
	jmp	LBB0_44
LBB0_37:
	movq	-64(%rbp), %rdi
LBB0_38:
	callq	_release_firmware
LBB0_39:
	movq	-56(%rbp), %rdi
	leaq	L_.str.15(%rip), %rsi
	movl	$2, %edx
	callq	_memcpy
	movabsq	$4294967298, %rax               ## imm = 0x100000002
	movq	%rax, -48(%rbp)
	leaq	-56(%rbp), %rsi
	movq	%r13, %rdi
	callq	_si2157_cmd_execute
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_45
## %bb.40:
	movq	-56(%rbp), %rdi
	leaq	L_.str.16(%rip), %rsi
	movl	$1, %edx
	callq	_memcpy
	movabsq	$42949672961, %rax              ## imm = 0xA00000001
	movq	%rax, -48(%rbp)
	leaq	-56(%rbp), %rsi
	movq	%r13, %rdi
	callq	_si2157_cmd_execute
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_45
## %bb.41:
	movq	-56(%rbp), %rax
	movl	24(%rax), %edx
	movl	28(%rax), %ecx
	movl	32(%rax), %r8d
	leaq	L_.str.17(%rip), %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_info
	jmp	LBB0_42
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"\n"

	.section	__TEXT,__const
l_.str.1:                               ## @.str.1
	.asciz	"\025\000\006\007"

	.section	__TEXT,__cstring,cstring_literals
L_.str.2:                               ## @.str.2
	.asciz	"if_frequency kHz=%u\n"

	.comm	_SI2157_CHIPTYPE_SI2146,8,3     ## @SI2157_CHIPTYPE_SI2146
	.section	__TEXT,__const
l_.str.3:                               ## @.str.3
	.asciz	"\300\005\001\000\000\013\000\000\001"

	.comm	_SI2157_CHIPTYPE_SI2141,8,3     ## @SI2157_CHIPTYPE_SI2141
l_.str.4:                               ## @.str.4
	.asciz	"\300\000\r\016\000\001\001\001\001\003"

	.section	__TEXT,__literal16,16byte_literals
L_.str.5:                               ## @.str.5
	.asciz	"\300\000\f\000\000\001\001\001\001\001\001\002\000\000\001"

	.section	__TEXT,__literal8,8byte_literals
L_.str.6:                               ## @.str.6
	.asciz	"\300\b\001\002\000\000\001"

	.section	__TEXT,__cstring,cstring_literals
L_.str.7:                               ## @.str.7
	.asciz	"\002"

	.comm	_SI2158_A20_FIRMWARE,8,3        ## @SI2158_A20_FIRMWARE
	.comm	_SI2141_A10_FIRMWARE,8,3        ## @SI2141_A10_FIRMWARE
	.comm	_SI2157_A30_FIRMWARE,8,3        ## @SI2157_A30_FIRMWARE
L_.str.8:                               ## @.str.8
	.asciz	"unknown chip version Si21%d-%c%c%c\n"

	.comm	_EINVAL,4,2                     ## @EINVAL
L_.str.9:                               ## @.str.9
	.asciz	"found a 'Silicon Labs Si21%d-%c%c%c'\n"

L_.str.10:                              ## @.str.10
	.asciz	"firmware file '%s' not found\n"

L_.str.11:                              ## @.str.11
	.asciz	"firmware file '%s' is invalid\n"

L_.str.12:                              ## @.str.12
	.asciz	"downloading firmware from file '%s'\n"

	.comm	_SI2157_ARGLEN,4,2              ## @SI2157_ARGLEN
L_.str.13:                              ## @.str.13
	.asciz	"Bad firmware length\n"

L_.str.14:                              ## @.str.14
	.asciz	"firmware download failed %d\n"

L_.str.15:                              ## @.str.15
	.asciz	"\001\001"

L_.str.16:                              ## @.str.16
	.asciz	"\021"

L_.str.17:                              ## @.str.17
	.asciz	"firmware version: %c.%c.%d\n"

	.comm	_FE_SCALE_NOT_AVAILABLE,4,2     ## @FE_SCALE_NOT_AVAILABLE
L_.str.18:                              ## @.str.18
	.asciz	"failed=%d\n"

	.no_dead_strip	_si2157_init
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3                               ; -- Begin function si2157_init
lCPI0_0:
	.long	1                               ; 0x1
	.long	13                              ; 0xd
lCPI0_1:
	.long	2                               ; 0x2
	.long	1                               ; 0x1
lCPI0_2:
	.long	1                               ; 0x1
	.long	10                              ; 0xa
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_si2157_init:                           ; @si2157_init
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #144
	.cfi_def_cfa_offset 144
	stp	x26, x25, [sp, #64]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #80]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #96]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #112]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #128]            ; 16-byte Folded Spill
	add	x29, sp, #128
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	mov	x21, x0
	ldr	x19, [x0, #16]
	mov	x0, x19
	bl	_i2c_get_clientdata
	mov	x20, x0
Lloh0:
	adrp	x1, l_.str@PAGE
Lloh1:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x19
	bl	_dev_dbg
Lloh2:
	adrp	x1, l_.str.1@PAGE
Lloh3:
	add	x1, x1, l_.str.1@PAGEOFF
	mov	w2, #4
	bl	_memcpy
	movi.2s	v0, #4
	str	d0, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	mov	x22, x0
	cbz	w0, LBB0_3
LBB0_1:
	str	x22, [sp]
Lloh4:
	adrp	x1, l_.str.18@PAGE
Lloh5:
	add	x1, x1, l_.str.18@PAGEOFF
	mov	x0, x19
	bl	_dev_dbg
LBB0_2:
	mov	x0, x22
	ldp	x29, x30, [sp, #128]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #112]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #96]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #80]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #64]             ; 16-byte Folded Reload
	add	sp, sp, #144
	ret
LBB0_3:
	ldr	x8, [sp, #48]
	ldp	w9, w8, [x8, #8]
	orr	w22, w9, w8, lsl #8
	str	x22, [sp]
Lloh6:
	adrp	x1, l_.str.2@PAGE
Lloh7:
	add	x1, x1, l_.str.2@PAGEOFF
	mov	x0, x19
	bl	_dev_dbg
	ldrsw	x8, [x20]
	mov	w9, #19923
	movk	w9, #4194, lsl #16
	mul	x8, x8, x9
	lsr	x9, x8, #63
	asr	x8, x8, #38
	add	w8, w8, w9
	cmp	w22, w8
	b.ne	LBB0_5
LBB0_4:
	mov	w23, #1
	str	w23, [x21]
Lloh8:
	adrp	x8, _FE_SCALE_NOT_AVAILABLE@GOTPAGE
Lloh9:
	ldr	x8, [x8, _FE_SCALE_NOT_AVAILABLE@GOTPAGEOFF]
Lloh10:
	ldr	w8, [x8]
	ldr	x9, [x21, #8]
	str	w8, [x9]
	add	x19, x20, #20
	mov	w0, #1000
	bl	_msecs_to_jiffies
	mov	x1, x0
	mov	x0, x19
	bl	_schedule_delayed_work
	mov	w22, #0
	str	w23, [x20, #16]
	b	LBB0_2
LBB0_5:
	ldr	x8, [x20, #8]
Lloh11:
	adrp	x9, _SI2157_CHIPTYPE_SI2146@GOTPAGE
Lloh12:
	ldr	x9, [x9, _SI2157_CHIPTYPE_SI2146@GOTPAGEOFF]
Lloh13:
	ldr	x9, [x9]
	cmp	x8, x9
	b.ne	LBB0_7
; %bb.6:
	ldr	x0, [sp, #48]
Lloh14:
	adrp	x1, l_.str.3@PAGE
Lloh15:
	add	x1, x1, l_.str.3@PAGEOFF
	mov	w22, #9
	mov	w2, #9
	b	LBB0_10
LBB0_7:
Lloh16:
	adrp	x9, _SI2157_CHIPTYPE_SI2141@GOTPAGE
Lloh17:
	ldr	x9, [x9, _SI2157_CHIPTYPE_SI2141@GOTPAGEOFF]
Lloh18:
	ldr	x9, [x9]
	ldr	x0, [sp, #48]
	cmp	x8, x9
	b.ne	LBB0_9
; %bb.8:
Lloh19:
	adrp	x1, l_.str.4@PAGE
Lloh20:
	add	x1, x1, l_.str.4@PAGEOFF
	mov	w22, #10
	mov	w2, #10
	b	LBB0_10
LBB0_9:
Lloh21:
	adrp	x1, l_.str.5@PAGE
Lloh22:
	add	x1, x1, l_.str.5@PAGEOFF
	mov	w22, #15
	mov	w2, #15
LBB0_10:
	bl	_memcpy
	mov	w8, #1
	stp	w22, w8, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	mov	x22, x0
	cbnz	w0, LBB0_1
; %bb.11:
	ldr	x8, [x20, #8]
Lloh23:
	adrp	x9, _SI2157_CHIPTYPE_SI2141@GOTPAGE
Lloh24:
	ldr	x9, [x9, _SI2157_CHIPTYPE_SI2141@GOTPAGEOFF]
Lloh25:
	ldr	x9, [x9]
	cmp	x8, x9
	b.ne	LBB0_13
; %bb.12:
	ldr	x0, [sp, #48]
Lloh26:
	adrp	x1, l_.str.6@PAGE
Lloh27:
	add	x1, x1, l_.str.6@PAGEOFF
	mov	w22, #7
	mov	w2, #7
	bl	_memcpy
	str	w22, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	mov	x22, x0
	cbnz	w0, LBB0_1
LBB0_13:
	ldr	x0, [sp, #48]
Lloh28:
	adrp	x1, l_.str.7@PAGE
Lloh29:
	add	x1, x1, l_.str.7@PAGEOFF
	mov	w2, #1
	bl	_memcpy
Lloh30:
	adrp	x8, lCPI0_0@PAGE
Lloh31:
	ldr	d0, [x8, lCPI0_0@PAGEOFF]
	str	d0, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	mov	x22, x0
	cbnz	w0, LBB0_1
; %bb.14:
	ldr	x11, [sp, #48]
	ldp	w9, w8, [x11, #4]
	lsl	w10, w8, #16
	orr	w12, w10, w9, lsl #24
	ldp	w10, w11, [x11, #12]
	orr	w12, w12, w10, lsl #8
	orr	w12, w12, w11
	mov	w13, #12847
	movk	w13, #16688, lsl #16
	cmp	w12, w13
	b.le	LBB0_18
; %bb.15:
Lloh32:
	adrp	x13, _SI2158_A20_FIRMWARE@GOTPAGE
Lloh33:
	ldr	x13, [x13, _SI2158_A20_FIRMWARE@GOTPAGEOFF]
	mov	w14, #12847
	movk	w14, #16698, lsl #16
	cmp	w12, w14
	b.gt	LBB0_23
; %bb.16:
	mov	w14, #12848
	movk	w14, #16688, lsl #16
	cmp	w12, w14
	b.eq	LBB0_27
; %bb.17:
	mov	w13, #13104
	movk	w13, #16697, lsl #16
	b	LBB0_21
LBB0_18:
	mov	w13, #12592
	movk	w13, #16681, lsl #16
	cmp	w12, w13
	b.eq	LBB0_26
; %bb.19:
	mov	w13, #12592
	movk	w13, #16686, lsl #16
	cmp	w12, w13
	b.eq	LBB0_22
; %bb.20:
	mov	w13, #13104
	movk	w13, #16687, lsl #16
LBB0_21:
	cmp	w12, w13
	b.ne	LBB0_30
LBB0_22:
                                        ; kill: def $w11 killed $w11 killed $x11 def $x11
                                        ; kill: def $w10 killed $w10 killed $x10 def $x10
	stp	x10, x11, [sp, #16]
                                        ; kill: def $w9 killed $w9 killed $x9 def $x9
                                        ; kill: def $w8 killed $w8 killed $x8 def $x8
	stp	x8, x9, [sp]
Lloh34:
	adrp	x1, l_.str.9@PAGE
Lloh35:
	add	x1, x1, l_.str.9@PAGEOFF
	mov	x0, x19
	bl	_dev_info
	b	LBB0_45
LBB0_23:
	mov	w14, #12848
	movk	w14, #16698, lsl #16
	cmp	w12, w14
	b.eq	LBB0_27
; %bb.24:
	mov	w13, #13104
	movk	w13, #16717, lsl #16
	cmp	w12, w13
	b.ne	LBB0_30
; %bb.25:
Lloh36:
	adrp	x13, _SI2157_A30_FIRMWARE@GOTPAGE
Lloh37:
	ldr	x13, [x13, _SI2157_A30_FIRMWARE@GOTPAGEOFF]
	b	LBB0_27
LBB0_26:
Lloh38:
	adrp	x13, _SI2141_A10_FIRMWARE@GOTPAGE
Lloh39:
	ldr	x13, [x13, _SI2141_A10_FIRMWARE@GOTPAGEOFF]
LBB0_27:
	ldr	x23, [x13]
	stp	x10, x11, [sp, #16]
	stp	x8, x9, [sp]
Lloh40:
	adrp	x1, l_.str.9@PAGE
Lloh41:
	add	x1, x1, l_.str.9@PAGEOFF
	mov	x0, x19
	bl	_dev_info
	cbz	x23, LBB0_45
; %bb.28:
	add	x0, sp, #40
	mov	x1, x23
	mov	x2, x19
	bl	_request_firmware
	cbz	w0, LBB0_31
; %bb.29:
	mov	x22, x0
	str	x23, [sp]
Lloh42:
	adrp	x1, l_.str.10@PAGE
Lloh43:
	add	x1, x1, l_.str.10@PAGEOFF
	mov	x0, x19
	bl	_dev_err
	b	LBB0_1
LBB0_30:
                                        ; kill: def $w11 killed $w11 killed $x11 def $x11
                                        ; kill: def $w10 killed $w10 killed $x10 def $x10
	stp	x10, x11, [sp, #16]
                                        ; kill: def $w9 killed $w9 killed $x9 def $x9
                                        ; kill: def $w8 killed $w8 killed $x8 def $x8
	stp	x8, x9, [sp]
Lloh44:
	adrp	x1, l_.str.8@PAGE
Lloh45:
	add	x1, x1, l_.str.8@PAGEOFF
	mov	x0, x19
	bl	_dev_err
Lloh46:
	adrp	x8, _EINVAL@GOTPAGE
Lloh47:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
Lloh48:
	ldr	w8, [x8]
	neg	w22, w8
	b	LBB0_1
LBB0_31:
	ldr	x8, [sp, #40]
	ldr	w8, [x8]
	mov	w9, #61681
	movk	w9, #61680, lsl #16
	mov	w10, #34695
	movk	w10, #1927, lsl #16
	madd	w8, w8, w9, w10
	mov	w9, #252645135
	cmp	w8, w9
	b.lo	LBB0_35
; %bb.32:
	str	x23, [sp]
Lloh49:
	adrp	x1, l_.str.11@PAGE
Lloh50:
	add	x1, x1, l_.str.11@PAGEOFF
LBB0_33:
	mov	x0, x19
	bl	_dev_err
Lloh51:
	adrp	x8, _EINVAL@GOTPAGE
Lloh52:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
Lloh53:
	ldr	w8, [x8]
	neg	w22, w8
LBB0_34:
	ldr	x0, [sp, #40]
	bl	_release_firmware
	b	LBB0_1
LBB0_35:
	str	x23, [sp]
Lloh54:
	adrp	x1, l_.str.12@PAGE
Lloh55:
	add	x1, x1, l_.str.12@PAGEOFF
	mov	x0, x19
	bl	_dev_info
	ldr	x0, [sp, #40]
	ldr	w23, [x0]
	cmp	w23, #1
	b.lt	LBB0_44
; %bb.36:
	ldr	x8, [x0, #8]
	ldr	w22, [x8]
Lloh56:
	adrp	x24, _SI2157_ARGLEN@GOTPAGE
Lloh57:
	ldr	x24, [x24, _SI2157_ARGLEN@GOTPAGEOFF]
	ldr	w9, [x24]
	cmp	w22, w9
	b.gt	LBB0_41
; %bb.37:
	mov	w9, #0
	mov	w10, #17
	sub	w25, w10, w23
	mov	w26, #1
LBB0_38:                                ; =>This Inner Loop Header: Depth=1
	ldr	x0, [sp, #48]
	add	w9, w9, #1
	add	x1, x8, w9, sxtw #2
	mov	x2, x22
	bl	_memcpy
	stp	w22, w26, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	cbnz	w0, LBB0_42
; %bb.39:                               ;   in Loop: Header=BB0_38 Depth=1
	cmp	w23, #18
	b.lt	LBB0_43
; %bb.40:                               ;   in Loop: Header=BB0_38 Depth=1
	sub	w23, w23, #17
	ldr	x8, [sp, #40]
	ldr	w10, [x8]
	ldr	x8, [x8, #8]
	sub	w9, w10, w23
	add	w10, w25, w10
	ldr	w22, [x8, w10, sxtw #2]
	ldr	w10, [x24]
	add	w25, w25, #17
	cmp	w22, w10
	b.le	LBB0_38
LBB0_41:
Lloh58:
	adrp	x1, l_.str.13@PAGE
Lloh59:
	add	x1, x1, l_.str.13@PAGEOFF
	b	LBB0_33
LBB0_42:
	mov	x22, x0
	str	x22, [sp]
Lloh60:
	adrp	x1, l_.str.14@PAGE
Lloh61:
	add	x1, x1, l_.str.14@PAGEOFF
	mov	x0, x19
	bl	_dev_err
                                        ; kill: def $w22 killed $w22 killed $x22 def $x22
	b	LBB0_34
LBB0_43:
	ldr	x0, [sp, #40]
LBB0_44:
	bl	_release_firmware
LBB0_45:
	ldr	x0, [sp, #48]
Lloh62:
	adrp	x1, l_.str.15@PAGE
Lloh63:
	add	x1, x1, l_.str.15@PAGEOFF
	mov	w2, #2
	bl	_memcpy
Lloh64:
	adrp	x8, lCPI0_1@PAGE
Lloh65:
	ldr	d0, [x8, lCPI0_1@PAGEOFF]
	str	d0, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	mov	x22, x0
	cbnz	w0, LBB0_1
; %bb.46:
	ldr	x0, [sp, #48]
Lloh66:
	adrp	x1, l_.str.16@PAGE
Lloh67:
	add	x1, x1, l_.str.16@PAGEOFF
	mov	w2, #1
	bl	_memcpy
Lloh68:
	adrp	x8, lCPI0_2@PAGE
Lloh69:
	ldr	d0, [x8, lCPI0_2@PAGEOFF]
	str	d0, [sp, #56]
	add	x1, sp, #48
	mov	x0, x19
	bl	_si2157_cmd_execute
	mov	x22, x0
	cbnz	w0, LBB0_1
; %bb.47:
	ldr	x8, [sp, #48]
	ldp	w9, w10, [x8, #24]
	ldr	w8, [x8, #32]
	stp	x10, x8, [sp, #8]
	str	x9, [sp]
Lloh70:
	adrp	x1, l_.str.17@PAGE
Lloh71:
	add	x1, x1, l_.str.17@PAGEOFF
	mov	x0, x19
	bl	_dev_info
	b	LBB0_4
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpAdd	Lloh4, Lloh5
	.loh AdrpAdd	Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.loh AdrpAdd	Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpAdd	Lloh19, Lloh20
	.loh AdrpAdd	Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpAdd	Lloh26, Lloh27
	.loh AdrpLdr	Lloh30, Lloh31
	.loh AdrpAdd	Lloh28, Lloh29
	.loh AdrpLdrGot	Lloh32, Lloh33
	.loh AdrpAdd	Lloh34, Lloh35
	.loh AdrpLdrGot	Lloh36, Lloh37
	.loh AdrpLdrGot	Lloh38, Lloh39
	.loh AdrpAdd	Lloh40, Lloh41
	.loh AdrpAdd	Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh46, Lloh47, Lloh48
	.loh AdrpAdd	Lloh44, Lloh45
	.loh AdrpAdd	Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpAdd	Lloh54, Lloh55
	.loh AdrpLdrGot	Lloh56, Lloh57
	.loh AdrpAdd	Lloh58, Lloh59
	.loh AdrpAdd	Lloh60, Lloh61
	.loh AdrpLdr	Lloh64, Lloh65
	.loh AdrpAdd	Lloh62, Lloh63
	.loh AdrpLdr	Lloh68, Lloh69
	.loh AdrpAdd	Lloh66, Lloh67
	.loh AdrpAdd	Lloh70, Lloh71
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"\n"

	.section	__TEXT,__const
l_.str.1:                               ; @.str.1
	.asciz	"\025\000\006\007"

	.section	__TEXT,__cstring,cstring_literals
l_.str.2:                               ; @.str.2
	.asciz	"if_frequency kHz=%u\n"

	.comm	_SI2157_CHIPTYPE_SI2146,8,3     ; @SI2157_CHIPTYPE_SI2146
	.section	__TEXT,__const
l_.str.3:                               ; @.str.3
	.asciz	"\300\005\001\000\000\013\000\000\001"

	.comm	_SI2157_CHIPTYPE_SI2141,8,3     ; @SI2157_CHIPTYPE_SI2141
l_.str.4:                               ; @.str.4
	.asciz	"\300\000\r\016\000\001\001\001\001\003"

	.section	__TEXT,__literal16,16byte_literals
l_.str.5:                               ; @.str.5
	.asciz	"\300\000\f\000\000\001\001\001\001\001\001\002\000\000\001"

	.section	__TEXT,__literal8,8byte_literals
l_.str.6:                               ; @.str.6
	.asciz	"\300\b\001\002\000\000\001"

	.section	__TEXT,__cstring,cstring_literals
l_.str.7:                               ; @.str.7
	.asciz	"\002"

	.comm	_SI2158_A20_FIRMWARE,8,3        ; @SI2158_A20_FIRMWARE
	.comm	_SI2141_A10_FIRMWARE,8,3        ; @SI2141_A10_FIRMWARE
	.comm	_SI2157_A30_FIRMWARE,8,3        ; @SI2157_A30_FIRMWARE
l_.str.8:                               ; @.str.8
	.asciz	"unknown chip version Si21%d-%c%c%c\n"

	.comm	_EINVAL,4,2                     ; @EINVAL
l_.str.9:                               ; @.str.9
	.asciz	"found a 'Silicon Labs Si21%d-%c%c%c'\n"

l_.str.10:                              ; @.str.10
	.asciz	"firmware file '%s' not found\n"

l_.str.11:                              ; @.str.11
	.asciz	"firmware file '%s' is invalid\n"

l_.str.12:                              ; @.str.12
	.asciz	"downloading firmware from file '%s'\n"

	.comm	_SI2157_ARGLEN,4,2              ; @SI2157_ARGLEN
l_.str.13:                              ; @.str.13
	.asciz	"Bad firmware length\n"

l_.str.14:                              ; @.str.14
	.asciz	"firmware download failed %d\n"

l_.str.15:                              ; @.str.15
	.asciz	"\001\001"

l_.str.16:                              ; @.str.16
	.asciz	"\021"

l_.str.17:                              ; @.str.17
	.asciz	"firmware version: %c.%c.%d\n"

	.comm	_FE_SCALE_NOT_AVAILABLE,4,2     ; @FE_SCALE_NOT_AVAILABLE
l_.str.18:                              ; @.str.18
	.asciz	"failed=%d\n"

	.no_dead_strip	_si2157_init
.subsections_via_symbols
