13
13
14
14
#include <linux/module.h>
15
15
#include <linux/platform_device.h>
16
- #include <linux/of_device .h>
17
- #include <linux/of_irq .h>
16
+ #include <linux/i2c .h>
17
+ #include <linux/property .h>
18
18
#include <linux/pm_wakeirq.h>
19
19
#include <linux/slab.h>
20
20
#include <linux/delay.h>
@@ -382,11 +382,11 @@ static irqreturn_t da7219_aad_irq_thread(int irq, void *data)
382
382
}
383
383
384
384
/*
385
- * DT to pdata conversion
385
+ * DT/ACPI to pdata conversion
386
386
*/
387
387
388
388
static enum da7219_aad_micbias_pulse_lvl
389
- da7219_aad_of_micbias_pulse_lvl (struct snd_soc_codec * codec , u32 val )
389
+ da7219_aad_fw_micbias_pulse_lvl (struct snd_soc_codec * codec , u32 val )
390
390
{
391
391
switch (val ) {
392
392
case 2800 :
@@ -400,7 +400,7 @@ static enum da7219_aad_micbias_pulse_lvl
400
400
}
401
401
402
402
static enum da7219_aad_btn_cfg
403
- da7219_aad_of_btn_cfg (struct snd_soc_codec * codec , u32 val )
403
+ da7219_aad_fw_btn_cfg (struct snd_soc_codec * codec , u32 val )
404
404
{
405
405
switch (val ) {
406
406
case 2 :
@@ -424,7 +424,7 @@ static enum da7219_aad_btn_cfg
424
424
}
425
425
426
426
static enum da7219_aad_mic_det_thr
427
- da7219_aad_of_mic_det_thr (struct snd_soc_codec * codec , u32 val )
427
+ da7219_aad_fw_mic_det_thr (struct snd_soc_codec * codec , u32 val )
428
428
{
429
429
switch (val ) {
430
430
case 200 :
@@ -442,7 +442,7 @@ static enum da7219_aad_mic_det_thr
442
442
}
443
443
444
444
static enum da7219_aad_jack_ins_deb
445
- da7219_aad_of_jack_ins_deb (struct snd_soc_codec * codec , u32 val )
445
+ da7219_aad_fw_jack_ins_deb (struct snd_soc_codec * codec , u32 val )
446
446
{
447
447
switch (val ) {
448
448
case 5 :
@@ -468,7 +468,7 @@ static enum da7219_aad_jack_ins_deb
468
468
}
469
469
470
470
static enum da7219_aad_jack_det_rate
471
- da7219_aad_of_jack_det_rate (struct snd_soc_codec * codec , const char * str )
471
+ da7219_aad_fw_jack_det_rate (struct snd_soc_codec * codec , const char * str )
472
472
{
473
473
if (!strcmp (str , "32ms_64ms" )) {
474
474
return DA7219_AAD_JACK_DET_RATE_32_64MS ;
@@ -485,7 +485,7 @@ static enum da7219_aad_jack_det_rate
485
485
}
486
486
487
487
static enum da7219_aad_jack_rem_deb
488
- da7219_aad_of_jack_rem_deb (struct snd_soc_codec * codec , u32 val )
488
+ da7219_aad_fw_jack_rem_deb (struct snd_soc_codec * codec , u32 val )
489
489
{
490
490
switch (val ) {
491
491
case 1 :
@@ -503,7 +503,7 @@ static enum da7219_aad_jack_rem_deb
503
503
}
504
504
505
505
static enum da7219_aad_btn_avg
506
- da7219_aad_of_btn_avg (struct snd_soc_codec * codec , u32 val )
506
+ da7219_aad_fw_btn_avg (struct snd_soc_codec * codec , u32 val )
507
507
{
508
508
switch (val ) {
509
509
case 1 :
@@ -521,7 +521,7 @@ static enum da7219_aad_btn_avg
521
521
}
522
522
523
523
static enum da7219_aad_adc_1bit_rpt
524
- da7219_aad_of_adc_1bit_rpt (struct snd_soc_codec * codec , u32 val )
524
+ da7219_aad_fw_adc_1bit_rpt (struct snd_soc_codec * codec , u32 val )
525
525
{
526
526
switch (val ) {
527
527
case 1 :
@@ -538,97 +538,96 @@ static enum da7219_aad_adc_1bit_rpt
538
538
}
539
539
}
540
540
541
- static struct da7219_aad_pdata * da7219_aad_of_to_pdata (struct snd_soc_codec * codec )
541
+ static struct da7219_aad_pdata * da7219_aad_fw_to_pdata (struct snd_soc_codec * codec )
542
542
{
543
- struct device_node * np = codec -> dev -> of_node ;
544
- struct device_node * aad_np = of_find_node_by_name (np , "da7219_aad" );
543
+ struct device * dev = codec -> dev ;
544
+ struct i2c_client * i2c = to_i2c_client (dev );
545
+ struct fwnode_handle * aad_np ;
545
546
struct da7219_aad_pdata * aad_pdata ;
546
- const char * of_str ;
547
- u32 of_val32 ;
547
+ const char * fw_str ;
548
+ u32 fw_val32 ;
548
549
550
+ aad_np = device_get_named_child_node (dev , "da7219_aad" );
549
551
if (!aad_np )
550
552
return NULL ;
551
553
552
554
aad_pdata = devm_kzalloc (codec -> dev , sizeof (* aad_pdata ), GFP_KERNEL );
553
555
if (!aad_pdata )
554
- goto out ;
556
+ return NULL ;
555
557
556
- aad_pdata -> irq = irq_of_parse_and_map ( np , 0 ) ;
558
+ aad_pdata -> irq = i2c -> irq ;
557
559
558
- if (of_property_read_u32 (aad_np , "dlg,micbias-pulse-lvl" ,
559
- & of_val32 ) >= 0 )
560
+ if (fwnode_property_read_u32 (aad_np , "dlg,micbias-pulse-lvl" ,
561
+ & fw_val32 ) >= 0 )
560
562
aad_pdata -> micbias_pulse_lvl =
561
- da7219_aad_of_micbias_pulse_lvl (codec , of_val32 );
563
+ da7219_aad_fw_micbias_pulse_lvl (codec , fw_val32 );
562
564
else
563
565
aad_pdata -> micbias_pulse_lvl = DA7219_AAD_MICBIAS_PULSE_LVL_OFF ;
564
566
565
- if (of_property_read_u32 (aad_np , "dlg,micbias-pulse-time" ,
566
- & of_val32 ) >= 0 )
567
- aad_pdata -> micbias_pulse_time = of_val32 ;
567
+ if (fwnode_property_read_u32 (aad_np , "dlg,micbias-pulse-time" ,
568
+ & fw_val32 ) >= 0 )
569
+ aad_pdata -> micbias_pulse_time = fw_val32 ;
568
570
569
- if (of_property_read_u32 (aad_np , "dlg,btn-cfg" , & of_val32 ) >= 0 )
570
- aad_pdata -> btn_cfg = da7219_aad_of_btn_cfg (codec , of_val32 );
571
+ if (fwnode_property_read_u32 (aad_np , "dlg,btn-cfg" , & fw_val32 ) >= 0 )
572
+ aad_pdata -> btn_cfg = da7219_aad_fw_btn_cfg (codec , fw_val32 );
571
573
else
572
574
aad_pdata -> btn_cfg = DA7219_AAD_BTN_CFG_10MS ;
573
575
574
- if (of_property_read_u32 (aad_np , "dlg,mic-det-thr" , & of_val32 ) >= 0 )
576
+ if (fwnode_property_read_u32 (aad_np , "dlg,mic-det-thr" , & fw_val32 ) >= 0 )
575
577
aad_pdata -> mic_det_thr =
576
- da7219_aad_of_mic_det_thr (codec , of_val32 );
578
+ da7219_aad_fw_mic_det_thr (codec , fw_val32 );
577
579
else
578
580
aad_pdata -> mic_det_thr = DA7219_AAD_MIC_DET_THR_500_OHMS ;
579
581
580
- if (of_property_read_u32 (aad_np , "dlg,jack-ins-deb" , & of_val32 ) >= 0 )
582
+ if (fwnode_property_read_u32 (aad_np , "dlg,jack-ins-deb" , & fw_val32 ) >= 0 )
581
583
aad_pdata -> jack_ins_deb =
582
- da7219_aad_of_jack_ins_deb (codec , of_val32 );
584
+ da7219_aad_fw_jack_ins_deb (codec , fw_val32 );
583
585
else
584
586
aad_pdata -> jack_ins_deb = DA7219_AAD_JACK_INS_DEB_20MS ;
585
587
586
- if (!of_property_read_string (aad_np , "dlg,jack-det-rate" , & of_str ))
588
+ if (!fwnode_property_read_string (aad_np , "dlg,jack-det-rate" , & fw_str ))
587
589
aad_pdata -> jack_det_rate =
588
- da7219_aad_of_jack_det_rate (codec , of_str );
590
+ da7219_aad_fw_jack_det_rate (codec , fw_str );
589
591
else
590
592
aad_pdata -> jack_det_rate = DA7219_AAD_JACK_DET_RATE_256_512MS ;
591
593
592
- if (of_property_read_u32 (aad_np , "dlg,jack-rem-deb" , & of_val32 ) >= 0 )
594
+ if (fwnode_property_read_u32 (aad_np , "dlg,jack-rem-deb" , & fw_val32 ) >= 0 )
593
595
aad_pdata -> jack_rem_deb =
594
- da7219_aad_of_jack_rem_deb (codec , of_val32 );
596
+ da7219_aad_fw_jack_rem_deb (codec , fw_val32 );
595
597
else
596
598
aad_pdata -> jack_rem_deb = DA7219_AAD_JACK_REM_DEB_1MS ;
597
599
598
- if (of_property_read_u32 (aad_np , "dlg,a-d-btn-thr" , & of_val32 ) >= 0 )
599
- aad_pdata -> a_d_btn_thr = (u8 ) of_val32 ;
600
+ if (fwnode_property_read_u32 (aad_np , "dlg,a-d-btn-thr" , & fw_val32 ) >= 0 )
601
+ aad_pdata -> a_d_btn_thr = (u8 ) fw_val32 ;
600
602
else
601
603
aad_pdata -> a_d_btn_thr = 0xA ;
602
604
603
- if (of_property_read_u32 (aad_np , "dlg,d-b-btn-thr" , & of_val32 ) >= 0 )
604
- aad_pdata -> d_b_btn_thr = (u8 ) of_val32 ;
605
+ if (fwnode_property_read_u32 (aad_np , "dlg,d-b-btn-thr" , & fw_val32 ) >= 0 )
606
+ aad_pdata -> d_b_btn_thr = (u8 ) fw_val32 ;
605
607
else
606
608
aad_pdata -> d_b_btn_thr = 0x16 ;
607
609
608
- if (of_property_read_u32 (aad_np , "dlg,b-c-btn-thr" , & of_val32 ) >= 0 )
609
- aad_pdata -> b_c_btn_thr = (u8 ) of_val32 ;
610
+ if (fwnode_property_read_u32 (aad_np , "dlg,b-c-btn-thr" , & fw_val32 ) >= 0 )
611
+ aad_pdata -> b_c_btn_thr = (u8 ) fw_val32 ;
610
612
else
611
613
aad_pdata -> b_c_btn_thr = 0x21 ;
612
614
613
- if (of_property_read_u32 (aad_np , "dlg,c-mic-btn-thr" , & of_val32 ) >= 0 )
614
- aad_pdata -> c_mic_btn_thr = (u8 ) of_val32 ;
615
+ if (fwnode_property_read_u32 (aad_np , "dlg,c-mic-btn-thr" , & fw_val32 ) >= 0 )
616
+ aad_pdata -> c_mic_btn_thr = (u8 ) fw_val32 ;
615
617
else
616
618
aad_pdata -> c_mic_btn_thr = 0x3E ;
617
619
618
- if (of_property_read_u32 (aad_np , "dlg,btn-avg" , & of_val32 ) >= 0 )
619
- aad_pdata -> btn_avg = da7219_aad_of_btn_avg (codec , of_val32 );
620
+ if (fwnode_property_read_u32 (aad_np , "dlg,btn-avg" , & fw_val32 ) >= 0 )
621
+ aad_pdata -> btn_avg = da7219_aad_fw_btn_avg (codec , fw_val32 );
620
622
else
621
623
aad_pdata -> btn_avg = DA7219_AAD_BTN_AVG_2 ;
622
624
623
- if (of_property_read_u32 (aad_np , "dlg,adc-1bit-rpt" , & of_val32 ) >= 0 )
625
+ if (fwnode_property_read_u32 (aad_np , "dlg,adc-1bit-rpt" , & fw_val32 ) >= 0 )
624
626
aad_pdata -> adc_1bit_rpt =
625
- da7219_aad_of_adc_1bit_rpt (codec , of_val32 );
627
+ da7219_aad_fw_adc_1bit_rpt (codec , fw_val32 );
626
628
else
627
629
aad_pdata -> adc_1bit_rpt = DA7219_AAD_ADC_1BIT_RPT_1 ;
628
630
629
- out :
630
- of_node_put (aad_np );
631
-
632
631
return aad_pdata ;
633
632
}
634
633
@@ -769,9 +768,9 @@ int da7219_aad_init(struct snd_soc_codec *codec)
769
768
da7219 -> aad = da7219_aad ;
770
769
da7219_aad -> codec = codec ;
771
770
772
- /* Handle any DT/platform data */
773
- if (( codec -> dev -> of_node ) && ( da7219 -> pdata ) )
774
- da7219 -> pdata -> aad_pdata = da7219_aad_of_to_pdata (codec );
771
+ /* Handle any DT/ACPI/ platform data */
772
+ if (da7219 -> pdata && ! da7219 -> pdata -> aad_pdata )
773
+ da7219 -> pdata -> aad_pdata = da7219_aad_fw_to_pdata (codec );
775
774
776
775
da7219_aad_handle_pdata (codec );
777
776
0 commit comments