]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - sound/soc/codecs/cs35l32.c
Merge remote-tracking branches 'asoc/topic/rcar', 'asoc/topic/reg-default', 'asoc...
[karo-tx-linux.git] / sound / soc / codecs / cs35l32.c
index 8f40025b7e7ca457f4f65eaca2f64a59e468a4a9..44c30fe3e3151dc6621c308da5c1f4759a6d3f65 100644 (file)
@@ -74,33 +74,8 @@ static const struct reg_default cs35l32_reg_defaults[] = {
 static bool cs35l32_readable_register(struct device *dev, unsigned int reg)
 {
        switch (reg) {
-       case CS35L32_DEVID_AB:
-       case CS35L32_DEVID_CD:
-       case CS35L32_DEVID_E:
-       case CS35L32_FAB_ID:
-       case CS35L32_REV_ID:
-       case CS35L32_PWRCTL1:
-       case CS35L32_PWRCTL2:
-       case CS35L32_CLK_CTL:
-       case CS35L32_BATT_THRESHOLD:
-       case CS35L32_VMON:
-       case CS35L32_BST_CPCP_CTL:
-       case CS35L32_IMON_SCALING:
-       case CS35L32_AUDIO_LED_MNGR:
-       case CS35L32_ADSP_CTL:
-       case CS35L32_CLASSD_CTL:
-       case CS35L32_PROTECT_CTL:
-       case CS35L32_INT_MASK_1:
-       case CS35L32_INT_MASK_2:
-       case CS35L32_INT_MASK_3:
-       case CS35L32_INT_STATUS_1:
-       case CS35L32_INT_STATUS_2:
-       case CS35L32_INT_STATUS_3:
-       case CS35L32_LED_STATUS:
-       case CS35L32_FLASH_MODE:
-       case CS35L32_MOVIE_MODE:
-       case CS35L32_FLASH_TIMER:
-       case CS35L32_FLASH_INHIBIT:
+       case CS35L32_DEVID_AB ... CS35L32_AUDIO_LED_MNGR:
+       case CS35L32_ADSP_CTL ... CS35L32_FLASH_INHIBIT:
                return true;
        default:
                return false;
@@ -110,15 +85,8 @@ static bool cs35l32_readable_register(struct device *dev, unsigned int reg)
 static bool cs35l32_volatile_register(struct device *dev, unsigned int reg)
 {
        switch (reg) {
-       case CS35L32_DEVID_AB:
-       case CS35L32_DEVID_CD:
-       case CS35L32_DEVID_E:
-       case CS35L32_FAB_ID:
-       case CS35L32_REV_ID:
-       case CS35L32_INT_STATUS_1:
-       case CS35L32_INT_STATUS_2:
-       case CS35L32_INT_STATUS_3:
-       case CS35L32_LED_STATUS:
+       case CS35L32_DEVID_AB ... CS35L32_REV_ID:
+       case CS35L32_INT_STATUS_1 ... CS35L32_LED_STATUS:
                return true;
        default:
                return false;
@@ -128,10 +96,7 @@ static bool cs35l32_volatile_register(struct device *dev, unsigned int reg)
 static bool cs35l32_precious_register(struct device *dev, unsigned int reg)
 {
        switch (reg) {
-       case CS35L32_INT_STATUS_1:
-       case CS35L32_INT_STATUS_2:
-       case CS35L32_INT_STATUS_3:
-       case CS35L32_LED_STATUS:
+       case CS35L32_INT_STATUS_1 ... CS35L32_LED_STATUS:
                return true;
        default:
                return false;
@@ -276,7 +241,7 @@ static const struct snd_soc_codec_driver soc_codec_dev_cs35l32 = {
 };
 
 /* Current and threshold powerup sequence Pg37 in datasheet */
-static const struct reg_default cs35l32_monitor_patch[] = {
+static const struct reg_sequence cs35l32_monitor_patch[] = {
 
        { 0x00, 0x99 },
        { 0x48, 0x17 },
@@ -441,8 +406,7 @@ static int cs35l32_i2c_probe(struct i2c_client *i2c_client,
        if (IS_ERR(cs35l32->reset_gpio))
                return PTR_ERR(cs35l32->reset_gpio);
 
-       if (cs35l32->reset_gpio)
-               gpiod_set_value_cansleep(cs35l32->reset_gpio, 1);
+       gpiod_set_value_cansleep(cs35l32->reset_gpio, 1);
 
        /* initialize codec */
        ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_AB, &reg);
@@ -536,8 +500,7 @@ static int cs35l32_i2c_remove(struct i2c_client *i2c_client)
        snd_soc_unregister_codec(&i2c_client->dev);
 
        /* Hold down reset */
-       if (cs35l32->reset_gpio)
-               gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
+       gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
 
        return 0;
 }
@@ -551,8 +514,7 @@ static int cs35l32_runtime_suspend(struct device *dev)
        regcache_mark_dirty(cs35l32->regmap);
 
        /* Hold down reset */
-       if (cs35l32->reset_gpio)
-               gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
+       gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
 
        /* remove power */
        regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies),
@@ -575,8 +537,7 @@ static int cs35l32_runtime_resume(struct device *dev)
                return ret;
        }
 
-       if (cs35l32->reset_gpio)
-               gpiod_set_value_cansleep(cs35l32->reset_gpio, 1);
+       gpiod_set_value_cansleep(cs35l32->reset_gpio, 1);
 
        regcache_cache_only(cs35l32->regmap, false);
        regcache_sync(cs35l32->regmap);
@@ -607,7 +568,6 @@ MODULE_DEVICE_TABLE(i2c, cs35l32_id);
 static struct i2c_driver cs35l32_i2c_driver = {
        .driver = {
                   .name = "cs35l32",
-                  .owner = THIS_MODULE,
                   .pm = &cs35l32_runtime_pm,
                   .of_match_table = cs35l32_of_match,
                   },