	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function ab8500_probe
_ab8500_probe:                          ## @ab8500_probe
	.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, %r12
	callq	_platform_get_device_id
	movq	%rax, %r13
	movq	_AB8500_VERSION_UNDEFINED@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	movq	8(%r12), %rbx
	movq	_GFP_KERNEL@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r12, %rdi
	movl	$88, %esi
	callq	_devm_kzalloc
	testq	%rax, %rax
	je	LBB0_24
## %bb.1:
	movq	%rax, %r14
	movq	%rbx, -64(%rbp)                 ## 8-byte Spill
	movq	%r12, 40(%rax)
	movq	_IORESOURCE_IRQ@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	xorl	%ebx, %ebx
	movq	%r12, %rdi
	xorl	%edx, %edx
	callq	_platform_get_resource
	testq	%rax, %rax
	je	LBB0_10
## %bb.2:
	movl	(%rax), %eax
	movl	%eax, 52(%r14)
	movq	_ab8500_prcmu_read@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 84(%r14)
	movq	_ab8500_prcmu_write@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 80(%r14)
	movq	_ab8500_prcmu_write_masked@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 76(%r14)
	leaq	72(%r14), %rdi
	callq	_mutex_init
	leaq	68(%r14), %rdi
	callq	_mutex_init
	leaq	64(%r14), %rdi
	xorl	%esi, %esi
	callq	_atomic_set
	movq	%r12, -56(%rbp)                 ## 8-byte Spill
	movq	%r12, %rdi
	movq	%r14, %rsi
	callq	_platform_set_drvdata
	testq	%r13, %r13
	movq	%r14, %r12
	je	LBB0_4
## %bb.3:
	movl	(%r13), %r15d
LBB0_4:
	movq	_AB8500_VERSION_UNDEFINED@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r15d
	jne	LBB0_7
## %bb.5:
	movq	_AB8500_MISC@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_AB8500_IC_NAME_REG@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	leaq	-44(%rbp), %rcx
	movq	%r12, %rdi
	callq	_get_register_interruptible
	testl	%eax, %eax
	js	LBB0_27
## %bb.6:
	movl	-44(%rbp), %r15d
LBB0_7:
	movl	%r15d, (%r12)
	movq	_AB8500_MISC@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_AB8500_REV_REG@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	leaq	-44(%rbp), %rcx
	movq	%r12, %rdi
	callq	_get_register_interruptible
	testl	%eax, %eax
	js	LBB0_11
## %bb.8:
	movl	-44(%rbp), %r8d
	movl	%r8d, 4(%r12)
	movq	40(%r12), %rdi
	movq	_ab8500_version_str@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movslq	(%r12), %rcx
	movl	(%rax,%rcx,4), %edx
	movl	%r8d, %ecx
	sarl	$4, %ecx
	andl	$15, %r8d
	leaq	L_.str.18(%rip), %rsi
	xorl	%eax, %eax
	callq	_dev_info
	movq	%r12, %rdi
	callq	_is_ab8540
	testq	%rax, %rax
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	je	LBB0_12
## %bb.9:
	movq	_AB8540_NUM_IRQ_REGS@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r12, %r13
	addq	$8, %r13
	movl	%esi, 8(%r12)
	movq	_AB8540_IT_LATCHHIER_NUM@GOTPCREL(%rip), %rax
	movq	_ab8540_irq_regoffset@GOTPCREL(%rip), %rcx
	movq	_GFP_KERNEL@GOTPCREL(%rip), %rbx
	jmp	LBB0_15
LBB0_10:
	leaq	L_.str.16(%rip), %rsi
	movq	%r12, %rdi
	callq	_dev_err
	movq	_ENODEV@GOTPCREL(%rip), %rax
	jmp	LBB0_25
LBB0_12:
	movq	%r12, %rdi
	callq	_is_ab9540
	testq	%rax, %rax
	movq	_GFP_KERNEL@GOTPCREL(%rip), %rbx
	jne	LBB0_14
## %bb.13:
	movq	%r12, %rdi
	callq	_is_ab8505
	testq	%rax, %rax
	je	LBB0_72
LBB0_14:
	movq	_AB9540_NUM_IRQ_REGS@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r12, %r13
	addq	$8, %r13
	movl	%esi, 8(%r12)
	movq	_AB8500_IT_LATCHHIER_NUM@GOTPCREL(%rip), %rax
	movq	_ab9540_irq_regoffset@GOTPCREL(%rip), %rcx
LBB0_15:
	movq	(%rcx), %rcx
	movq	%rcx, 16(%r12)
	movq	(%rax), %rax
	movq	%rax, 56(%r12)
	movl	(%rbx), %edx
	movq	%r14, %rdi
	callq	_devm_kzalloc
	movq	%rax, 24(%r12)
	testq	%rax, %rax
	je	LBB0_24
## %bb.16:
	movl	8(%r12), %esi
	movl	(%rbx), %edx
	movq	%r14, %rdi
	callq	_devm_kzalloc
	movq	%rax, 32(%r12)
	testq	%rax, %rax
	je	LBB0_24
## %bb.17:
	movq	_AB8500_RTC@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_AB8500_SWITCH_OFF_STATUS@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	leaq	-44(%rbp), %rcx
	movq	%r12, %rdi
	callq	_get_register_interruptible
	testl	%eax, %eax
	js	LBB0_11
## %bb.18:
	movq	40(%r12), %rdi
	movl	-44(%rbp), %edx
	leaq	L_.str.19(%rip), %rsi
	xorl	%eax, %eax
	callq	_dev_info
	cmpl	$0, -44(%rbp)
	je	LBB0_31
## %bb.19:
	leaq	_ab8500_probe.switch_off_status(%rip), %r14
	movq	%r14, %rdi
	callq	_ARRAY_SIZE
	leaq	L_.str.21(%rip), %rdi
	testl	%eax, %eax
	jle	LBB0_32
## %bb.20:
	movq	%r14, %rbx
	xorl	%r15d, %r15d
	jmp	LBB0_22
	.p2align	4, 0x90
LBB0_21:                                ##   in Loop: Header=BB0_22 Depth=1
	sarl	%eax
	movl	%eax, -44(%rbp)
	incq	%r15
	movq	%r14, %rdi
	callq	_ARRAY_SIZE
	cltq
	addq	$8, %rbx
	cmpq	%rax, %r15
	jge	LBB0_30
LBB0_22:                                ## =>This Inner Loop Header: Depth=1
	movl	-44(%rbp), %eax
	testb	$1, %al
	je	LBB0_21
## %bb.23:                              ##   in Loop: Header=BB0_22 Depth=1
	movq	(%rbx), %rsi
	leaq	L_.str.20(%rip), %rdi
	xorl	%eax, %eax
	callq	_pr_cont
	movl	-44(%rbp), %eax
	jmp	LBB0_21
LBB0_24:
	movq	_ENOMEM@GOTPCREL(%rip), %rax
	xorl	%ebx, %ebx
LBB0_25:
	subl	(%rax), %ebx
LBB0_26:
	movl	%ebx, %eax
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_27:
	movl	%eax, %ebx
	leaq	L_.str.17(%rip), %rsi
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
LBB0_28:
	callq	_dev_err
	jmp	LBB0_26
LBB0_30:
	leaq	L_.str.21(%rip), %rdi
	jmp	LBB0_32
LBB0_31:
	leaq	L_.str.22(%rip), %rdi
LBB0_32:
	xorl	%eax, %eax
	callq	_pr_cont
	movq	_AB8500_SYS_CTRL1_BLOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_AB8500_TURN_ON_STATUS@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	leaq	-44(%rbp), %rcx
	movq	%r12, %rdi
	callq	_get_register_interruptible
	testl	%eax, %eax
	js	LBB0_11
## %bb.33:
	movq	40(%r12), %rdi
	movl	-44(%rbp), %edx
	leaq	L_.str.23(%rip), %rsi
	xorl	%eax, %eax
	callq	_dev_info
	cmpl	$0, -44(%rbp)
	je	LBB0_41
## %bb.34:
	leaq	_ab8500_probe.turn_on_status(%rip), %r14
	movq	%r14, %rdi
	callq	_ARRAY_SIZE
	leaq	L_.str.21(%rip), %rdi
	testl	%eax, %eax
	jle	LBB0_42
## %bb.35:
	movq	%r14, %rbx
	xorl	%r15d, %r15d
	jmp	LBB0_37
	.p2align	4, 0x90
LBB0_36:                                ##   in Loop: Header=BB0_37 Depth=1
	sarl	%eax
	movl	%eax, -44(%rbp)
	incq	%r15
	movq	%r14, %rdi
	callq	_ARRAY_SIZE
	cltq
	addq	$8, %rbx
	cmpq	%rax, %r15
	jge	LBB0_40
LBB0_37:                                ## =>This Inner Loop Header: Depth=1
	movl	-44(%rbp), %eax
	testb	$1, %al
	je	LBB0_36
## %bb.38:                              ##   in Loop: Header=BB0_37 Depth=1
	movq	(%rbx), %rsi
	leaq	L_.str.24(%rip), %rdi
	xorl	%eax, %eax
	callq	_pr_cont
	movl	-44(%rbp), %eax
	jmp	LBB0_36
LBB0_40:
	leaq	L_.str.21(%rip), %rdi
	jmp	LBB0_42
LBB0_41:
	leaq	L_.str.25(%rip), %rdi
LBB0_42:
	xorl	%eax, %eax
	callq	_pr_cont
	movq	%r12, %rdi
	callq	_is_ab9540
	testq	%rax, %rax
	je	LBB0_47
## %bb.43:
	movq	_AB8500_CHARGER@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_AB8500_CH_USBCH_STAT1_REG@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	leaq	-44(%rbp), %rcx
	movq	%r12, %rdi
	callq	_get_register_interruptible
	testl	%eax, %eax
	js	LBB0_11
## %bb.44:
	movl	-44(%rbp), %eax
	movq	_VBUS_DET_DBNC1@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_47
## %bb.45:
	movq	_VBUS_DET_DBNC100@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_47
## %bb.46:
	movq	_AB8500_POW_KEY_1_ON@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	notl	%edi
	movq	_AB8500_VBUS_DET@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_ab8500_override_turn_on_stat
LBB0_47:
	cmpl	$0, (%r13)
	jle	LBB0_55
## %bb.48:
	xorl	%ebx, %ebx
	movq	_AB8500_INTERRUPT@GOTPCREL(%rip), %r15
	movq	_AB8500_IT_MASK1_REG@GOTPCREL(%rip), %r14
	jmp	LBB0_51
	.p2align	4, 0x90
LBB0_49:                                ##   in Loop: Header=BB0_51 Depth=1
	movq	%r12, %rdi
	callq	_is_ab8500_1p1_or_earlier
	testq	%rax, %rax
	je	LBB0_53
LBB0_50:                                ##   in Loop: Header=BB0_51 Depth=1
	incq	%rbx
	movslq	(%r13), %rax
	cmpq	%rax, %rbx
	jge	LBB0_55
LBB0_51:                                ## =>This Inner Loop Header: Depth=1
	movq	16(%r12), %rax
	movl	(%rax,%rbx,4), %eax
	cmpl	$11, %eax
	je	LBB0_49
## %bb.52:                              ##   in Loop: Header=BB0_51 Depth=1
	testl	%eax, %eax
	jns	LBB0_54
	jmp	LBB0_50
LBB0_53:                                ##   in Loop: Header=BB0_51 Depth=1
	movq	16(%r12), %rax
	movl	(%rax,%rbx,4), %eax
	testl	%eax, %eax
	js	LBB0_50
LBB0_54:                                ##   in Loop: Header=BB0_51 Depth=1
	movl	(%r15), %esi
	movl	%eax, %edx
	movq	_AB8500_IT_LATCH1_REG@GOTPCREL(%rip), %rax
	addq	(%rax), %rdx
	movq	%r12, %rdi
	leaq	-44(%rbp), %rcx
	callq	_get_register_interruptible
	movl	(%r15), %esi
	movq	16(%r12), %rax
	movslq	(%rax,%rbx,4), %rdx
	addq	(%r14), %rdx
	movq	%r12, %rdi
	movl	$255, %ecx
	callq	_set_register_interruptible
	jmp	LBB0_50
LBB0_11:
	movl	%eax, %ebx
	jmp	LBB0_26
LBB0_55:
	movq	40(%r12), %rdi
	movq	_ab8500_ops@GOTPCREL(%rip), %rsi
	callq	_abx500_register_ops
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_26
## %bb.56:
	cmpl	$0, (%r13)
	jle	LBB0_59
## %bb.57:
	movq	24(%r12), %rax
	movq	32(%r12), %rcx
	xorl	%edx, %edx
LBB0_58:                                ## =>This Inner Loop Header: Depth=1
	movl	$255, (%rcx,%rdx,4)
	movl	$255, (%rax,%rdx,4)
	incq	%rdx
	movslq	(%r13), %rsi
	cmpq	%rsi, %rdx
	jl	LBB0_58
LBB0_59:
	movq	%r12, %rdi
	movq	-64(%rbp), %rsi                 ## 8-byte Reload
	callq	_ab8500_irq_init
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_26
## %bb.60:
	movl	52(%r12), %esi
	movq	_ab8500_hierarchical_irq@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_IRQF_ONESHOT@GOTPCREL(%rip), %rax
	movq	_IRQF_NO_SUSPEND@GOTPCREL(%rip), %rdx
	movl	(%rdx), %r8d
	orl	(%rax), %r8d
	movq	%r12, (%rsp)
	leaq	L_.str.26(%rip), %r9
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	xorl	%edx, %edx
	callq	_devm_request_threaded_irq
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_26
## %bb.61:
	movq	%r12, %rdi
	callq	_is_ab9540
	testq	%rax, %rax
	je	LBB0_74
## %bb.62:
	movq	40(%r12), %r14
	movq	_ab9540_devs@GOTPCREL(%rip), %rax
LBB0_63:
	movq	(%rax), %rbx
	movq	%rbx, %rdi
	callq	_ARRAY_SIZE
	movl	48(%r12), %ecx
	movl	%ecx, (%rsp)
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%rbx, %rdx
	movl	%eax, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_mfd_add_devices
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_26
## %bb.64:
	movq	_no_bm@GOTPCREL(%rip), %rax
	cmpl	$0, (%rax)
	jne	LBB0_67
## %bb.65:
	movq	40(%r12), %r14
	movq	_ab8500_bm_devs@GOTPCREL(%rip), %rax
	movq	(%rax), %rbx
	movq	%rbx, %rdi
	callq	_ARRAY_SIZE
	movl	48(%r12), %ecx
	movl	%ecx, (%rsp)
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%rbx, %rdx
	movl	%eax, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_mfd_add_devices
	testl	%eax, %eax
	je	LBB0_67
## %bb.66:
	movq	40(%r12), %rdi
	leaq	L_.str.27(%rip), %rsi
	callq	_dev_err
LBB0_67:
	movq	%r12, %rdi
	callq	_is_ab8505
	testq	%rax, %rax
	jne	LBB0_69
## %bb.68:
	movq	%r12, %rdi
	callq	_is_ab9540
	testq	%rax, %rax
	je	LBB0_70
LBB0_69:
	movl	4(%r12), %eax
	movq	_AB8500_CUT2P0@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jge	LBB0_81
LBB0_70:
	movq	%r12, %rdi
	callq	_is_ab8540
	testq	%rax, %rax
	jne	LBB0_81
## %bb.71:
	movq	_ab8500_attr_group@GOTPCREL(%rip), %rsi
	jmp	LBB0_82
LBB0_72:
	movq	_AB8500_NUM_IRQ_REGS@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r12, %r13
	addq	$8, %r13
	movl	%esi, 8(%r12)
	movq	_AB8500_IT_LATCHHIER_NUM@GOTPCREL(%rip), %rax
	movq	_ab8500_irq_regoffset@GOTPCREL(%rip), %rcx
	jmp	LBB0_15
LBB0_74:
	movq	%r12, %rdi
	callq	_is_ab8540
	testq	%rax, %rax
	je	LBB0_78
## %bb.75:
	movq	40(%r12), %r14
	movq	_ab8540_devs@GOTPCREL(%rip), %rax
	movq	(%rax), %rbx
	movq	%rbx, %rdi
	callq	_ARRAY_SIZE
	movl	48(%r12), %ecx
	movl	%ecx, (%rsp)
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%rbx, %rdx
	movl	%eax, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_mfd_add_devices
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_26
## %bb.76:
	movq	%r12, %rdi
	callq	_is_ab8540_1p2_or_earlier
	movq	40(%r12), %r14
	testq	%rax, %rax
	je	LBB0_90
## %bb.77:
	movq	_ab8540_cut1_devs@GOTPCREL(%rip), %rax
	jmp	LBB0_63
LBB0_81:
	movq	_ab9540_attr_group@GOTPCREL(%rip), %rsi
LBB0_82:
	movq	40(%r12), %rdi
	callq	_sysfs_create_group
	movl	%eax, %ebx
	movq	%r12, %rdi
	callq	_is_ab8505
	testq	%rax, %rax
	jne	LBB0_84
## %bb.83:
	movq	%r12, %rdi
	callq	_is_ab9540
	testq	%rax, %rax
	je	LBB0_86
LBB0_84:
	movl	4(%r12), %eax
	movq	_AB8500_CUT2P0@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jl	LBB0_86
## %bb.85:
	movq	40(%r12), %rdi
	movq	_ab8505_attr_group@GOTPCREL(%rip), %rsi
	callq	_sysfs_create_group
	movl	%eax, %ebx
LBB0_86:
	testl	%ebx, %ebx
	je	LBB0_88
## %bb.87:
	movq	40(%r12), %rdi
	leaq	L_.str.28(%rip), %rsi
	jmp	LBB0_28
LBB0_78:
	movq	%r12, %rdi
	callq	_is_ab8505
	movq	40(%r12), %r14
	testq	%rax, %rax
	je	LBB0_89
## %bb.79:
	movq	_ab8505_devs@GOTPCREL(%rip), %rax
	jmp	LBB0_63
LBB0_88:
	xorl	%ebx, %ebx
	jmp	LBB0_26
LBB0_89:
	movq	_ab8500_devs@GOTPCREL(%rip), %rax
	jmp	LBB0_63
LBB0_90:
	movq	_ab8540_cut2_devs@GOTPCREL(%rip), %rax
	jmp	LBB0_63
	.cfi_endproc
                                        ## -- End function
	.section	__DATA,__const
	.p2align	4                               ## @ab8500_probe.switch_off_status
_ab8500_probe.switch_off_status:
	.quad	L_.str
	.quad	L_.str.1
	.quad	L_.str.2
	.quad	L_.str.3
	.quad	L_.str.4
	.quad	L_.str.5
	.quad	L_.str.6
	.quad	L_.str.7

	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Swoff bit programming"

L_.str.1:                               ## @.str.1
	.asciz	"Thermal protection activation"

L_.str.2:                               ## @.str.2
	.asciz	"Vbat lower then BattOk falling threshold"

L_.str.3:                               ## @.str.3
	.asciz	"Watchdog expired"

L_.str.4:                               ## @.str.4
	.asciz	"Non presence of 32kHz clock"

L_.str.5:                               ## @.str.5
	.asciz	"Battery level lower than power on reset threshold"

L_.str.6:                               ## @.str.6
	.asciz	"Power on key 1 pressed longer than 10 seconds"

L_.str.7:                               ## @.str.7
	.asciz	"DB8500 thermal shutdown"

	.section	__DATA,__const
	.p2align	4                               ## @ab8500_probe.turn_on_status
_ab8500_probe.turn_on_status:
	.quad	L_.str.8
	.quad	L_.str.9
	.quad	L_.str.10
	.quad	L_.str.11
	.quad	L_.str.12
	.quad	L_.str.13
	.quad	L_.str.14
	.quad	L_.str.15

	.section	__TEXT,__cstring,cstring_literals
L_.str.8:                               ## @.str.8
	.asciz	"Battery rising (Vbat)"

L_.str.9:                               ## @.str.9
	.asciz	"Power On Key 1 dbF"

L_.str.10:                              ## @.str.10
	.asciz	"Power On Key 2 dbF"

L_.str.11:                              ## @.str.11
	.asciz	"RTC Alarm"

L_.str.12:                              ## @.str.12
	.asciz	"Main Charger Detect"

L_.str.13:                              ## @.str.13
	.asciz	"Vbus Detect (USB)"

L_.str.14:                              ## @.str.14
	.asciz	"USB ID Detect"

L_.str.15:                              ## @.str.15
	.asciz	"UART Factory Mode Detect"

	.comm	_AB8500_VERSION_UNDEFINED,4,2   ## @AB8500_VERSION_UNDEFINED
	.comm	_GFP_KERNEL,4,2                 ## @GFP_KERNEL
	.comm	_ENOMEM,4,2                     ## @ENOMEM
	.comm	_IORESOURCE_IRQ,4,2             ## @IORESOURCE_IRQ
L_.str.16:                              ## @.str.16
	.asciz	"no IRQ resource\n"

	.comm	_ENODEV,4,2                     ## @ENODEV
	.comm	_ab8500_prcmu_read,4,2          ## @ab8500_prcmu_read
	.comm	_ab8500_prcmu_write,4,2         ## @ab8500_prcmu_write
	.comm	_ab8500_prcmu_write_masked,4,2  ## @ab8500_prcmu_write_masked
	.comm	_AB8500_MISC,4,2                ## @AB8500_MISC
	.comm	_AB8500_IC_NAME_REG,8,3         ## @AB8500_IC_NAME_REG
L_.str.17:                              ## @.str.17
	.asciz	"could not probe HW\n"

	.comm	_AB8500_REV_REG,8,3             ## @AB8500_REV_REG
L_.str.18:                              ## @.str.18
	.asciz	"detected chip, %s rev. %1x.%1x\n"

	.comm	_ab8500_version_str,8,3         ## @ab8500_version_str
	.comm	_AB8540_NUM_IRQ_REGS,4,2        ## @AB8540_NUM_IRQ_REGS
	.comm	_ab8540_irq_regoffset,8,3       ## @ab8540_irq_regoffset
	.comm	_AB8540_IT_LATCHHIER_NUM,8,3    ## @AB8540_IT_LATCHHIER_NUM
	.comm	_AB9540_NUM_IRQ_REGS,4,2        ## @AB9540_NUM_IRQ_REGS
	.comm	_ab9540_irq_regoffset,8,3       ## @ab9540_irq_regoffset
	.comm	_AB8500_IT_LATCHHIER_NUM,8,3    ## @AB8500_IT_LATCHHIER_NUM
	.comm	_AB8500_NUM_IRQ_REGS,4,2        ## @AB8500_NUM_IRQ_REGS
	.comm	_ab8500_irq_regoffset,8,3       ## @ab8500_irq_regoffset
	.comm	_AB8500_RTC,4,2                 ## @AB8500_RTC
	.comm	_AB8500_SWITCH_OFF_STATUS,8,3   ## @AB8500_SWITCH_OFF_STATUS
L_.str.19:                              ## @.str.19
	.asciz	"switch off cause(s) (%#x): "

L_.str.20:                              ## @.str.20
	.asciz	" \"%s\""

L_.str.21:                              ## @.str.21
	.asciz	"\n"

L_.str.22:                              ## @.str.22
	.asciz	" None\n"

	.comm	_AB8500_SYS_CTRL1_BLOCK,4,2     ## @AB8500_SYS_CTRL1_BLOCK
	.comm	_AB8500_TURN_ON_STATUS,8,3      ## @AB8500_TURN_ON_STATUS
L_.str.23:                              ## @.str.23
	.asciz	"turn on reason(s) (%#x): "

L_.str.24:                              ## @.str.24
	.asciz	"\"%s\" "

L_.str.25:                              ## @.str.25
	.asciz	"None\n"

	.comm	_AB8500_CHARGER,4,2             ## @AB8500_CHARGER
	.comm	_AB8500_CH_USBCH_STAT1_REG,8,3  ## @AB8500_CH_USBCH_STAT1_REG
	.comm	_VBUS_DET_DBNC1,4,2             ## @VBUS_DET_DBNC1
	.comm	_VBUS_DET_DBNC100,4,2           ## @VBUS_DET_DBNC100
	.comm	_AB8500_POW_KEY_1_ON,4,2        ## @AB8500_POW_KEY_1_ON
	.comm	_AB8500_VBUS_DET,4,2            ## @AB8500_VBUS_DET
	.comm	_AB8500_INTERRUPT,4,2           ## @AB8500_INTERRUPT
	.comm	_AB8500_IT_LATCH1_REG,8,3       ## @AB8500_IT_LATCH1_REG
	.comm	_AB8500_IT_MASK1_REG,8,3        ## @AB8500_IT_MASK1_REG
	.comm	_ab8500_ops,4,2                 ## @ab8500_ops
	.comm	_ab8500_hierarchical_irq,4,2    ## @ab8500_hierarchical_irq
	.comm	_IRQF_ONESHOT,4,2               ## @IRQF_ONESHOT
	.comm	_IRQF_NO_SUSPEND,4,2            ## @IRQF_NO_SUSPEND
L_.str.26:                              ## @.str.26
	.asciz	"ab8500"

	.comm	_ab9540_devs,8,3                ## @ab9540_devs
	.comm	_ab8540_devs,8,3                ## @ab8540_devs
	.comm	_ab8540_cut1_devs,8,3           ## @ab8540_cut1_devs
	.comm	_ab8540_cut2_devs,8,3           ## @ab8540_cut2_devs
	.comm	_ab8505_devs,8,3                ## @ab8505_devs
	.comm	_ab8500_devs,8,3                ## @ab8500_devs
	.comm	_no_bm,4,2                      ## @no_bm
	.comm	_ab8500_bm_devs,8,3             ## @ab8500_bm_devs
L_.str.27:                              ## @.str.27
	.asciz	"error adding bm devices\n"

	.comm	_AB8500_CUT2P0,4,2              ## @AB8500_CUT2P0
	.comm	_ab9540_attr_group,4,2          ## @ab9540_attr_group
	.comm	_ab8500_attr_group,4,2          ## @ab8500_attr_group
	.comm	_ab8505_attr_group,4,2          ## @ab8505_attr_group
L_.str.28:                              ## @.str.28
	.asciz	"error creating sysfs entries\n"

	.no_dead_strip	_ab8500_probe
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function ab8500_probe
_ab8500_probe:                          ; @ab8500_probe
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #112
	.cfi_def_cfa_offset 112
	stp	x26, x25, [sp, #32]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #48]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #64]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #80]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #96]             ; 16-byte Folded Spill
	add	x29, sp, #96
	.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	x20, x0
	bl	_platform_get_device_id
	mov	x22, x0
Lloh0:
	adrp	x25, _AB8500_VERSION_UNDEFINED@GOTPAGE
Lloh1:
	ldr	x25, [x25, _AB8500_VERSION_UNDEFINED@GOTPAGEOFF]
	ldr	w24, [x25]
	ldr	x21, [x20, #8]
Lloh2:
	adrp	x23, _GFP_KERNEL@GOTPAGE
Lloh3:
	ldr	x23, [x23, _GFP_KERNEL@GOTPAGEOFF]
	ldr	w2, [x23]
	mov	x0, x20
	mov	w1, #88
	bl	_devm_kzalloc
	cbz	x0, LBB0_23
; %bb.1:
	mov	x19, x0
	str	x20, [x0, #40]
Lloh4:
	adrp	x8, _IORESOURCE_IRQ@GOTPAGE
Lloh5:
	ldr	x8, [x8, _IORESOURCE_IRQ@GOTPAGEOFF]
Lloh6:
	ldr	w1, [x8]
	mov	x0, x20
	mov	w2, #0
	bl	_platform_get_resource
	cbz	x0, LBB0_10
; %bb.2:
	ldr	w8, [x0]
Lloh7:
	adrp	x9, _ab8500_prcmu_read@GOTPAGE
Lloh8:
	ldr	x9, [x9, _ab8500_prcmu_read@GOTPAGEOFF]
	str	w8, [x19, #52]
Lloh9:
	ldr	w8, [x9]
	str	w8, [x19, #84]
Lloh10:
	adrp	x8, _ab8500_prcmu_write@GOTPAGE
Lloh11:
	ldr	x8, [x8, _ab8500_prcmu_write@GOTPAGEOFF]
Lloh12:
	ldr	w8, [x8]
Lloh13:
	adrp	x9, _ab8500_prcmu_write_masked@GOTPAGE
Lloh14:
	ldr	x9, [x9, _ab8500_prcmu_write_masked@GOTPAGEOFF]
Lloh15:
	ldr	w9, [x9]
	stp	w9, w8, [x19, #76]
	add	x0, x19, #72
	bl	_mutex_init
	add	x0, x19, #68
	bl	_mutex_init
	add	x0, x19, #64
	mov	w1, #0
	bl	_atomic_set
	mov	x0, x20
	mov	x1, x19
	bl	_platform_set_drvdata
	cbz	x22, LBB0_4
; %bb.3:
	ldr	w24, [x22]
LBB0_4:
	ldr	w8, [x25]
Lloh16:
	adrp	x25, _AB8500_MISC@GOTPAGE
Lloh17:
	ldr	x25, [x25, _AB8500_MISC@GOTPAGEOFF]
	cmp	w24, w8
	b.ne	LBB0_7
; %bb.5:
	ldr	w1, [x25]
Lloh18:
	adrp	x8, _AB8500_IC_NAME_REG@GOTPAGE
Lloh19:
	ldr	x8, [x8, _AB8500_IC_NAME_REG@GOTPAGEOFF]
Lloh20:
	ldr	x2, [x8]
	add	x3, sp, #28
	mov	x0, x19
	bl	_get_register_interruptible
	tbnz	w0, #31, LBB0_26
; %bb.6:
	ldr	w24, [sp, #28]
LBB0_7:
	str	w24, [x19]
	ldr	w1, [x25]
Lloh21:
	adrp	x8, _AB8500_REV_REG@GOTPAGE
Lloh22:
	ldr	x8, [x8, _AB8500_REV_REG@GOTPAGEOFF]
Lloh23:
	ldr	x2, [x8]
	add	x3, sp, #28
	mov	x0, x19
	bl	_get_register_interruptible
	tbnz	w0, #31, LBB0_53
; %bb.8:
	ldr	w8, [sp, #28]
	str	w8, [x19, #4]
	ldr	x0, [x19, #40]
Lloh24:
	adrp	x9, _ab8500_version_str@GOTPAGE
Lloh25:
	ldr	x9, [x9, _ab8500_version_str@GOTPAGEOFF]
Lloh26:
	ldr	x9, [x9]
	ldrsw	x10, [x19]
	ldr	w2, [x9, x10, lsl #2]
	asr	w9, w8, #4
	and	w8, w8, #0xf
	stp	x9, x8, [sp]
Lloh27:
	adrp	x1, l_.str.18@PAGE
Lloh28:
	add	x1, x1, l_.str.18@PAGEOFF
	bl	_dev_info
	mov	x0, x19
	bl	_is_ab8540
	cbz	x0, LBB0_11
; %bb.9:
Lloh29:
	adrp	x8, _AB8540_NUM_IRQ_REGS@GOTPAGE
Lloh30:
	ldr	x8, [x8, _AB8540_NUM_IRQ_REGS@GOTPAGEOFF]
Lloh31:
	ldr	w1, [x8]
	mov	x25, x19
	str	w1, [x25, #8]!
Lloh32:
	adrp	x8, _AB8540_IT_LATCHHIER_NUM@GOTPAGE
Lloh33:
	ldr	x8, [x8, _AB8540_IT_LATCHHIER_NUM@GOTPAGEOFF]
Lloh34:
	adrp	x9, _ab8540_irq_regoffset@GOTPAGE
Lloh35:
	ldr	x9, [x9, _ab8540_irq_regoffset@GOTPAGEOFF]
	b	LBB0_14
LBB0_10:
Lloh36:
	adrp	x1, l_.str.16@PAGE
Lloh37:
	add	x1, x1, l_.str.16@PAGEOFF
	mov	x0, x20
	bl	_dev_err
Lloh38:
	adrp	x8, _ENODEV@GOTPAGE
Lloh39:
	ldr	x8, [x8, _ENODEV@GOTPAGEOFF]
	b	LBB0_24
LBB0_11:
	mov	x0, x19
	bl	_is_ab9540
	cbnz	x0, LBB0_13
; %bb.12:
	mov	x0, x19
	bl	_is_ab8505
	cbz	x0, LBB0_38
LBB0_13:
Lloh40:
	adrp	x8, _AB9540_NUM_IRQ_REGS@GOTPAGE
Lloh41:
	ldr	x8, [x8, _AB9540_NUM_IRQ_REGS@GOTPAGEOFF]
Lloh42:
	ldr	w1, [x8]
	mov	x25, x19
	str	w1, [x25, #8]!
Lloh43:
	adrp	x8, _AB8500_IT_LATCHHIER_NUM@GOTPAGE
Lloh44:
	ldr	x8, [x8, _AB8500_IT_LATCHHIER_NUM@GOTPAGEOFF]
Lloh45:
	adrp	x9, _ab9540_irq_regoffset@GOTPAGE
Lloh46:
	ldr	x9, [x9, _ab9540_irq_regoffset@GOTPAGEOFF]
LBB0_14:
	ldr	x9, [x9]
	str	x9, [x19, #16]
	ldr	x8, [x8]
	str	x8, [x19, #56]
	ldr	w2, [x23]
	mov	x0, x20
	bl	_devm_kzalloc
	str	x0, [x19, #24]
	cbz	x0, LBB0_23
; %bb.15:
	ldr	w1, [x19, #8]
	ldr	w2, [x23]
	mov	x0, x20
	bl	_devm_kzalloc
	str	x0, [x19, #32]
	cbz	x0, LBB0_23
; %bb.16:
Lloh47:
	adrp	x8, _AB8500_RTC@GOTPAGE
Lloh48:
	ldr	x8, [x8, _AB8500_RTC@GOTPAGEOFF]
Lloh49:
	ldr	w1, [x8]
Lloh50:
	adrp	x8, _AB8500_SWITCH_OFF_STATUS@GOTPAGE
Lloh51:
	ldr	x8, [x8, _AB8500_SWITCH_OFF_STATUS@GOTPAGEOFF]
Lloh52:
	ldr	x2, [x8]
	add	x3, sp, #28
	mov	x0, x19
	bl	_get_register_interruptible
	tbnz	w0, #31, LBB0_53
; %bb.17:
	ldr	x0, [x19, #40]
	ldr	w2, [sp, #28]
Lloh53:
	adrp	x1, l_.str.19@PAGE
Lloh54:
	add	x1, x1, l_.str.19@PAGEOFF
	bl	_dev_info
	ldr	w8, [sp, #28]
	cbz	w8, LBB0_28
; %bb.18:
Lloh55:
	adrp	x23, _ab8500_probe.switch_off_status@PAGE
Lloh56:
	add	x23, x23, _ab8500_probe.switch_off_status@PAGEOFF
	mov	x0, x23
	bl	_ARRAY_SIZE
	cmp	w0, #1
	b.lt	LBB0_29
; %bb.19:
	mov	x26, #0
Lloh57:
	adrp	x22, l_.str.21@PAGE
Lloh58:
	add	x22, x22, l_.str.21@PAGEOFF
Lloh59:
	adrp	x24, l_.str.20@PAGE
Lloh60:
	add	x24, x24, l_.str.20@PAGEOFF
	b	LBB0_21
LBB0_20:                                ;   in Loop: Header=BB0_21 Depth=1
	asr	w8, w8, #1
	str	w8, [sp, #28]
	add	x26, x26, #1
	mov	x0, x23
	bl	_ARRAY_SIZE
	cmp	x26, w0, sxtw
	b.ge	LBB0_30
LBB0_21:                                ; =>This Inner Loop Header: Depth=1
	ldr	w8, [sp, #28]
	tbz	w8, #0, LBB0_20
; %bb.22:                               ;   in Loop: Header=BB0_21 Depth=1
	ldr	x8, [x23, x26, lsl #3]
	str	x8, [sp]
	mov	x0, x24
	bl	_pr_cont
	ldr	w8, [sp, #28]
	b	LBB0_20
LBB0_23:
Lloh61:
	adrp	x8, _ENOMEM@GOTPAGE
Lloh62:
	ldr	x8, [x8, _ENOMEM@GOTPAGEOFF]
LBB0_24:
	ldr	w8, [x8]
	neg	w22, w8
LBB0_25:
	mov	x0, x22
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	add	sp, sp, #112
	ret
LBB0_26:
	mov	x22, x0
Lloh63:
	adrp	x1, l_.str.17@PAGE
Lloh64:
	add	x1, x1, l_.str.17@PAGEOFF
	mov	x0, x20
LBB0_27:
	bl	_dev_err
	b	LBB0_25
LBB0_28:
Lloh65:
	adrp	x22, l_.str.22@PAGE
Lloh66:
	add	x22, x22, l_.str.22@PAGEOFF
	b	LBB0_30
LBB0_29:
Lloh67:
	adrp	x22, l_.str.21@PAGE
Lloh68:
	add	x22, x22, l_.str.21@PAGEOFF
LBB0_30:
	mov	x0, x22
	bl	_pr_cont
Lloh69:
	adrp	x8, _AB8500_SYS_CTRL1_BLOCK@GOTPAGE
Lloh70:
	ldr	x8, [x8, _AB8500_SYS_CTRL1_BLOCK@GOTPAGEOFF]
Lloh71:
	ldr	w1, [x8]
Lloh72:
	adrp	x8, _AB8500_TURN_ON_STATUS@GOTPAGE
Lloh73:
	ldr	x8, [x8, _AB8500_TURN_ON_STATUS@GOTPAGEOFF]
Lloh74:
	ldr	x2, [x8]
	add	x3, sp, #28
	mov	x0, x19
	bl	_get_register_interruptible
	tbnz	w0, #31, LBB0_53
; %bb.31:
	ldr	x0, [x19, #40]
	ldr	w2, [sp, #28]
Lloh75:
	adrp	x1, l_.str.23@PAGE
Lloh76:
	add	x1, x1, l_.str.23@PAGEOFF
	bl	_dev_info
	ldr	w8, [sp, #28]
	cbz	w8, LBB0_37
; %bb.32:
Lloh77:
	adrp	x23, _ab8500_probe.turn_on_status@PAGE
Lloh78:
	add	x23, x23, _ab8500_probe.turn_on_status@PAGEOFF
	mov	x0, x23
	bl	_ARRAY_SIZE
	cmp	w0, #1
	b.lt	LBB0_39
; %bb.33:
	mov	x26, #0
Lloh79:
	adrp	x22, l_.str.21@PAGE
Lloh80:
	add	x22, x22, l_.str.21@PAGEOFF
Lloh81:
	adrp	x24, l_.str.24@PAGE
Lloh82:
	add	x24, x24, l_.str.24@PAGEOFF
	b	LBB0_35
LBB0_34:                                ;   in Loop: Header=BB0_35 Depth=1
	asr	w8, w8, #1
	str	w8, [sp, #28]
	add	x26, x26, #1
	mov	x0, x23
	bl	_ARRAY_SIZE
	cmp	x26, w0, sxtw
	b.ge	LBB0_40
LBB0_35:                                ; =>This Inner Loop Header: Depth=1
	ldr	w8, [sp, #28]
	tbz	w8, #0, LBB0_34
; %bb.36:                               ;   in Loop: Header=BB0_35 Depth=1
	ldr	x8, [x23, x26, lsl #3]
	str	x8, [sp]
	mov	x0, x24
	bl	_pr_cont
	ldr	w8, [sp, #28]
	b	LBB0_34
LBB0_37:
Lloh83:
	adrp	x22, l_.str.25@PAGE
Lloh84:
	add	x22, x22, l_.str.25@PAGEOFF
	b	LBB0_40
LBB0_38:
Lloh85:
	adrp	x8, _AB8500_NUM_IRQ_REGS@GOTPAGE
Lloh86:
	ldr	x8, [x8, _AB8500_NUM_IRQ_REGS@GOTPAGEOFF]
Lloh87:
	ldr	w1, [x8]
	mov	x25, x19
	str	w1, [x25, #8]!
Lloh88:
	adrp	x8, _AB8500_IT_LATCHHIER_NUM@GOTPAGE
Lloh89:
	ldr	x8, [x8, _AB8500_IT_LATCHHIER_NUM@GOTPAGEOFF]
Lloh90:
	adrp	x9, _ab8500_irq_regoffset@GOTPAGE
Lloh91:
	ldr	x9, [x9, _ab8500_irq_regoffset@GOTPAGEOFF]
	b	LBB0_14
LBB0_39:
Lloh92:
	adrp	x22, l_.str.21@PAGE
Lloh93:
	add	x22, x22, l_.str.21@PAGEOFF
LBB0_40:
	mov	x0, x22
	bl	_pr_cont
	mov	x0, x19
	bl	_is_ab9540
	cbz	x0, LBB0_45
; %bb.41:
Lloh94:
	adrp	x8, _AB8500_CHARGER@GOTPAGE
Lloh95:
	ldr	x8, [x8, _AB8500_CHARGER@GOTPAGEOFF]
Lloh96:
	ldr	w1, [x8]
Lloh97:
	adrp	x8, _AB8500_CH_USBCH_STAT1_REG@GOTPAGE
Lloh98:
	ldr	x8, [x8, _AB8500_CH_USBCH_STAT1_REG@GOTPAGEOFF]
Lloh99:
	ldr	x2, [x8]
	add	x3, sp, #28
	mov	x0, x19
	bl	_get_register_interruptible
	tbnz	w0, #31, LBB0_53
; %bb.42:
	ldr	w8, [sp, #28]
Lloh100:
	adrp	x9, _VBUS_DET_DBNC1@GOTPAGE
Lloh101:
	ldr	x9, [x9, _VBUS_DET_DBNC1@GOTPAGEOFF]
Lloh102:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_45
; %bb.43:
Lloh103:
	adrp	x9, _VBUS_DET_DBNC100@GOTPAGE
Lloh104:
	ldr	x9, [x9, _VBUS_DET_DBNC100@GOTPAGEOFF]
Lloh105:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_45
; %bb.44:
Lloh106:
	adrp	x8, _AB8500_POW_KEY_1_ON@GOTPAGE
Lloh107:
	ldr	x8, [x8, _AB8500_POW_KEY_1_ON@GOTPAGEOFF]
Lloh108:
	ldr	w8, [x8]
	mvn	w0, w8
Lloh109:
	adrp	x8, _AB8500_VBUS_DET@GOTPAGE
Lloh110:
	ldr	x8, [x8, _AB8500_VBUS_DET@GOTPAGEOFF]
Lloh111:
	ldr	w1, [x8]
	bl	_ab8500_override_turn_on_stat
LBB0_45:
	ldr	w8, [x25]
	cmp	w8, #1
	b.lt	LBB0_54
; %bb.46:
	mov	x22, #0
Lloh112:
	adrp	x23, _AB8500_INTERRUPT@GOTPAGE
Lloh113:
	ldr	x23, [x23, _AB8500_INTERRUPT@GOTPAGEOFF]
Lloh114:
	adrp	x24, _AB8500_IT_LATCH1_REG@GOTPAGE
Lloh115:
	ldr	x24, [x24, _AB8500_IT_LATCH1_REG@GOTPAGEOFF]
Lloh116:
	adrp	x26, _AB8500_IT_MASK1_REG@GOTPAGE
Lloh117:
	ldr	x26, [x26, _AB8500_IT_MASK1_REG@GOTPAGEOFF]
	b	LBB0_49
LBB0_47:                                ;   in Loop: Header=BB0_49 Depth=1
	mov	x0, x19
	bl	_is_ab8500_1p1_or_earlier
	cbz	x0, LBB0_51
LBB0_48:                                ;   in Loop: Header=BB0_49 Depth=1
	add	x22, x22, #1
	ldrsw	x8, [x25]
	cmp	x22, x8
	b.ge	LBB0_54
LBB0_49:                                ; =>This Inner Loop Header: Depth=1
	ldr	x8, [x19, #16]
	ldr	w8, [x8, x22, lsl #2]
	cmp	w8, #11
	b.eq	LBB0_47
; %bb.50:                               ;   in Loop: Header=BB0_49 Depth=1
	tbz	w8, #31, LBB0_52
	b	LBB0_48
LBB0_51:                                ;   in Loop: Header=BB0_49 Depth=1
	ldr	x8, [x19, #16]
	ldr	w8, [x8, x22, lsl #2]
	tbnz	w8, #31, LBB0_48
LBB0_52:                                ;   in Loop: Header=BB0_49 Depth=1
	ldr	w1, [x23]
	ldr	x9, [x24]
	add	x2, x9, w8, uxtw
	add	x3, sp, #28
	mov	x0, x19
	bl	_get_register_interruptible
	ldr	w1, [x23]
	ldr	x8, [x26]
	ldr	x9, [x19, #16]
	ldrsw	x9, [x9, x22, lsl #2]
	add	x2, x8, x9
	mov	x0, x19
	mov	w3, #255
	bl	_set_register_interruptible
	b	LBB0_48
LBB0_53:
	mov	x22, x0
	b	LBB0_25
LBB0_54:
	ldr	x0, [x19, #40]
Lloh118:
	adrp	x1, _ab8500_ops@GOTPAGE
Lloh119:
	ldr	x1, [x1, _ab8500_ops@GOTPAGEOFF]
	bl	_abx500_register_ops
	mov	x22, x0
	cbnz	w0, LBB0_25
; %bb.55:
	ldr	w8, [x25]
	cmp	w8, #1
	b.lt	LBB0_58
; %bb.56:
	mov	x8, #0
	ldp	x10, x9, [x19, #24]
	mov	w11, #255
LBB0_57:                                ; =>This Inner Loop Header: Depth=1
	lsl	x12, x8, #2
	str	w11, [x9, x12]
	str	w11, [x10, x12]
	add	x8, x8, #1
	ldrsw	x12, [x25]
	cmp	x8, x12
	b.lt	LBB0_57
LBB0_58:
	mov	x0, x19
	mov	x1, x21
	bl	_ab8500_irq_init
	mov	x22, x0
	cbnz	w0, LBB0_25
; %bb.59:
	ldr	w1, [x19, #52]
Lloh120:
	adrp	x8, _ab8500_hierarchical_irq@GOTPAGE
Lloh121:
	ldr	x8, [x8, _ab8500_hierarchical_irq@GOTPAGEOFF]
Lloh122:
	adrp	x9, _IRQF_ONESHOT@GOTPAGE
Lloh123:
	ldr	x9, [x9, _IRQF_ONESHOT@GOTPAGEOFF]
Lloh124:
	ldr	w3, [x8]
Lloh125:
	ldr	w8, [x9]
Lloh126:
	adrp	x9, _IRQF_NO_SUSPEND@GOTPAGE
Lloh127:
	ldr	x9, [x9, _IRQF_NO_SUSPEND@GOTPAGEOFF]
Lloh128:
	ldr	w9, [x9]
	orr	w4, w9, w8
Lloh129:
	adrp	x5, l_.str.26@PAGE
Lloh130:
	add	x5, x5, l_.str.26@PAGEOFF
	mov	x0, x20
	mov	x2, #0
	mov	x6, x19
	bl	_devm_request_threaded_irq
	mov	x22, x0
	cbnz	w0, LBB0_25
; %bb.60:
	mov	x0, x19
	bl	_is_ab9540
	cbz	x0, LBB0_70
; %bb.61:
	ldr	x20, [x19, #40]
Lloh131:
	adrp	x8, _ab9540_devs@GOTPAGE
Lloh132:
	ldr	x8, [x8, _ab9540_devs@GOTPAGEOFF]
LBB0_62:
	ldr	x21, [x8]
	mov	x0, x21
	bl	_ARRAY_SIZE
	mov	x3, x0
	ldr	w6, [x19, #48]
	mov	x0, x20
	mov	w1, #0
	mov	x2, x21
	mov	x4, #0
	mov	w5, #0
	bl	_mfd_add_devices
	mov	x22, x0
	cbnz	w0, LBB0_25
; %bb.63:
Lloh133:
	adrp	x8, _no_bm@GOTPAGE
Lloh134:
	ldr	x8, [x8, _no_bm@GOTPAGEOFF]
Lloh135:
	ldr	w8, [x8]
	cbnz	w8, LBB0_66
; %bb.64:
	ldr	x20, [x19, #40]
Lloh136:
	adrp	x8, _ab8500_bm_devs@GOTPAGE
Lloh137:
	ldr	x8, [x8, _ab8500_bm_devs@GOTPAGEOFF]
Lloh138:
	ldr	x21, [x8]
	mov	x0, x21
	bl	_ARRAY_SIZE
	mov	x3, x0
	ldr	w6, [x19, #48]
	mov	x0, x20
	mov	w1, #0
	mov	x2, x21
	mov	x4, #0
	mov	w5, #0
	bl	_mfd_add_devices
	cbz	w0, LBB0_66
; %bb.65:
	ldr	x0, [x19, #40]
Lloh139:
	adrp	x1, l_.str.27@PAGE
Lloh140:
	add	x1, x1, l_.str.27@PAGEOFF
	bl	_dev_err
LBB0_66:
	mov	x0, x19
	bl	_is_ab8505
Lloh141:
	adrp	x20, _AB8500_CUT2P0@GOTPAGE
Lloh142:
	ldr	x20, [x20, _AB8500_CUT2P0@GOTPAGEOFF]
	cbnz	x0, LBB0_68
; %bb.67:
	mov	x0, x19
	bl	_is_ab9540
	cbz	x0, LBB0_69
LBB0_68:
	ldr	w8, [x19, #4]
	ldr	w9, [x20]
	cmp	w8, w9
	b.ge	LBB0_76
LBB0_69:
Lloh143:
	adrp	x21, _ab9540_attr_group@GOTPAGE
Lloh144:
	ldr	x21, [x21, _ab9540_attr_group@GOTPAGEOFF]
	mov	x0, x19
	bl	_is_ab8540
Lloh145:
	adrp	x8, _ab8500_attr_group@GOTPAGE
Lloh146:
	ldr	x8, [x8, _ab8500_attr_group@GOTPAGEOFF]
	cmp	x0, #0
	csel	x1, x8, x21, eq
	b	LBB0_77
LBB0_70:
	mov	x0, x19
	bl	_is_ab8540
	cbz	x0, LBB0_74
; %bb.71:
	ldr	x20, [x19, #40]
Lloh147:
	adrp	x8, _ab8540_devs@GOTPAGE
Lloh148:
	ldr	x8, [x8, _ab8540_devs@GOTPAGEOFF]
Lloh149:
	ldr	x21, [x8]
	mov	x0, x21
	bl	_ARRAY_SIZE
	mov	x3, x0
	ldr	w6, [x19, #48]
	mov	x0, x20
	mov	w1, #0
	mov	x2, x21
	mov	x4, #0
	mov	w5, #0
	bl	_mfd_add_devices
	mov	x22, x0
	cbnz	w0, LBB0_25
; %bb.72:
	mov	x0, x19
	bl	_is_ab8540_1p2_or_earlier
	ldr	x20, [x19, #40]
	cbz	x0, LBB0_84
; %bb.73:
Lloh150:
	adrp	x8, _ab8540_cut1_devs@GOTPAGE
Lloh151:
	ldr	x8, [x8, _ab8540_cut1_devs@GOTPAGEOFF]
	b	LBB0_62
LBB0_74:
	mov	x0, x19
	bl	_is_ab8505
	ldr	x20, [x19, #40]
	cbz	x0, LBB0_83
; %bb.75:
Lloh152:
	adrp	x8, _ab8505_devs@GOTPAGE
Lloh153:
	ldr	x8, [x8, _ab8505_devs@GOTPAGEOFF]
	b	LBB0_62
LBB0_76:
Lloh154:
	adrp	x1, _ab9540_attr_group@GOTPAGE
Lloh155:
	ldr	x1, [x1, _ab9540_attr_group@GOTPAGEOFF]
LBB0_77:
	ldr	x0, [x19, #40]
	bl	_sysfs_create_group
	mov	x22, x0
	mov	x0, x19
	bl	_is_ab8505
	cbnz	x0, LBB0_79
; %bb.78:
	mov	x0, x19
	bl	_is_ab9540
	cbz	x0, LBB0_81
LBB0_79:
	ldr	w8, [x19, #4]
	ldr	w9, [x20]
	cmp	w8, w9
	b.lt	LBB0_81
; %bb.80:
	ldr	x0, [x19, #40]
Lloh156:
	adrp	x1, _ab8505_attr_group@GOTPAGE
Lloh157:
	ldr	x1, [x1, _ab8505_attr_group@GOTPAGEOFF]
	bl	_sysfs_create_group
	mov	x22, x0
LBB0_81:
	cbz	w22, LBB0_25
; %bb.82:
	ldr	x0, [x19, #40]
Lloh158:
	adrp	x1, l_.str.28@PAGE
Lloh159:
	add	x1, x1, l_.str.28@PAGEOFF
	b	LBB0_27
LBB0_83:
Lloh160:
	adrp	x8, _ab8500_devs@GOTPAGE
Lloh161:
	ldr	x8, [x8, _ab8500_devs@GOTPAGEOFF]
	b	LBB0_62
LBB0_84:
Lloh162:
	adrp	x8, _ab8540_cut2_devs@GOTPAGE
Lloh163:
	ldr	x8, [x8, _ab8540_cut2_devs@GOTPAGEOFF]
	b	LBB0_62
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpAdd	Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGot	Lloh34, Lloh35
	.loh AdrpLdrGot	Lloh32, Lloh33
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh38, Lloh39
	.loh AdrpAdd	Lloh36, Lloh37
	.loh AdrpLdrGot	Lloh45, Lloh46
	.loh AdrpLdrGot	Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh40, Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh50, Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.loh AdrpAdd	Lloh53, Lloh54
	.loh AdrpAdd	Lloh55, Lloh56
	.loh AdrpAdd	Lloh59, Lloh60
	.loh AdrpAdd	Lloh57, Lloh58
	.loh AdrpLdrGot	Lloh61, Lloh62
	.loh AdrpAdd	Lloh63, Lloh64
	.loh AdrpAdd	Lloh65, Lloh66
	.loh AdrpAdd	Lloh67, Lloh68
	.loh AdrpLdrGotLdr	Lloh72, Lloh73, Lloh74
	.loh AdrpLdrGotLdr	Lloh69, Lloh70, Lloh71
	.loh AdrpAdd	Lloh75, Lloh76
	.loh AdrpAdd	Lloh77, Lloh78
	.loh AdrpAdd	Lloh81, Lloh82
	.loh AdrpAdd	Lloh79, Lloh80
	.loh AdrpAdd	Lloh83, Lloh84
	.loh AdrpLdrGot	Lloh90, Lloh91
	.loh AdrpLdrGot	Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpAdd	Lloh92, Lloh93
	.loh AdrpLdrGotLdr	Lloh97, Lloh98, Lloh99
	.loh AdrpLdrGotLdr	Lloh94, Lloh95, Lloh96
	.loh AdrpLdrGotLdr	Lloh100, Lloh101, Lloh102
	.loh AdrpLdrGotLdr	Lloh103, Lloh104, Lloh105
	.loh AdrpLdrGotLdr	Lloh109, Lloh110, Lloh111
	.loh AdrpLdrGotLdr	Lloh106, Lloh107, Lloh108
	.loh AdrpLdrGot	Lloh116, Lloh117
	.loh AdrpLdrGot	Lloh114, Lloh115
	.loh AdrpLdrGot	Lloh112, Lloh113
	.loh AdrpLdrGot	Lloh118, Lloh119
	.loh AdrpAdd	Lloh129, Lloh130
	.loh AdrpLdrGotLdr	Lloh126, Lloh127, Lloh128
	.loh AdrpLdrGotLdr	Lloh122, Lloh123, Lloh125
	.loh AdrpLdrGotLdr	Lloh120, Lloh121, Lloh124
	.loh AdrpLdrGot	Lloh131, Lloh132
	.loh AdrpLdrGotLdr	Lloh133, Lloh134, Lloh135
	.loh AdrpLdrGotLdr	Lloh136, Lloh137, Lloh138
	.loh AdrpAdd	Lloh139, Lloh140
	.loh AdrpLdrGot	Lloh141, Lloh142
	.loh AdrpLdrGot	Lloh145, Lloh146
	.loh AdrpLdrGot	Lloh143, Lloh144
	.loh AdrpLdrGotLdr	Lloh147, Lloh148, Lloh149
	.loh AdrpLdrGot	Lloh150, Lloh151
	.loh AdrpLdrGot	Lloh152, Lloh153
	.loh AdrpLdrGot	Lloh154, Lloh155
	.loh AdrpLdrGot	Lloh156, Lloh157
	.loh AdrpAdd	Lloh158, Lloh159
	.loh AdrpLdrGot	Lloh160, Lloh161
	.loh AdrpLdrGot	Lloh162, Lloh163
	.cfi_endproc
                                        ; -- End function
	.section	__DATA,__const
	.p2align	3                               ; @ab8500_probe.switch_off_status
_ab8500_probe.switch_off_status:
	.quad	l_.str
	.quad	l_.str.1
	.quad	l_.str.2
	.quad	l_.str.3
	.quad	l_.str.4
	.quad	l_.str.5
	.quad	l_.str.6
	.quad	l_.str.7

	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Swoff bit programming"

l_.str.1:                               ; @.str.1
	.asciz	"Thermal protection activation"

l_.str.2:                               ; @.str.2
	.asciz	"Vbat lower then BattOk falling threshold"

l_.str.3:                               ; @.str.3
	.asciz	"Watchdog expired"

l_.str.4:                               ; @.str.4
	.asciz	"Non presence of 32kHz clock"

l_.str.5:                               ; @.str.5
	.asciz	"Battery level lower than power on reset threshold"

l_.str.6:                               ; @.str.6
	.asciz	"Power on key 1 pressed longer than 10 seconds"

l_.str.7:                               ; @.str.7
	.asciz	"DB8500 thermal shutdown"

	.section	__DATA,__const
	.p2align	3                               ; @ab8500_probe.turn_on_status
_ab8500_probe.turn_on_status:
	.quad	l_.str.8
	.quad	l_.str.9
	.quad	l_.str.10
	.quad	l_.str.11
	.quad	l_.str.12
	.quad	l_.str.13
	.quad	l_.str.14
	.quad	l_.str.15

	.section	__TEXT,__cstring,cstring_literals
l_.str.8:                               ; @.str.8
	.asciz	"Battery rising (Vbat)"

l_.str.9:                               ; @.str.9
	.asciz	"Power On Key 1 dbF"

l_.str.10:                              ; @.str.10
	.asciz	"Power On Key 2 dbF"

l_.str.11:                              ; @.str.11
	.asciz	"RTC Alarm"

l_.str.12:                              ; @.str.12
	.asciz	"Main Charger Detect"

l_.str.13:                              ; @.str.13
	.asciz	"Vbus Detect (USB)"

l_.str.14:                              ; @.str.14
	.asciz	"USB ID Detect"

l_.str.15:                              ; @.str.15
	.asciz	"UART Factory Mode Detect"

	.comm	_AB8500_VERSION_UNDEFINED,4,2   ; @AB8500_VERSION_UNDEFINED
	.comm	_GFP_KERNEL,4,2                 ; @GFP_KERNEL
	.comm	_ENOMEM,4,2                     ; @ENOMEM
	.comm	_IORESOURCE_IRQ,4,2             ; @IORESOURCE_IRQ
l_.str.16:                              ; @.str.16
	.asciz	"no IRQ resource\n"

	.comm	_ENODEV,4,2                     ; @ENODEV
	.comm	_ab8500_prcmu_read,4,2          ; @ab8500_prcmu_read
	.comm	_ab8500_prcmu_write,4,2         ; @ab8500_prcmu_write
	.comm	_ab8500_prcmu_write_masked,4,2  ; @ab8500_prcmu_write_masked
	.comm	_AB8500_MISC,4,2                ; @AB8500_MISC
	.comm	_AB8500_IC_NAME_REG,8,3         ; @AB8500_IC_NAME_REG
l_.str.17:                              ; @.str.17
	.asciz	"could not probe HW\n"

	.comm	_AB8500_REV_REG,8,3             ; @AB8500_REV_REG
l_.str.18:                              ; @.str.18
	.asciz	"detected chip, %s rev. %1x.%1x\n"

	.comm	_ab8500_version_str,8,3         ; @ab8500_version_str
	.comm	_AB8540_NUM_IRQ_REGS,4,2        ; @AB8540_NUM_IRQ_REGS
	.comm	_ab8540_irq_regoffset,8,3       ; @ab8540_irq_regoffset
	.comm	_AB8540_IT_LATCHHIER_NUM,8,3    ; @AB8540_IT_LATCHHIER_NUM
	.comm	_AB9540_NUM_IRQ_REGS,4,2        ; @AB9540_NUM_IRQ_REGS
	.comm	_ab9540_irq_regoffset,8,3       ; @ab9540_irq_regoffset
	.comm	_AB8500_IT_LATCHHIER_NUM,8,3    ; @AB8500_IT_LATCHHIER_NUM
	.comm	_AB8500_NUM_IRQ_REGS,4,2        ; @AB8500_NUM_IRQ_REGS
	.comm	_ab8500_irq_regoffset,8,3       ; @ab8500_irq_regoffset
	.comm	_AB8500_RTC,4,2                 ; @AB8500_RTC
	.comm	_AB8500_SWITCH_OFF_STATUS,8,3   ; @AB8500_SWITCH_OFF_STATUS
l_.str.19:                              ; @.str.19
	.asciz	"switch off cause(s) (%#x): "

l_.str.20:                              ; @.str.20
	.asciz	" \"%s\""

l_.str.21:                              ; @.str.21
	.asciz	"\n"

l_.str.22:                              ; @.str.22
	.asciz	" None\n"

	.comm	_AB8500_SYS_CTRL1_BLOCK,4,2     ; @AB8500_SYS_CTRL1_BLOCK
	.comm	_AB8500_TURN_ON_STATUS,8,3      ; @AB8500_TURN_ON_STATUS
l_.str.23:                              ; @.str.23
	.asciz	"turn on reason(s) (%#x): "

l_.str.24:                              ; @.str.24
	.asciz	"\"%s\" "

l_.str.25:                              ; @.str.25
	.asciz	"None\n"

	.comm	_AB8500_CHARGER,4,2             ; @AB8500_CHARGER
	.comm	_AB8500_CH_USBCH_STAT1_REG,8,3  ; @AB8500_CH_USBCH_STAT1_REG
	.comm	_VBUS_DET_DBNC1,4,2             ; @VBUS_DET_DBNC1
	.comm	_VBUS_DET_DBNC100,4,2           ; @VBUS_DET_DBNC100
	.comm	_AB8500_POW_KEY_1_ON,4,2        ; @AB8500_POW_KEY_1_ON
	.comm	_AB8500_VBUS_DET,4,2            ; @AB8500_VBUS_DET
	.comm	_AB8500_INTERRUPT,4,2           ; @AB8500_INTERRUPT
	.comm	_AB8500_IT_LATCH1_REG,8,3       ; @AB8500_IT_LATCH1_REG
	.comm	_AB8500_IT_MASK1_REG,8,3        ; @AB8500_IT_MASK1_REG
	.comm	_ab8500_ops,4,2                 ; @ab8500_ops
	.comm	_ab8500_hierarchical_irq,4,2    ; @ab8500_hierarchical_irq
	.comm	_IRQF_ONESHOT,4,2               ; @IRQF_ONESHOT
	.comm	_IRQF_NO_SUSPEND,4,2            ; @IRQF_NO_SUSPEND
l_.str.26:                              ; @.str.26
	.asciz	"ab8500"

	.comm	_ab9540_devs,8,3                ; @ab9540_devs
	.comm	_ab8540_devs,8,3                ; @ab8540_devs
	.comm	_ab8540_cut1_devs,8,3           ; @ab8540_cut1_devs
	.comm	_ab8540_cut2_devs,8,3           ; @ab8540_cut2_devs
	.comm	_ab8505_devs,8,3                ; @ab8505_devs
	.comm	_ab8500_devs,8,3                ; @ab8500_devs
	.comm	_no_bm,4,2                      ; @no_bm
	.comm	_ab8500_bm_devs,8,3             ; @ab8500_bm_devs
l_.str.27:                              ; @.str.27
	.asciz	"error adding bm devices\n"

	.comm	_AB8500_CUT2P0,4,2              ; @AB8500_CUT2P0
	.comm	_ab9540_attr_group,4,2          ; @ab9540_attr_group
	.comm	_ab8500_attr_group,4,2          ; @ab8500_attr_group
	.comm	_ab8505_attr_group,4,2          ; @ab8505_attr_group
l_.str.28:                              ; @.str.28
	.asciz	"error creating sysfs entries\n"

	.no_dead_strip	_ab8500_probe
.subsections_via_symbols
